ArgoCD 學習筆記
Install
$ kubectl create namespace argocd
$ kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
Access Argo Server
$ kubectl port-forward svc/argocd-server -n argocd 8080:443
The API server can then be accessed using https://localhost:8080
Login with default user
預設 argocd 會在產生一組帳號 admin,以及一個 secret 在 argocd-initial-admin-secret
,可透過以下指令拿到admin 帳號預設密碼,記得登入後前往修改密碼即可。(修改完密碼後就可以把預設的 secret 刪掉摟)
$ kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo
Project
project 主要用來區分你的 Application 歸屬,每個 Application 在建立時必須指定歸在哪一個 project 中,預設 project 為 default
,每個 project 可個別設定配置 repository 來源進行管理
Repository
repository 主要用來連結你的 git 專案位置,同樣在創建 application 時必須提供對應的 repo,而一個 git 專案內可以有許多配置,在建立 application 時可以明確指定 git repo path,ArgoCD 會自動偵測你的 git repo 底下有哪些 config 路徑並給予下拉選單選取
Application
application 是 ArgoCD 當中的一個實體,選取所屬 project, repository 的 config 設定後,就會根據配置進行部署,可以設定自動同步或是手動同步,如果是自動同步則每當 git repo 中設定變更時 ArgoCD 將偵測並且進行重新部署
create image pull secret
$ kubectl create secret docker-registry <name> --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL
需注意,secret 的 namespace 跟創建 Applications 時提供的 namespace 需一致,否則將無法套用 secret,詳情可見 這個討論串