71 lines
2.3 KiB
YAML
71 lines
2.3 KiB
YAML
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRole
|
|
metadata:
|
|
name: {{ template "name" . }}
|
|
labels:
|
|
app: {{ template "name" . }}
|
|
release: {{ .Release.Name }}
|
|
istio.io/rev: {{ .Values.revision | default "default" }}
|
|
install.operator.istio.io/owning-resource: {{ .Values.ownerName | default "unknown" }}
|
|
operator.istio.io/component: "Cni"
|
|
rules:
|
|
- apiGroups: [""]
|
|
resources: ["pods","nodes","namespaces"]
|
|
verbs: ["get", "list", "watch"]
|
|
{{- if (eq .Values.platform "openshift") }}
|
|
- apiGroups: ["security.openshift.io"]
|
|
resources: ["securitycontextconstraints"]
|
|
resourceNames: ["privileged"]
|
|
verbs: ["use"]
|
|
{{- end }}
|
|
---
|
|
{{- if .Values.cni.repair.enabled }}
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRole
|
|
metadata:
|
|
name: {{ template "name" . }}-repair-role
|
|
labels:
|
|
app: {{ template "name" . }}
|
|
release: {{ .Release.Name }}
|
|
istio.io/rev: {{ .Values.revision | default "default" }}
|
|
install.operator.istio.io/owning-resource: {{ .Values.ownerName | default "unknown" }}
|
|
operator.istio.io/component: "Cni"
|
|
rules:
|
|
- apiGroups: [""]
|
|
resources: ["events"]
|
|
verbs: ["create", "patch"]
|
|
- apiGroups: [""]
|
|
resources: ["pods"]
|
|
verbs: ["watch", "get", "list"]
|
|
{{- if .Values.cni.repair.repairPods }}
|
|
{{- /* No privileges needed*/}}
|
|
{{- else if .Values.cni.repair.deletePods }}
|
|
- apiGroups: [""]
|
|
resources: ["pods"]
|
|
verbs: ["delete"]
|
|
{{- else if .Values.cni.repair.labelPods }}
|
|
- apiGroups: [""]
|
|
{{- /* pods/status is less privileged than the full pod, and either can label. So use the lower pods/status */}}
|
|
resources: ["pods/status"]
|
|
verbs: ["patch", "update"]
|
|
{{- end }}
|
|
{{- end }}
|
|
---
|
|
{{- if .Values.cni.ambient.enabled }}
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRole
|
|
metadata:
|
|
name: {{ template "name" . }}-ambient
|
|
labels:
|
|
app: {{ template "name" . }}
|
|
release: {{ .Release.Name }}
|
|
istio.io/rev: {{ .Values.revision | default "default" }}
|
|
install.operator.istio.io/owning-resource: {{ .Values.ownerName | default "unknown" }}
|
|
operator.istio.io/component: "Cni"
|
|
rules:
|
|
- apiGroups: [""]
|
|
{{- /* pods/status is less privileged than the full pod, and either can label. So use the lower pods/status */}}
|
|
resources: ["pods/status"]
|
|
verbs: ["patch", "update"]
|
|
{{- end }}
|