ArgoCD實作
首先找到安裝解說頁面:
先建立namespace:
kubectl create namespace argocd
接著跑第二行指令,執行argo-cd安裝:
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
確認一下pod:
原始的UI介面的svc元件是:
看看目前該元件的yaml內容:
嘗試簡單點改成nodePort:
先拿到yaml檔:
備份一下:
調整:
回頭繼續看文件有教怎麼登入:
執行指令拿密碼:
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo
預設帳號是:admin,所以:
把帳密敲一敲就進到:
以上argocd就準備好了,後面要針對git有些檔案操作
首先建個公開的git repo:
最外層的檔案內容是:
dev裡面放兩個檔:
準備完成!
另外為了讓argocd先吃到設定用的application.yaml:
所以直接在上面建立該檔案:
然後直接建立:
此時回到UI畫面一看就發現有東西了!!:
放大一看:
點上面圖進去會看到細節:
以上這個application.yaml也可以直接在Argo的UI上建立(參考)
後來發現pod一直建不起來,執行describe看到拉image失敗:
估計是AWS ECR的登入secret已經失效拉~~
參考之前ECR的步驟<...>重建secret:
這時候注意,剛剛argocd拉取的deployment
裡面定義的AWS ECR pod是latest版
也就是只有一個restful api:
測試一下:
這時候實驗一下把git上面deployment內的image tag換成2:
等待argocd偵測到git異動後,將pod自動重建為新的tag的image:
過幾分鐘看看pod狀態:
理論上這個pod三個redtful api都要有!!!!
確認:
以上即完成argocd 範例!!!
另外我後來想到若是Git Repo有憑證(帳密)等設置
必須要給application.yaml上帶著Credentials這種secret元件資訊才合理
這部分可以看到官網(參考)
但是是否有需要將ArgoCD需要參照的Repo設置需要憑證(帳密)
才能取得desired state的元件
還是透過Git Repo本身設置,將Repo內容公開給Argo
但是修改才需要憑證(帳密)
我覺得很值得討論(˙ω˙)!