命令行登錄
參考:argocd 登錄登出[1]
登錄:
echo?y?|?argocd?login?argocd-server.argocd.svc.cluster.local?--password?'argo@admin.smallsoup'?--username?admin
登出:
argocd?logout?argocd-server.argocd.svc.cluster.local
創建用戶、授權
創建用戶
參考:用戶管理[2]
在 argocd/argocd-cm 中增加一個 gitops 用戶,有生成 apiKey 和 login 權限。
apiVersion:?v1data:accounts.gitops:?apiKey,?loginkind:?ConfigMapmetadata:labels:app.kubernetes.io/name:?argocd-cmapp.kubernetes.io/part-of:?argocdname:?argocd-cmnamespace:?argocd
修改后,會熱加載,無需重啟任何服務。
用 admin 用戶登錄后,修改 gitops 的密碼為 gitops@smallsoup(注意 current-password 是當前登錄用戶的密碼,如果用 admin 登錄的,就是 admin 的密碼)
argocd?account?update-password?\--account?gitops?\--current-password?'argo@admin.smallsoup'?\--new-password?'gitops@smallsoup'
此時可以用命令行登錄:
echo?y?|?argocd?login?argocd-server.argocd.svc.cluster.local?--password?'gitops@smallsoup'?--username?gitops
此用戶登錄進去看不到 admin 建的任何資源(app、project、倉庫、cluster 等)。給 gitops 用戶生成 token:(這樣生成的 token 從不過期,可以加--expires-in 參數設置過期時長)
#?argocd?account?generate-token?--account?gitops
xxxx
之后就需要 login 了,需要指定--server 和--insecure
argocd?app?list?--auth-token?xxx?--server?argocd-server.argocd.svc.cluster.local?--insecure
但使用 token 的方式,每次執行命令行都需要加參數,較為復雜。直接 login 后操作更為簡單。
權限
參考:Rbac 權限控制[3]
資源和動作有下面這些:
Resources: clusters, projects, applications, repositories, certificates, accounts, gpgkeys, logs, exec Actions: get, create, update, delete, sync, override, action/<group/kind/action-name>
在 argocd-rbac-cm Configmaps 中給增加以下 policy.csv 就可以看到 admin 創建的 app、倉庫等信息了:
data:policy.csv:?|p,?role:gitops,?applications,?get,?*,?allowp,?role:gitops,?applications,?create,?*,?allowp,?role:gitops,?applications,?update,?*,?allowp,?role:gitops,?applications,?sync,?*,?allowp,?role:gitops,?applications,?override,?*,?allowp,?role:gitops,?repositories,?get,?*,?allowp,?role:gitops,?repositories,?create,?*,?allowp,?role:gitops,?repositories,?update,?*,?allowp,?role:gitops,?projects,?create,?*,?allowp,?role:gitops,?projects,?get,?*,?allowp,?role:gitops,?clusters,?get,?*,?allowp,?role:gitops,?clusters,?list,?*,?allowg,?gitops,?role:gitopsapiVersion:?v1kind:?ConfigMapmetadata:labels:app.kubernetes.io/name:?argocd-rbac-cmapp.kubernetes.io/part-of:?argocdname:?argocd-rbac-cmnamespace:?argocd
注意:必須增加 g, gitops, role:gitops將 gitops 用戶加到 gitops 這個 role 中。
觸發同步 sync
echo?y?|?argocd?login?argocd-server.argocd.svc.cluster.local?--password?'gitops@smallsoup'?--username?gitopsargocd?app?sync?apps-by-top-app
參考資料
[1]
argocd 登錄登出: https://argo-cd.readthedocs.io/en/stable/user-guide/commands/argocd_login/
[2]用戶管理: https://argo-cd.readthedocs.io/en/stable/operator-manual/user-management/
[3]Rbac 權限控制: https://argo-cd.readthedocs.io/en/stable/operator-manual/rbac/
- END -
分享、點贊和在看
支持我們分享更多好文章,謝謝!
?點個在看集群永保穩定👇