下面是一个使用Argo UI和RBAC在命名空间安装中按组显示工作流可见性的示例解决方法:
首先,确保你已经安装了Argo和RBAC插件,并且已经创建了相应的命名空间。
创建一个RBAC角色和角色绑定,用于授予访问工作流的权限。例如,你可以创建一个名为workflow-viewer
的角色和一个名为workflow-group
的组,然后将角色绑定到该组上。
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: workflow-viewer
namespace:
rules:
- apiGroups: ["argoproj.io"]
resources: ["workflows"]
verbs: ["get", "list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: workflow-group
namespace:
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: workflow-viewer
subjects:
- kind: Group
name:
argo-config
的ConfigMap。apiVersion: v1
kind: ConfigMap
metadata:
name: argo-config
namespace:
data:
config: |
workflowPanelGroups:
- name:
title:
iconClass: fa fa-users
matcher:
role: workflow-viewer
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: argo-ui-ingress
namespace:
spec:
rules:
- host:
http:
paths:
- pathType: Prefix
path: /
backend:
service:
name: argo-server
port:
number: 2746
apiVersion: apps/v1
kind: Deployment
metadata:
name: argo-ui
namespace:
spec:
replicas: 1
selector:
matchLabels:
app: argo-ui
template:
metadata:
labels:
app: argo-ui
spec:
containers:
- name: argo-ui
image: argoproj/argoui:v3.1.2
ports:
- containerPort: 8001
volumeMounts:
- mountPath: /app/config
subPath: config
name: argo-config
volumes:
- name: argo-config
configMap:
name: argo-config
确保所有资源已经部署,并且RBAC和ConfigMap的名称和命名空间与示例中提供的名称和命名空间匹配。
访问你的Argo UI的Ingress地址,在UI的侧边栏中应该可以看到你设置的组名称和图标,只有属于该组的用户才能看到工作流。
请注意,上述示例中的
,
,
,
等占位符需要根据你自己的环境进行替换。此外,还可以根据自己的需求进行额外的配置。