Вы можете иметь пространства имен и учетные записи служб, имеющие доступ только к тем конкретным ресурсам и apiGroups, которые вы хотите.
apiVersion: v1
kind: ServiceAccount
metadata:
name: gitlab-tez-dev # account name
namespace: tez-dev #namespace
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: tez-dev-full-access #role
namespace: tez-dev
rules:
- apiGroups: ["", "extensions", "apps"]
resources: ["deployments", "replicasets", "pods", "services"] #resources to which permissions are granted
verbs: ["*"] # what actions are allowed
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: tez-dev-view
namespace: tez-dev
subjects:
- kind: ServiceAccount
name: gitlab-tez-dev
namespace: tez-dev
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: tez-dev-full-access
Таким образом, указанная выше роль не имеет доступа к кластеру, и она доступна, если она ограничена определенным пространством имен и конкретными указанными ресурсами и действиями.
Затем вы можете использовать его для развертывания в определенном пространстве имен.