Deploying ArgoCD

In this lab, you will deploy ArgoCD via Helm to your GKE cluster.

To begin, create a dedicated directory for this lab and switch into it:

cd ~

mkdir argocd && cd argocd

Retrieve the Argo repository:

helm repo add argo https://argoproj.github.io/argo-helm

The Argo repository contains the Helm charts for all of the Argo tools (Workflows, Events, etc.). You can view all the repos with the helm search repo argo command. You will see an output similar to below:

NAME                       CHART VERSION APP VERSION   DESCRIPTION                                       
argo/argo                  1.0.0         v2.12.5       A Helm chart for Argo Workflows                   
...
argo/argocd-notifications  1.8.1         v1.2.1        A Helm chart for ArgoCD notifications, an add-o...

The next step is to create your Helm values file to customize the ArgoCD deployment. Using the following YAML as a starting point and the documentation here as well as here, craft your values file to also add an Ingress object for ArgoCD.

Your Ingress object should have:

  • The following annotation: cert-manager.io/cluster-issuer: letsencrypt-production
  • A host named: argocd.<YOUR_STUDENT_ID>.<RANDOM_ID>.workshops.acceleratorlabs.ca
  • Use the Ingress Class: nginx
  • A TLS block where the secret name is: argocd-tls and the same host as above.
configs:
  params:
    "server.insecure": true

server:
  ingress:
    enabled: true

Once your values file is complete, you can deploy ArgoCD with the following command:

helm install argocd argo/argo-cd \
--namespace argocd \
--create-namespace \
--values <YOUR_YAML_FILE>

To validate that your ArgoCD deployment is ready, validate that the pods are all in a “Running” state and that your Ingress object is properly configured. Your Ingress object should look similar to the following:

kubectl get ingress -n argocd
NAME            CLASS   HOSTS                                                        ADDRESS            PORTS   AGE
argocd-server   nginx   <YOUR_STUDENT_ID>.<RANDOM_ID>.workshops.acceleratorlabs.ca   <your-public-IP>   80      38m

You will then be able to access the UI of your ArgoCD instance through your browser. You can log into your instance with the admin account and the initial admin password. Note, the Helm output will show you how to retrieve that password.

Once you have successfully logged into ArgoCD, you can move onto the next lab.