f5873f052c99b0423f6fd627f62b09aa779639b6
[ric-plt/ric-dep.git] / helm / infrastructure / subcharts / kong / templates / controller-rbac-resources.yaml
1 {{- if and .Values.ingressController.rbac.create .Values.ingressController.enabled -}}
2 apiVersion: rbac.authorization.k8s.io/v1
3 kind: Role
4 metadata:
5   name: {{ template "kong.fullname" . }}
6   namespace: {{ template "kong.namespace" . }}
7   labels:
8     {{- include "kong.metaLabels" . | nindent 4 }}
9 rules:
10   - apiGroups:
11       - ""
12     resources:
13       - configmaps
14       - pods
15       - secrets
16       - namespaces
17     verbs:
18       - get
19   - apiGroups:
20       - ""
21     resources:
22       - configmaps
23     resourceNames:
24       # Defaults to "<election-id>-<ingress-class>"
25       # Here: "<kong-ingress-controller-leader-nginx>-<nginx>"
26       # This has to be adapted if you change either parameter
27       # when launching the nginx-ingress-controller.
28       - "kong-ingress-controller-leader-{{ .Values.ingressController.ingressClass }}-{{ .Values.ingressController.ingressClass }}"
29     verbs:
30       - get
31       - update
32   - apiGroups:
33       - ""
34     resources:
35       - configmaps
36     verbs:
37       - create
38 {{- if (semverCompare "< 2.10.0" (include "kong.effectiveVersion" .Values.ingressController.image)) }}
39   - apiGroups:
40       - ""
41     resources:
42       - endpoints
43     verbs:
44       - get
45 {{- end }}
46   # Begin KIC 2.x leader permissions
47   - apiGroups:
48       - ""
49       - coordination.k8s.io
50     resources:
51       - configmaps
52       - leases
53     verbs:
54       - get
55       - list
56       - watch
57       - create
58       - update
59       - patch
60       - delete
61   - apiGroups:
62       - ""
63     resources:
64       - events
65     verbs:
66       - create
67       - patch
68   - apiGroups:
69       - ""
70     resources:
71       - services
72     verbs:
73       - get
74 ---
75 apiVersion: rbac.authorization.k8s.io/v1
76 kind: RoleBinding
77 metadata:
78   name: {{ template "kong.fullname" . }}
79   namespace: {{ template "kong.namespace" . }}
80   labels:
81     {{- include "kong.metaLabels" . | nindent 4 }}
82 roleRef:
83   apiGroup: rbac.authorization.k8s.io
84   kind: Role
85   name: {{ template "kong.fullname" . }}
86 subjects:
87   - kind: ServiceAccount
88     name: {{ template "kong.serviceAccountName" . }}
89     namespace: {{ template "kong.namespace" . }}
90 {{- if eq (len .Values.ingressController.watchNamespaces) 0 }}
91 ---
92 apiVersion: rbac.authorization.k8s.io/v1
93 kind: ClusterRole
94 metadata:
95   labels:
96     {{- include "kong.metaLabels" . | nindent 4 }}
97   name: {{ template "kong.fullname" . }}
98 rules:
99 {{ include "kong.kubernetesRBACRules" . }}
100 {{ include "kong.kubernetesRBACClusterRules" . }}
101 ---
102 apiVersion: rbac.authorization.k8s.io/v1
103 kind: ClusterRoleBinding
104 metadata:
105   name: {{ template "kong.fullname" . }}
106   labels:
107     {{- include "kong.metaLabels" . | nindent 4 }}
108 roleRef:
109   apiGroup: rbac.authorization.k8s.io
110   kind: ClusterRole
111   name: {{ template "kong.fullname" . }}
112 subjects:
113   - kind: ServiceAccount
114     name: {{ template "kong.serviceAccountName" . }}
115     namespace: {{ template "kong.namespace" . }}
116 {{- else }}
117 {{- range .Values.ingressController.watchNamespaces }}
118 ---
119 apiVersion: rbac.authorization.k8s.io/v1
120 kind: Role
121 metadata:
122   labels:
123     {{- include "kong.metaLabels" $ | nindent 4 }}
124   name: {{ template "kong.fullname" $ }}-{{ . }}
125   namespace: {{ . }}
126 rules:
127 {{ include "kong.kubernetesRBACRules" $ }}
128 ---
129 apiVersion: rbac.authorization.k8s.io/v1
130 kind: RoleBinding
131 metadata:
132   name: {{ template "kong.fullname" $ }}-{{ . }}
133   labels:
134     {{- include "kong.metaLabels" $ | nindent 4 }}
135   namespace: {{ . }}
136 roleRef:
137   apiGroup: rbac.authorization.k8s.io
138   kind: Role
139   name: {{ template "kong.fullname" $ }}-{{ . }}
140 subjects:
141   - kind: ServiceAccount
142     name: {{ template "kong.serviceAccountName" $ }}
143     namespace: {{ template "kong.namespace" $ }}
144 {{- end }}
145 ---
146 apiVersion: rbac.authorization.k8s.io/v1
147 kind: ClusterRole
148 metadata:
149   labels:
150     {{- include "kong.metaLabels" . | nindent 4 }}
151   name: {{ template "kong.fullname" . }}
152 rules:
153 {{ include "kong.kubernetesRBACClusterRules" . }}
154 ---
155 apiVersion: rbac.authorization.k8s.io/v1
156 kind: ClusterRoleBinding
157 metadata:
158   name: {{ template "kong.fullname" . }}
159   labels:
160     {{- include "kong.metaLabels" . | nindent 4 }}
161 roleRef:
162   apiGroup: rbac.authorization.k8s.io
163   kind: ClusterRole
164   name: {{ template "kong.fullname" . }}
165 subjects:
166   - kind: ServiceAccount
167     name: {{ template "kong.serviceAccountName" . }}
168     namespace: {{ template "kong.namespace" . }}
169 {{- end -}}
170 {{- end -}}