{{- 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.operatorServiceAccountName" . }} 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" . }}:gateway 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" . }}:gateway 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" . }}:gateway subjects: - kind: ServiceAccount name: {{ template "submariner.gatewayServiceAccountName" . }} 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 .Values.broker.globalnet }} 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" . }} 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 --- 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" . }}:gateway 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" . }}:gateway 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" . }}:gateway subjects: - kind: ServiceAccount name: {{ template "submariner.gatewayServiceAccountName" . }} 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 .Values.broker.globalnet }} 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 -}}