Files
lunarfront-charts/manager/rbac.yaml

126 lines
2.8 KiB
YAML

apiVersion: v1
kind: ServiceAccount
metadata:
name: manager
namespace: manager
---
# pgbouncer config management
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: manager-pgbouncer
namespace: pgbouncer
rules:
- apiGroups: [""]
resources: ["configmaps"]
resourceNames: ["pgbouncer-config"]
verbs: ["get", "patch"]
- apiGroups: [""]
resources: ["secrets"]
resourceNames: ["pgbouncer-userlist"]
verbs: ["get", "patch"]
- apiGroups: ["apps"]
resources: ["deployments"]
resourceNames: ["pgbouncer"]
verbs: ["get", "patch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: manager-pgbouncer
namespace: pgbouncer
subjects:
- kind: ServiceAccount
name: manager
namespace: manager
roleRef:
kind: Role
apiGroup: rbac.authorization.k8s.io
name: manager-pgbouncer
---
# ArgoCD application management
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: manager-argocd
namespace: argocd
rules:
- apiGroups: ["argoproj.io"]
resources: ["applications"]
verbs: ["get", "create", "delete"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: manager-argocd
namespace: argocd
subjects:
- kind: ServiceAccount
name: manager
namespace: manager
roleRef:
kind: Role
apiGroup: rbac.authorization.k8s.io
name: manager-argocd
---
# Dev pod management
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: manager-dev
namespace: dev
rules:
- apiGroups: ["apps"]
resources: ["deployments"]
verbs: ["get", "list", "patch", "update"]
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list"]
- apiGroups: [""]
resources: ["secrets"]
resourceNames: ["dev-secrets"]
verbs: ["get", "patch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: manager-dev
namespace: dev
subjects:
- kind: ServiceAccount
name: manager
namespace: manager
roleRef:
kind: Role
apiGroup: rbac.authorization.k8s.io
name: manager-dev
---
# Cluster-wide: create/delete customer namespaces and manage secrets within them
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: manager-customer-provisioner
rules:
- apiGroups: [""]
resources: ["namespaces"]
verbs: ["get", "create", "delete"]
- apiGroups: [""]
resources: ["secrets"]
verbs: ["get", "create", "delete", "patch"]
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: manager-customer-provisioner
subjects:
- kind: ServiceAccount
name: manager
namespace: manager
roleRef:
kind: ClusterRole
apiGroup: rbac.authorization.k8s.io
name: manager-customer-provisioner