bla*_*ead 3 namespaces rbac kubernetes
我有两支球队:
问题是“开发人员”在“操作”创建 RBAC 资源之前无法对其命名空间进行 kubectl。并且“开发人员”无法自己创建 RBAC 资源,因为他们没有要放入角色绑定资源的主题列表(共享列表不是一种选择)。
我已经阅读了关于Admission webhook的官方文档,但我的理解是它们只对触发 webhook 的资源起作用。
每当创建新的命名空间时,Kubernetes 是否有原生和/或简单的方法来应用资源?
我通过编写自定义控制器提出了一个解决方案。
随着部署了以下自定义资源,控制器的注入role
,并rolebinding
在命名空间匹配dev-.*
和fix-.*
:
kind: NamespaceResourcesInjector
apiVersion: blakelead.com/v1alpha1
metadata:
name: nri-test
spec:
namespaces:
- dev-.*
- fix-.*
resources:
- |
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: dev-role
rules:
- apiGroups: [""]
resources: ["pods","pods/portforward", "services", "deployments", "ingresses"]
verbs: ["list", "get"]
- apiGroups: [""]
resources: ["pods/portforward"]
verbs: ["create"]
- apiGroups: [""]
resources: ["namespaces"]
verbs: ["list", "get"]
- |
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: dev-rolebinding
subjects:
- kind: User
name: dev
roleRef:
kind: Role
name: dev-role
apiGroup: rbac.authorization.k8s.io
Run Code Online (Sandbox Code Playgroud)
控制器仍处于开发的早期阶段,但我已在越来越多的集群中成功使用它。
这是给那些感兴趣的人:https : //github.com/blakelead/nsinjector
归档时间: |
|
查看次数: |
550 次 |
最近记录: |