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.shAdd repo argocd via helm
helm repo add argo https://argoproj.github.io/argo-helm
helm repo updateKita 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.yamlKita 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 -dKarena 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