{{- if .Values.rbac.create -}} apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: {{ template "submariner.fullname" . }} labels: heritage: {{ .Release.Service | quote }} release: {{ .Release.Name | quote }} chart: {{ template "submariner.chart" . }} app: {{ template "submariner.name" . }} rules: - apiGroups: - "" resources: - pods - services - services/finalizers - endpoints - persistentvolumeclaims - events - configmaps - secrets verbs: - '*' - apiGroups: - apps resources: - deployments - daemonsets - replicasets - statefulsets verbs: - '*' - apiGroups: - monitoring.coreos.com resources: - servicemonitors verbs: - get - create - apiGroups: - apps resourceNames: - {{ template "submariner.fullname" . }} resources: - deployments/finalizers verbs: - update - apiGroups: - "" resources: - pods verbs: - get - apiGroups: - apps resources: - replicasets verbs: - get - apiGroups: - submariner.io resources: - '*' - servicediscoveries verbs: - '*' --- kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: {{ template "submariner.fullname" . }} labels: heritage: {{ .Release.Service | quote }} release: {{ .Release.Name | quote }} chart: {{ template "submariner.chart" . }} app: {{ template "submariner.name" . }} subjects: - kind: ServiceAccount name: {{ template "submariner.fullname" . }} roleRef: kind: Role name: {{ template "submariner.fullname" . }} apiGroup: rbac.authorization.k8s.io --- apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: {{ template "submariner.fullname" . }}:engine labels: heritage: {{ .Release.Service | quote }} release: {{ .Release.Name | quote }} chart: {{ template "submariner.chart" . }} app: {{ template "submariner.name" . }} rules: - apiGroups: [""] resources: ["configmaps"] verbs: ["create", "get", "list", "watch", "patch", "update"] - apiGroups: ["submariner.io"] resources: ["clusters", "endpoints", "gateways"] verbs: ["create", "get", "list", "watch", "patch", "update", "delete"] - apiGroups: [""] resources: ["events"] verbs: ["create", "patch"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: {{ template "submariner.fullname" . }}:engine labels: heritage: {{ .Release.Service | quote }} release: {{ .Release.Name | quote }} chart: {{ template "submariner.chart" . }} app: {{ template "submariner.name" . }} roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: {{ template "submariner.fullname" . }}:engine subjects: - kind: ServiceAccount name: {{ template "submariner.operatorServiceAccountName" . }} namespace: {{ .Release.Namespace }} --- apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: {{ template "submariner.fullname" . }}:routeagent labels: heritage: {{ .Release.Service | quote }} release: {{ .Release.Name | quote }} chart: {{ template "submariner.chart" . }} app: {{ template "submariner.name" . }} rules: - apiGroups: ["submariner.io"] resources: ["clusters", "endpoints", "gateways"] verbs: ["create", "get", "list", "watch", "patch", "update"] - apiGroups: [""] resources: ["pods"] verbs: ["get", "watch", "list"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: {{ template "submariner.fullname" . }}:routeagent labels: heritage: {{ .Release.Service | quote }} release: {{ .Release.Name | quote }} chart: {{ template "submariner.chart" . }} app: {{ template "submariner.name" . }} roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: {{ template "submariner.fullname" . }}:routeagent subjects: - kind: ServiceAccount name: {{ template "submariner.operatorServiceAccountName" . }} namespace: {{ .Release.Namespace }} --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: {{ template "submariner.fullname" . }} labels: heritage: {{ .Release.Service | quote }} release: {{ .Release.Name | quote }} chart: {{ template "submariner.chart" . }} app: {{ template "submariner.name" . }} rules: # submariner-operator updates the config map of core-dns to forward requests to # clusterset.local to Lighthouse DNS, also looks at existing configmaps # to figure out network settings - apiGroups: [""] resources: ["configmaps"] verbs: ["get", "list", "watch", "update"] - apiGroups: ["apiextensions.k8s.io"] resources: ["customresourcedefinitions"] verbs: ["get", "list", "create", "update", "delete"] - apiGroups: [""] # pods and services are looked up to figure out network settings resources: ["pods", "services"] verbs: ["get", "list", "watch"] - apiGroups: ["operator.openshift.io"] resources: ["dnses"] verbs: ["get", "list", "watch", "update"] - apiGroups: ["config.openshift.io"] resources: ["networks"] verbs: ["get", "list"] - apiGroups: ["multicluster.x-k8s.io"] resources: ["*"] verbs: ["create", "get", "list", "watch", "update", "delete"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: {{ template "submariner.fullname" . }} labels: heritage: {{ .Release.Service | quote }} release: {{ .Release.Name | quote }} chart: {{ template "submariner.chart" . }} app: {{ template "submariner.name" . }} subjects: - kind: ServiceAccount name: {{ template "submariner.operatorServiceAccountName" . }} namespace: {{ .Release.Namespace }} roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: {{ template "submariner.fullname" . }} --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: {{ template "submariner.fullname" . }}:routeagent labels: heritage: {{ .Release.Service | quote }} release: {{ .Release.Name | quote }} chart: {{ template "submariner.chart" . }} app: {{ template "submariner.name" . }} rules: - apiGroups: [""] resources: ["nodes"] verbs: ["get", "update"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: {{ template "submariner.fullname" . }}:routeagent labels: heritage: {{ .Release.Service | quote }} release: {{ .Release.Name | quote }} chart: {{ template "submariner.chart" . }} app: {{ template "submariner.name" . }} roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: {{ template "submariner.fullname" . }}:routeagent subjects: - kind: ServiceAccount name: {{ template "submariner.operatorServiceAccountName" . }} namespace: {{ .Release.Namespace }} --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: {{ template "submariner.fullname" . }}:globalnet labels: heritage: {{ .Release.Service | quote }} release: {{ .Release.Name | quote }} chart: {{ template "submariner.chart" . }} app: {{ template "submariner.name" . }} rules: - apiGroups: [""] resources: ["services", "namespaces", "pods", "nodes"] verbs: ["get", "list", "watch", "update"] - apiGroups: ["submariner.io"] resources: ["clusters", "endpoints", "gateways"] verbs: ["get", "list", "watch"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: {{ template "submariner.fullname" . }}:globalnet labels: heritage: {{ .Release.Service | quote }} release: {{ .Release.Name | quote }} chart: {{ template "submariner.chart" . }} app: {{ template "submariner.name" . }} roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: {{ template "submariner.fullname" . }}:globalnet subjects: - kind: ServiceAccount name: {{ template "submariner.operatorServiceAccountName" . }} namespace: {{ .Release.Namespace }} --- {{- if .Values.submariner.serviceDiscovery }} apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: {{ template "submariner.fullname" . }}:lighthouse labels: heritage: {{ .Release.Service | quote }} release: {{ .Release.Name | quote }} chart: {{ template "submariner.chart" . }} app: {{ template "submariner.name" . }} rules: - apiGroups: [""] resources: ["services", "namespaces", "configmaps", "endpoints"] verbs: ["get", "list", "watch", "update"] - apiGroups: ["discovery.k8s.io"] resources: ["endpointslices"] verbs: ["create", "get", "list", "watch", "update", "delete"] - apiGroups: ["lighthouse.submariner.io"] resources: ["*"] verbs: ["create", "get", "list", "watch", "update", "delete"] - apiGroups: ["submariner.io"] resources: ["gateways"] verbs: ["get", "list", "watch"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: {{ template "submariner.fullname" . }}:lighthouse labels: heritage: {{ .Release.Service | quote }} release: {{ .Release.Name | quote }} chart: {{ template "submariner.chart" . }} app: {{ template "submariner.name" . }} roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: {{ template "submariner.fullname" . }}:lighthouse subjects: - kind: ServiceAccount name: {{ template "submariner.operatorServiceAccountName" . }} namespace: {{ .Release.Namespace }} {{- end -}} {{- end -}}