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]:
- Create Namespace:
[kubectl](<./kubectl.md>) create namespace argocd - 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].
Related Concepts¶
- GitOps
- Kubernetes
- [[Continuous Delivery (CD)]]
- CI/CD
Sources¶
^[400-devops-04-ci-cd-pipelines-argocd.md] ^[400-devops__04-CI-CD-Pipelines__devops-ci__github-action__argocd-app-config__README.md]