Search…
Step 5: Install the Agent
The next step is to install the Vamp Release Agent in the Kubernetes cluster where your application will be running.

Prerequisites

kubectl

The Kubernetes command-line tool, kubectl, allows you to run commands on Kubernetes clusters. You can use kubectl to deploy applications, inspect and manage cluster resources, and view logs.
If you do not already have kubectl installed, follow the instructions here.

Amazon Kubernetes Service (EKS)

If you are using EKS, Amazon provides their own instructions for installing kubectl here.

Kubernetes Cluster

If you do not already have a Kubernetes cluster, you can use one of the commands below to launch one.
EKS
GKE

Amazon Kubernetes Service

You can launch a Kubernetes cluster on EKS using the following command:
1
eksctl create cluster \
2
--name vamp-demo-cluster \
3
--nodes 6 \
4
--node-type t3.medium \
5
--region=eu-west-1
Copied!
You can find out more about the eksctl tool and how to set it up here.
Once the cluster has been created, you can use this command to configure kubectl access:
1
eksctl utils write-kubeconfig --name vamp-demo-cluster --region eu-west-1
Copied!

Google Kubernetes Engine

You can launch a Kubernetes cluster on GKE using the following command:
1
gcloud container clusters create vamp-demo-cluster \
2
--project $YOUR_GOOGLE_CLOUD_PROJECT \
3
--region europe-west1 \
4
--num-nodes 1 \
5
--machine-type n2-standard-2
Copied!
You can find out more about the gcloud tool and how to set it up and use it for GKE here.
Once the cluster has been created, you can use this command to configure kubectl access:
1
gcloud container clusters get-credentials vamp-demo-cluster \
2
--project $YOUR_GOOGLE_CLOUD_PROJECT \
3
--region europe-west1
Copied!
Before continuing, ensure kubectl is configured for the cluster where you want to install the Vamp Release Agent.

Ingress controller

If you do not already have either Contour or NGINX running in your cluster, you can use these instructions to deploy one of them.
You need to install the Ingress controller you chose when you created your application (Step 1).
There is no need to install an Ingress controller if you selected No Ingress at Step 1.
Contour
NGINX
You can deploy the Contour Ingress controller in your cluster using the following command:
1
kubectl apply -f https://projectcontour.io/quickstart/contour.yaml
Copied!
You can find more details and other installation options here.
You can deploy the NGINX Ingress controller in your cluster using these instructions.
You can find more details and other installation options here.

AWS

1
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.41.2/deploy/static/provider/aws/deploy.yaml
Copied!

GKE and Azure

1
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.41.2/deploy/static/provider/cloud/deploy.yaml
Copied!

Digital Ocean

1
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.41.2/deploy/static/provider/do/deploy.yaml
Copied!

Prometheus

The Vamp Release Agent relies on an available instance of Prometheus. Prometheus is a commonly used open source monitoring system and time series database.
If you deployed Contour or NGINX using the instructions above, you can deploy Prometheus into your cluster using these instructions:
Contour
NGINX
Vamp provides a sample Prometheus configuration for Contour. You can deploy this into your cluster using the following command:
1
kubectl apply -f https://raw.githubusercontent.com/magneticio/vamp-cloud-demo/main/contour/contour-prometheus.yaml
Copied!
This configuration is based on these instructions from projectcontour.io.
You can deploy a Prometheus server configured for NGINX into your cluster using the following command:
1
kubectl apply -k github.com/kubernetes/ingress-nginx/deploy/prometheus/
Copied!
You can find more details here.
If you already have Prometheus installed in your cluster, follow these instructions to configure a custom Prometheus location.

Add a DNS Entry for Your Application

If you are using ExternalDNS or a similar tool to dynamically manage the DNS records for Ingresses on your cluster, you can skip this section.

Manual DNS Entry

Before continuing, you need to create a DNS entry for you application
If you deployed Contour or NGINX using the instructions above, you can get the IP address for the DNS record using these instructions:
Contour
NGINX
The following command prints the IP address you need to configure your DNS for your application:
1
kubectl get service envoy --namespace=projectcontour -o=jsonpath='{.status.loadBalancer.ingress[0].ip}{"\n"}'
Copied!
If your cluster is running on AWS, this command prints a domain name, not an IP address.
The following command prints the IP address you need to configure your DNS for your application:
1
kubectl get service ingress-nginx-controller --namespace=ingress-nginx -o=jsonpath='{.status.loadBalancer.ingress[0].ip}{"\n"}'
Copied!
If your cluster is running on AWS, this command prints a domain name, not an IP address.

ExternalDNS

If you are using ExternalDNS with the Contour Ingress controller, you must use version v0.7.4 or newer.

Running the Vamp Cloud Installer

If the application namespace doesn't exist then it will be automatically created.
If the application namespace already exists, you need to follow these instructions and create a Kubernetes Secret before running the installer
If your Prometheus is in a custom location, please follow these instructions before running the installer.
1. To run the installer, click the Show installation command button
Show installation command button
2. Copy the command
Copy the installation command
3. Run the command
The command is only valid for 30 minutes.

Status

If the installation is successful, the status changes from Installation pending to Installation successful.
All done! You can now click Next and start releasing your services with Vamp.

Troubleshooting

If the installation fails for any reason, the status changes from Installation pending to Installation failed.
There are several reasons why this may happen. Consult the Troubleshooting Guide to find the solution.