{{- if .Values.rbac.create -}} 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: - 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: - submariner-operator resources: - deployments/finalizers verbs: - update - apiGroups: - "" resources: - pods verbs: - get - apiGroups: - apps resources: - replicasets verbs: - get - apiGroups: - submariner.io resources: - '*' - servicediscoveries verbs: - '*' - apiGroups: - lighthouse.submariner.io resources: - '*' - serviceexports verbs: - create - delete - get - list - patch - update - watch --- 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.engineServiceAccountName" . }} 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: - "" 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: - submariner-operator resources: - deployments/finalizers verbs: - update - apiGroups: - "" resources: - pods verbs: - get - apiGroups: - apps resources: - replicasets verbs: - get - apiGroups: - submariner.io resources: - '*' - servicediscoveries verbs: - '*' - apiGroups: - lighthouse.submariner.io resources: - '*' - serviceexports verbs: - create - delete - get - list - patch - update - watch --- 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.routeAgentServiceAccountName" . }} namespace: {{ .Release.Namespace }} --- {{- if ne .Values.submariner.globalCidr "" }} apiVersion: rbac.authorization.k8s.io/v1 kind: Role 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: - 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: - submariner-operator resources: - deployments/finalizers verbs: - update - apiGroups: - "" resources: - pods verbs: - get - apiGroups: - apps resources: - replicasets verbs: - get - apiGroups: - submariner.io resources: - '*' - servicediscoveries verbs: - '*' - apiGroups: - lighthouse.submariner.io resources: - '*' - serviceexports verbs: - create - delete - get - list - patch - update - watch --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding 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: Role name: {{ template "submariner.fullname" . }}:globalnet subjects: - kind: ServiceAccount name: {{ template "submariner.globalnetServiceAccountName" . }} namespace: {{ .Release.Namespace }} --- {{- end -}} --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole 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: - get - list - watch - create - 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 - nodes 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: - submariner.io resources: - endpoints - gateways - clusters verbs: - get - list - watch --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding 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: ClusterRole name: {{ template "submariner.fullname" . }}:engine subjects: - kind: ServiceAccount name: {{ template "submariner.engineServiceAccountName" . }} namespace: {{ .Release.Namespace }} --- 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: - 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: - "" verbs: - get - list - watch - update resources: - nodes --- 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.routeAgentServiceAccountName" . }} namespace: {{ .Release.Namespace }} --- {{- if ne .Values.submariner.globalCidr "" }} 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: - pods - services - namespaces - nodes verbs: - get - list - watch - update - apiGroups: - submariner.io resources: - endpoints - clusters verbs: - get - list - watch - apiGroups: - multicluster.x-k8s.io resources: - "serviceexports" verbs: - get - list - watch --- {{- end -}} 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.globalnetServiceAccountName" . }} namespace: {{ .Release.Namespace }} --- {{- if .Values.submariner.serviceDiscovery }} apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: {{ template "submariner.fullname" . }}:lighthouse-agent labels: heritage: {{ .Release.Service | quote }} release: {{ .Release.Name | quote }} chart: {{ template "submariner.chart" . }} app: {{ template "submariner.name" . }} rules: - apiGroups: - "" resources: - services - namespaces - endpoints verbs: - get - list - watch - update - apiGroups: - discovery.k8s.io resources: - endpointslices verbs: - create - get - list - watch - update - delete - deletecollection - apiGroups: - submariner.io resources: - "gateways" verbs: - get - list - watch - 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" . }}:lighthouse-agent 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-agent subjects: - kind: ServiceAccount name: {{ template "submariner.lighthouseAgentServiceAccountName" . }} namespace: {{ .Release.Namespace }} --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: {{ template "submariner.fullname" . }}:lighthouse-coredns rules: - apiGroups: - "" resources: - services - namespaces - endpoints verbs: - get - list - watch - update - apiGroups: - discovery.k8s.io resources: - endpointslices verbs: - create - get - list - watch - update - delete - deletecollection - apiGroups: - lighthouse.submariner.io resources: - "*" verbs: - create - get - list - watch - update - delete - apiGroups: - submariner.io resources: - "gateways" verbs: - get - list - watch - 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" . }}:lighthouse-coredns roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: {{ template "submariner.fullname" . }}:lighthouse-coredns subjects: - kind: ServiceAccount name: {{ template "submariner.lighthouseCoreDnsServiceAccountName" . }} namespace: {{ .Release.Namespace }} {{- end -}} {{- end -}}