Skip to content

ArgoCD

ArgoCD is a declarative, GitOps continuous delivery (CD) tool for Kubernetes^[400-devops-04-ci-cd-pipelines-argocd.md]. It functions as a Kubernetes controller, continuously monitoring running applications and comparing their live state against the desired state defined in a Git repository^[400-devops-04-ci-cd-pipelines-argocd.md].

Its core functionality is to synchronize the cluster state with the configuration stored in Git, ensuring that the deployed infrastructure and applications match the code repository^[400-devops-04-ci-cd-pipelines-argocd.md].

Installation and Deployment

ArgoCD is typically installed directly into a Kubernetes cluster using manifests^[400-devops__04-CI-CD-Pipelines__devops-ci__github-action__argocd-app-config__README.md].

Installation Steps

The standard installation process involves creating a dedicated namespace and applying the official installation manifests^[400-devops__04-CI-CD-Pipelines__devops-ci__github-action__argocd-app-config__README.md]:

  1. Create Namespace:
    [kubectl](<./kubectl.md>) create namespace argocd
    
  2. Apply Manifests:
    [kubectl](<./kubectl.md>) apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
    

Accessing the Dashboard

By default, the ArgoCD API server is not exposed via an external IP^[400-devops-04-ci-cd-pipelines-argocd.md]. To access the UI and API, users typically use kubectl port-forward^[400-devops__04-CI-CD-Pipelines__devops-ci__github-action__argocd-app-config__README.md, 400-devops-04-ci-cd-pipelines-argocd.md].

Alternatively, the service can be patched to a LoadBalancer type for external access^[400-devops-04-ci-cd-pipelines-argocd.md].

Port Forwarding Command:

[kubectl](<./kubectl.md>) port-forward svc/argocd-server -n argocd 8080:443

Authentication

Upon initial installation, ArgoCD creates a default admin account^[400-devops__04-CI-CD-Pipelines__devops-ci__github-action__argocd-app-config__README.md]. The password for this account is stored in a secret named argocd-initial-admin-secret^[400-devops-04-ci-cd-pipelines-argocd.md].

Retrieving the Initial Password:

[kubectl](<./kubectl.md>) -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d

This initial password can be changed or deleted after the first login^[400-devops__04-CI-CD-Pipelines__devops-ci__github-action__argocd-app-config__README.md].

Sources

^[400-devops-04-ci-cd-pipelines-argocd.md] ^[400-devops__04-CI-CD-Pipelines__devops-ci__github-action__argocd-app-config__README.md]