今天要来Demo ArgoCD上透过Gitlab的SSO与权限控管
先创建一个namespace
kubectl create ns group1
然後在gitlab上的group再创建一个subgroup 创建这次demo使用的repo
创建後我们group的示意图如下
点入我们的subgroup,这时候就要请出我们的分身一号gitlab帐号加入这个subgroup啦
回到外层的group点选application创建供dex server sso使用ClientID & ClientSecret,并设定CallBackURL
最後回到ArgoCD的UI,在上面多create一个repository&project,project名为group1
并将这个repo设定为demogroup1的application
接着调整昨天的values.yml 修改dex.config与policy.csv 重新布署
configEnabled: true
config:
# Argo CD's externally facing base URL (optional). Required when configuring SSO
url: https://192.168.1.241
# Argo CD instance label key
application.instanceLabelKey: argocd.argoproj.io/instance
dex.config: |
connectors:
- type: gitlab
id: gitlab
name: gitlab
config:
baseURL: https://gitlab.com
clientID: xxx
clientSecret: xxx
## Annotations to be added to ArgoCD ConfigMap
configAnnotations: {}
## ArgoCD rbac config
## reference https://github.com/argoproj/argo-cd/blob/master/docs/operator-manual/rbac.md
rbacConfig:
policy.csv: |
p, role:group1role, applications, *, group1/*, allow
p, role:group1role, clusters, get, *, allow
p, role:group1role, repositories, get, *, allow
p, role:group1role, projects, get, *, allow
p, role:mainrole, applications, *, *, allow
p, role:mainrole, clusters, *, *, allow
p, role:mainrole, repositories, *, *, allow
p, role:mainrole, projects, *, *, allow
g, gurubear-ithome-13th/group1, role:group1role
g, gurubear-ithome-13th, role:mainrole
这边设定的规则大概就是gurubear-ithome-13th/group1能对group1 project下的所有application做异动,针对clusters、repositories、projects全部仅能GET。gurubear-ithome-13th则是全部都可以。
执行helm更新布署的动作
helm upgrade homelab-argo argo/argo-cd --version 3.17.6 -f values.yml -n argocd
可以看到介面上已经有LOG IN VIA GITLAB的按钮了
分别使用分身与本尊登入,登入时需要同意授权
本尊帐号能看到全部的applications
分身帐号因为group的限制(下图显示该分身帐号底下只有这个gurubear-ithome-13th/group1),所以只能看到的group1的applications
透过这样的方式就能去做一定的权限控管了。
今天这样大概就把我想讲的ArgoCD部分结束了,在实务上也都可以搭配CI/CD、argocd CLI来处理这一连串的pipeline,就是需要去设计一下而已~
这系列我们会以实作「个人部落格」为主题,希望兼顾以下项目: 开发者体验:加功能调 UI 时有版本控制...
除了警示之外, DBA也可能需要即时监看, 立即找出问题所在. RDS也提供即时监看面板. 在资料库...
欧阳克是谁杀的? 这个this是谁?要看凶手是谁而定! 前面有提到,这个e是在当事件发生时,事件处...
昨天讲完架构面,今天不那麽技术,来讲界面设计。 画面设计上由於介面是设计给长者使用,因此字型较大。 ...
前言 Day 1 ~ Day 13 讲了 Obsidian 的基础操作、笔记理论後,接下来我要分享如...