Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes.
- Declarative tool for Continuous Delivery of the Kubernetes applications
- Control plane that extends GitOps for Infrastructure deployments
- Live State vs Desired Target State
- Scalability, Multi-tenancy, Security, Extensibility
- Extension of Kubernetes cluster
- Install Argo CD via Helm Chart
- Connect the Git Repo (https://github.com/HivemindTechnologies/argocd-playground)
- Deploy the Application via Argo CD
- Create Argo CD namespace:
kubectl create namespace argocd
- Install Argo CD with Helm Chart inside the Namespace created at the point above:
helm repo add argo https://argoproj.github.io/argo-helm /
helm install argocd argo/argo-cd -n argocd
- Open the Argo CD UI by port-forwarding the service:
kubectl port-forward svc/argocd-server -n argocd 8080:443
- Open the Argo CD UI in the browser: https://localhost:8080
- Login with the default credentials by using the password stored in the secret argocd-initial-admin-secret:
kubectl get secret argocd-initial-admin-secret -n argocd -o jsonpath="{.data.password}" | base64 -d
- Click on Settings → Repositories
- Click on Connect Repo
- Fill the form with all the Git repo information and click on Connect
- Create the the Argo CD application manifest file called f.i. cool-app.yaml:
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: cool-app
namespace: argocd
spec:
project: default
source:
path: cool-app
repoURL: https://github.com/HivemindTechnologies/argocd-playground.git
targetRevision: main
destination:
namespace: cool-app
server: https://kubernetes.default.svc
syncPolicy:
automated:
selfHeal: true
prune: true
syncOptions:
- CreateNamespace=true
- Deploy the application manifest in Kubernetes namespace called argocd:
kubectl apply -f cool-app.yaml -n argocd