Installing Argo Rollouts
Argo Rollouts is a Kubernetes controller and set of CRDs (Custom Resource Definitions) that provide advanced deployment capabilities such as blue-green and canary deployments. It integrates with various service meshes, including Istio, to manage traffic routing during deployments. There are other tools that provide similar functionality, such as Flagger, but for this lab, we will use Argo Rollouts.
Although Argo Rollouts can be installed in various ways, we will use kubectl to install it in our cluster. To do this, run the following commands:
kubectl create namespace argo-rollouts
kubectl apply -n argo-rollouts -f https://github.com/argoproj/argo-rollouts/releases/latest/download/install.yaml
kubectl apply -k https://github.com/argoproj/argo-rollouts/manifests/crds\?ref\=stable
This will create a new namespace named argo-rollouts and install the Argo Rollouts controller and CRDs in this namespace. After a few moments, you can verify that the installation was successful by running:
kubectl get pods -n argo-rollouts
kubectl get apiservices | grep rollouts
You should see that the Argo Rollouts controller pod is running and that the CRDs are available in the cluster.
It would be possible to use the Argo Rollouts CLI to manage rollouts. As the focus of this lab is more on the concepts, we will use the CRDs directly. If you want to use the CLI, you can find the installation instructions at https://argo-rollouts.readthedocs.io/en/stable/installation/#kubectl-plugin-installation.
With this, we have successfully installed Argo Rollouts in our cluster. In the next step, we will add the necessary Istio configuration to our demo application to enable canary deployments.
