ArgoCD Deployment to Kubernetes

Abstract

Deploy ArgoCD to handle continuous delivery.

ArgoCD Deployment to Kubernetes#

Note

The ArgoCD documentation suggests that kustomize is their preferred method for installation, but given that the author prefers Helm, we’ll go ahead and use that.

Prerequisites#

Before ArgoCD will run on your cluster you’ll need to be able to dynamically provision storage, covered in the post on how to install the LVM CSI driver, as well as an ingress controller, covered in the post on how to install the NGINX ingress controller.

Installation#

Getting ArgoCD is relatively straightforward, at least for simple setups like the one we’re using here.

  1. Configure your chart values.

    a basic values file#
    global:
      domain: argo.some-domain.net
    autoscaling:
      enabled: false
    certificate:
      enabled: true
    image:
      repository: quay.io/argoproj/argocd
    persistence:
      storageClass: csi-lvm-linear
    server:
      ingress:
        enabled: true
        ingressClassName: nginx
        annotations:
          cert-manager.io/cluster-issuer: the-hard-way-ca
          nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
        tls: true
        extraHosts:
          - name: argo.a-domain.org
            path: /
            secretName: argo-a-domain-tls
    
  2. Create a namespace.

    make a new namespace#
    kubectl create ns argo
    
  3. Use Helm to deploy the chart with your specified values.

    install with helm#
    helm install
    

    The official documentation may be helpful here.