Intro to Argo CD in Verrazzano 1.5.0

Dave Cabelus
Verrazzano
Published in
3 min readFeb 17, 2023

In Verrazzano 1.5.0, we added Argo CD for DevOps and continuous deployment. Argo CD is a declarative GitOps tool that extends the automation in Verrazzano. When you sync Argo CD with a git repository, and when the descriptors in that repository are updated, Argo CD calls kubectl to automatically re-deploy the application. Verrazzano picks up from there and does its magic, with certificate management, application configuration within the service mesh, and automatic observability stack integration, along with intelligent updates across Kubernetes clusters. This combination of Argo CD with the rest of the Verrazzano platform is a DevOps dream!

We’ve integrated Argo CD into all of the Verrazzano platform systems, including single sign-on, multicluster registration, upgrade, and of course, Verrazzano application deployment. As with most new components of Verrazzano, Argo CD is disabled by default. To enable it, you can modify the verrazzano custom resource with the following lines of yaml code:

  components:
argoCD:
enabled: true
clusterOperator:
overrides:
- values:
syncClusters:
enabled: true

Adding these lines to the vz CR will enable (turn on) the Argo CD component in Verrazzano, and will enable the automatic registration of managed clusters in Argo CD. That is, when you add a managed cluster to your Verrazzano configuration through the Verrazzano UI or API, Verrazzano also registers the cluster with Argo CD.

Argo CD includes a rich developer-centric user interface that you can use to set up continuous deployment for an application in Verrazzano, and you can use it to drill down into the details of the application after it is deployed.

Setting up an application is easy:

Tip: If you want your application to be deployed in the Istio service mesh, pre-create and label the namespace:

kubectl create namespace hello-helidon
kubectl label namespace hello-helidon verrazzano-managed=true istio-injection=enabled

Otherwise, make sure to select AUTO-CREATE NAMESPACE when creating the application.

  1. From the Verrazzano user interface, click the Argo CD Console link:

2. In the Argo CD console, click Applications in the navigation panel on the left, and then click + NEW APP:

3. Provide the application repository information:

4. Click CREATE, and Argo CD sets up GitOps for the application:

5. Click SYNC, and Argo CD synchronizes with the repository, and calls kubectl apply on the selected resources:

Verrazzano then does its automation, setting up the application within the service mesh, and wiring up the application to the observability stack.

After the application is deployed, you can drill into the application to see the Kubernetes objects that were created, and the current state of each object:

It’s that easy!

Give it a try for yourself:

--

--