mirror of
https://github.com/submariner-io/submariner-charts.git
synced 2026-09-20 19:10:34 +00:00
The submariner-operator Helm chart deploys Submariner using the Submariner operator: it deploys the CRDs, roles, and SAs required to run the operator and Submariner, then pushes a Submariner CR to instruct the operator to deploy Submariner. This patch also adds a Makefile to validate the deployments; run make deploy to test the Helm charts (this will bring up two clusters, install the broker on one of them and the operator on both, and end with a connectivity test). Fixes: #17 Signed-off-by: Stephen Kitt <skitt@redhat.com>
319 lines
9.1 KiB
YAML
319 lines
9.1 KiB
YAML
{{- 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 -}}
|