ArgoCD的資料夾階層

Jeff Yen
Aug 10, 2024

--

123

雖然很多人在新增argocd的app都是直接用UI,但我強力建議要有一個專門的存放ArgoCD CRD yaml檔案的repo,

我們可以看到在ArgoCD的CRD中,主要有三個Kind,Application, ApplicationSet,和AppProject.

在我們做完官網提供的範例可以看到,guestbook的application檔案和預設的project檔案

所以我們先準備好該檔案,然後用arocd cli去新增argocd application

argocd app create -f guestbook.yaml
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: guestbook
namespace: argocd # Argo CD 的安裝命名空間
spec:
project: default # 所屬的 AppProject,這裡默認為 "default"
source:
repoURL: 'https://github.com/argoproj/argocd-example-apps.git' # Git 儲存庫的 URL
targetRevision: HEAD # 目標分支或標籤,通常為主分支 "main" 或 "master"
path: 'guestbook' # 清單文件在儲存庫中的路徑
destination:
server: 'https://kubernetes.de
中的資源
selfHeal: true # 自動修復漂移的資源
syncOptions:
- CreateNamespace=true # 自動創建指定的命名空間(如果不存在)

當然在一個專案下可能有許多的app,假設有10個app是不是要輪流10個檔案部署,argocd 也有想到這個問題,可以在單一目錄下設定多個檔案.https://argo-cd.readthedocs.io/en/stable/user-guide/directory/

argocd app set guestbook --directory-include "*.yaml"
argocd app set guestbook --directory-include "{*.yml,*.yaml}"

--

--