# This is a template to generate the necessary RBAC to deploy a second cluster into a namespace # It assumes that common.yaml already ran # # Run me like: # NAMESPACE=rook-ceph-secondary envsubst < tests/manifests/common-cluster-secondary.yaml | kubectl create -f - --- apiVersion: v1 kind: Namespace metadata: name: $NAMESPACE --- kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: rook-ceph-cluster-mgmt namespace: $NAMESPACE roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: rook-ceph-cluster-mgmt subjects: - kind: ServiceAccount name: rook-ceph-system namespace: rook-ceph --- kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: rook-ceph-cmd-reporter namespace: $NAMESPACE roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: rook-ceph-cmd-reporter subjects: - kind: ServiceAccount name: rook-ceph-cmd-reporter namespace: $NAMESPACE --- apiVersion: v1 kind: ServiceAccount metadata: name: rook-ceph-cmd-reporter namespace: $NAMESPACE --- kind: Role apiVersion: rbac.authorization.k8s.io/v1 metadata: name: rook-ceph-cmd-reporter namespace: $NAMESPACE rules: - apiGroups: - "" resources: - pods - configmaps verbs: - get - list - watch - create - update - delete --- kind: Role apiVersion: rbac.authorization.k8s.io/v1 metadata: name: rook-ceph-osd namespace: $NAMESPACE rules: - apiGroups: [""] resources: ["configmaps"] verbs: ["get", "list", "watch", "create", "update", "delete"] - apiGroups: ["ceph.rook.io"] resources: ["cephclusters", "cephclusters/finalizers"] verbs: ["get", "list", "create", "update", "delete"] --- kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1 metadata: name: rook-ceph-osd-external rules: - apiGroups: - "" resources: - nodes verbs: - get - list --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: rook-ceph-osd-external roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: rook-ceph-osd-external subjects: - kind: ServiceAccount name: rook-ceph-osd namespace: $NAMESPACE --- kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: rook-ceph-osd-external namespace: $NAMESPACE roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: rook-ceph-osd subjects: - kind: ServiceAccount name: rook-ceph-osd namespace: $NAMESPACE --- apiVersion: v1 kind: ServiceAccount metadata: name: rook-ceph-mgr namespace: $NAMESPACE --- apiVersion: v1 kind: ServiceAccount metadata: name: rook-ceph-osd namespace: $NAMESPACE --- # Aspects of ceph osd purge job that require access to the operator/cluster namespace kind: Role apiVersion: rbac.authorization.k8s.io/v1 metadata: name: rook-ceph-purge-osd namespace: $NAMESPACE rules: - apiGroups: [""] resources: ["configmaps"] verbs: ["get"] - apiGroups: ["apps"] resources: ["deployments"] verbs: ["get", "delete"] - apiGroups: ["batch"] resources: ["jobs"] verbs: ["get", "list", "delete"] - apiGroups: [""] resources: ["persistentvolumeclaims"] verbs: ["get", "update", "delete"] --- # Allow the osd purge job to run in this namespace kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: rook-ceph-purge-osd namespace: $NAMESPACE roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: rook-ceph-purge-osd subjects: - kind: ServiceAccount name: rook-ceph-purge-osd namespace: $NAMESPACE --- apiVersion: v1 kind: ServiceAccount metadata: name: rook-ceph-purge-osd namespace: $NAMESPACE