Skip to Content
Hacktoberfest 2025 is here! Join us to learn, share, and contribute to our community🎉
Use & IntegrateThird-party integrationsArgoCD to WDS

Install ArgoCD for delivery to a WDS

This document tells you how to install ArgoCD in the KubeFlex hosting cluster and configure ArgoCD to deliver applications to a WDS. The commands shown here assume that you access the KubeFlex hosting cluster via a kubeconfig context named “kind-kubeflex” and that you access the WDS via a kubeconfig context named “wds1”; adapt as appropriate to your particular circumstances.

Install ArgoCD on kind-kubeflex:

kubectl --context kind-kubeflex create namespace argocd kubectl --context kind-kubeflex apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

Install CLI:

on MacOS:

brew install argocd

on Linux:

curl -sSL -o argocd-linux-amd64 https://github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64 sudo install -m 555 argocd-linux-amd64 /usr/local/bin/argocd rm argocd-linux-amd64

Check the ArgoCD releases  page for the obtaining the latest stable release for other architectures and operating systems.

Configure Argo to work with the ingress installed in the hosting cluster:

kubectl --context kind-kubeflex apply -f - <<EOF apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: argocd-server-ingress namespace: argocd annotations: nginx.ingress.kubernetes.io/force-ssl-redirect: "true" nginx.ingress.kubernetes.io/ssl-passthrough: "true" spec: ingressClassName: nginx rules: - host: argocd.localtest.me http: paths: - path: / pathType: Prefix backend: service: name: argocd-server port: name: https EOF

Open a browser to ArgoCD console:

open https://argocd.localtest.me:9443

Note: if you are working on a VM via SSH, just take the IP of the VM (VM_IP) and add the line <VM_IP> argocd.localtest.me to your ‘/etc/hosts’ file, replacing <VM_IP> with the actual IP of your desktop.

Get the password for Argo with:

kubectl config use-context kind-kubeflex argocd admin initial-password -n argocd

Login into the ArgoCD console with admin and the password just retrieved. Type the following on a shell terminal in your desktop (or just enter the address <https://argocd.localtest.me:9443 > on your browser):

open https://argocd.localtest.me:9443

Also, login with the argocd CLI with the same credentials.

argocd login --insecure argocd.localtest.me:9443

Add the wds1 space as cluster to ArgoCD:

CONTEXT=wds1 kubectl config view --minify --context=${CONTEXT} --flatten > /tmp/${CONTEXT}.kubeconfig kubectl config --kubeconfig=/tmp/${CONTEXT}.kubeconfig set-cluster ${CONTEXT}-cluster --server=https://${CONTEXT}.${CONTEXT}-system 2>/dev/null kubectl config use-context kind-kubeflex ARGO_SERVER_POD=$(kubectl get pods -n argocd -l app.kubernetes.io/name=argocd-server -o 'jsonpath={.items[0].metadata.name}') kubectl cp /tmp/${CONTEXT}.kubeconfig -n argocd ${ARGO_SERVER_POD}:/tmp PASSWORD=$(argocd admin initial-password -n argocd | cut -d " " -f 1) kubectl exec -it -n argocd $ARGO_SERVER_POD -- argocd login argocd-server.argocd --username admin --password $PASSWORD --insecure kubectl exec -it -n argocd $ARGO_SERVER_POD -- argocd cluster add ${CONTEXT} --kubeconfig /tmp/${CONTEXT}.kubeconfig -y

Configure Argo to label resources with the “argocd.argoproj.io/instance” label:

kubectl --context kind-kubeflex patch cm -n argocd argocd-cm -p '{"data": {"application.instanceLabelKey": "argocd.argoproj.io/instance"}}'