ArgoCD install use kustomizaion
目錄
使用 kustomization 安裝 ArgoCD,並且利用 patch 來加入 istio 所需要的 Label。
此篇文所使用的安裝設定檔連結:Github
ArgoCD Memo
設定檔中也包含了 --insecure
執行參數,以便使用 http 連線
此定義檔主要增加 Kubernetes 的 Label 設定 (app, version),讓 Istio 可正常存取
為了方便以後的更新,有特別將各種不同類型的 patch 設定檔切割出來
- 安裝檔案說明
檔案 說明 Kustomiztion.yaml kustomiztion 定義檔 install-2.3.4.yaml argocd 官方 2.3.4 版本安裝檔 VirtualService.yaml Istio 所需的 VirtualService 服務安裝檔 Gateway.yaml Istio 所需的 Gateway 服務安裝檔 (不是 IngressGateway) istio_patches_deployment.yaml argocd 官方版本安裝檔的覆蓋參數,增加 Istio 所需的 Label 定義 istio_patches_service.yaml argocd 官方版本安裝檔的覆蓋參數,增加 Istio 所需的 Label 定義 istio_patches_statefulset.yaml argocd 官方版本安裝檔的覆蓋參數,增加 Istio 所需的 Label 定義
0.1 安裝檔準備
- download install yaml (option)
- 指定版本
curl -sSL https://raw.githubusercontent.com/argoproj/argo-cd/v2.3.4/manifests/install.yaml -o install-2.3.4.yaml
- 最新版本
curl -sSL https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml -o install-latest.yaml
- 指定版本
- 建立 namespace
- 純建立
kubectl create namespace argocd
- 含設定 istio 掛車
kubectl create namespace argocd kubectl label namespace argocd istio-injection=enabled --overwrite # 如果安裝 istio 的時候是特別設定版本的話 (通常出現在有使用金絲雀部署來更新 istio 的狀況) # 如果已經有設定掛車的話,可以用這方式刪掉舊的同時設定新的 #kubectl label namespace argocd istio-injection- istio.io/rev=1-13-3 kubectl label namespace argocd istio.io/rev=1-13-3
- 純建立
0.2 When Upgrade
- 升級後不會更新設定檔,因此原始的密碼與設定都相同
- 可以先用以下命令檢查差異 (cmd 位置要先到 argocd kustomiztion 的位置)
# 查看差異 kubectl diff -k ./ # 將差異資料輸出到特定檔案 kubectl diff -k ./ > different-data.txt # 測試執行並輸出結果 kubectl apply -k ./ --dry-run=client > dry-run.txt
0.3 Install
kubectl apply -k ./