ArgoCD install use kustomizaion

使用 kustomization 安裝 ArgoCD,並且利用 patch 來加入 istio 所需要的 Label。

此篇文所使用的安裝設定檔連結:Github

ArgoCD Memo

設定檔中也包含了 --insecure 執行參數,以便使用 http 連線 此定義檔主要增加 Kubernetes 的 Label 設定 (app, version),讓 Istio 可正常存取 為了方便以後的更新,有特別將各種不同類型的 patch 設定檔切割出來

  1. download install yaml (option)
    • 指定版本
      1
      
       curl -sSL https://raw.githubusercontent.com/argoproj/argo-cd/v2.3.4/manifests/install.yaml -o install-2.3.4.yaml
      
    • 最新版本
      1
      
       curl -sSL https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml -o install-latest.yaml
      
  2. 建立 namespace
    • 純建立
      1
      
      kubectl create namespace argocd
      
    • 含設定 istio 掛車
      1
      2
      3
      4
      5
      6
      7
      
      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
      
  • 升級後不會更新設定檔,因此原始的密碼與設定都相同
  • 可以先用以下命令檢查差異 (cmd 位置要先到 argocd kustomiztion 的位置)
    1
    2
    3
    4
    5
    6
    7
    8
    
    # 查看差異
    kubectl diff -k ./
    
    # 將差異資料輸出到特定檔案
    kubectl diff -k ./ > different-data.txt
    
    # 測試執行並輸出結果
    kubectl apply -k ./ --dry-run=client > dry-run.txt
    
1
kubectl apply -k ./