Introduction
ArgoCD adalah tools yang digunakan untuk GitOps pada sistem Kubernetes. Jadi ketika mau deploy sesuatu itu kita akan menggunakan GitOps. ArgoCD akan melakukan deploy sesuai dengan file yang berada di Git Repository.
Reqruitment
Untuk kebutuhan deploy argocd yaitu
- Kubernetes cluster
- Helm
- LoadBalancer (MetalLB)
Installation
Install helm terlebih dahulu (jika belum ada). Bisa check pada web resmi helm https://helm.sh/docs/intro/install/
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh
Add repo argocd via helm
helm repo add argo https://argoproj.github.io/argo-helm
helm repo update
Kita bisa check list repo pada argo
helm search repo argo

Kita akan gunakan argo-cd sesuai kebutuhan kita. Sebelum itu, kita bisa download default values dari argo-cd. (Kita bisa pelajari apa saja yang ada di values tersebut dan mungkin ada beberapa yang kita butuhkan selain yang saya buat, karena ini hanya tutorial saja).
helm show values argo/argo-cd > values-ori.yaml
Kita akan menggunakan values.yaml yang kita custom.
server:
service:
type: LoadBalancer
loadBalancerIP: "10.100.19.91"
configs:
cm:
kustomize.buildOptions: "--enable-helm"
users.session.duration: "24h"
exec.enabled: true
server.service.type | Kita menggunakan LoadBalancer (Butuh MetalLB) |
configs.cm.kustomize.buildOptions | Kita enable helm karena untuk kedepannya bisa menggabungkan kustomize dan helm pada konfiguarsi argocd |
configs.cm.users.session.duration | Durasi session pada user login |
configs.cm.exec.enabled | Kita bisa melakukan exec pada argocd |
Membuat namespace untuk argocd dan Install argocd menggunakan helm dan values yang kita bua
kubectl create ns argocd
helm install argocd argo/argo-cd -n argocd -f values.yaml

Instalasi sudah selesai sekarang kita check default password untuk admin
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
Karena kita menggunakan LoadBalancer, maka kita check servicenya akan mendapatkan IP Address dari LoadBalancer
kubectl get svc -n argocd

Sekarang kita akses argocd menggunakan IP loadbalancer tersebut menggunakan browser

Login menggunakan user admin dan password yang sudah dicek sebelumnya

Argocd sudah siap digunakan