--- apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: mongodb-kubernetes-operator rules: - apiGroups: - "" resources: - pods - services - configmaps - secrets verbs: - create - delete - get - list - patch - update - watch - apiGroups: - apps resources: - statefulsets verbs: - create - delete - get - list - patch - update - watch - apiGroups: - mongodbcommunity.mongodb.com resources: - mongodbcommunity - mongodbcommunity/status - mongodbcommunity/spec - mongodbcommunity/finalizers verbs: - get - patch - list - update - watch --- kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: mongodb-kubernetes-operator subjects: - kind: ServiceAccount name: mongodb-kubernetes-operator roleRef: kind: Role name: mongodb-kubernetes-operator apiGroup: rbac.authorization.k8s.io --- kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: mongodb-database subjects: - kind: ServiceAccount name: mongodb-database roleRef: kind: Role name: mongodb-database apiGroup: rbac.authorization.k8s.io --- kind: Role apiVersion: rbac.authorization.k8s.io/v1 metadata: name: mongodb-database rules: - apiGroups: - "" resources: - secrets verbs: - get - apiGroups: - "" resources: - pods verbs: - patch - delete - get --- apiVersion: v1 kind: ServiceAccount metadata: name: mongodb-kubernetes-operator --- apiVersion: v1 kind: ServiceAccount metadata: name: mongodb-database --- # Allow any pod in this namespace to connect to MongoDB and # allow cluster members to talk to eachother apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: mongodb-operator spec: podSelector: matchLabels: app: mongodb-svc policyTypes: - Ingress - Egress ingress: - from: - podSelector: {} ports: - port: 27017 egress: - to: - podSelector: matchLabels: app: mongodb-svc ports: - port: 27017