rbac.yaml 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400
  1. {{- if .Values.rbac.create -}}
  2. apiVersion: rbac.authorization.k8s.io/v1
  3. {{- if and .Values.scopedNamespace .Values.scopedRBAC }}
  4. kind: Role
  5. {{- else }}
  6. kind: ClusterRole
  7. {{- end }}
  8. metadata:
  9. name: {{ include "external-secrets.fullname" . }}-controller
  10. {{- if and .Values.scopedNamespace .Values.scopedRBAC }}
  11. namespace: {{ .Values.scopedNamespace | quote }}
  12. {{- end }}
  13. labels:
  14. {{- include "external-secrets.labels" . | nindent 4 }}
  15. rules:
  16. - apiGroups:
  17. - "external-secrets.io"
  18. resources:
  19. - "secretstores"
  20. {{- if .Values.processClusterStore }}
  21. - "clustersecretstores"
  22. {{- end }}
  23. - "externalsecrets"
  24. {{- if .Values.processClusterExternalSecret }}
  25. - "clusterexternalsecrets"
  26. {{- end }}
  27. {{- if .Values.processPushSecret }}
  28. - "pushsecrets"
  29. {{- end }}
  30. {{- if .Values.processClusterPushSecret }}
  31. - "clusterpushsecrets"
  32. {{- end }}
  33. verbs:
  34. - "get"
  35. - "list"
  36. - "watch"
  37. - apiGroups:
  38. - "external-secrets.io"
  39. resources:
  40. - "externalsecrets"
  41. - "externalsecrets/status"
  42. {{- if .Values.openshiftFinalizers }}
  43. - "externalsecrets/finalizers"
  44. {{- end }}
  45. - "secretstores"
  46. - "secretstores/status"
  47. {{- if .Values.openshiftFinalizers }}
  48. - "secretstores/finalizers"
  49. {{- end }}
  50. {{- if .Values.processClusterStore }}
  51. - "clustersecretstores"
  52. - "clustersecretstores/status"
  53. {{- if .Values.openshiftFinalizers }}
  54. - "clustersecretstores/finalizers"
  55. {{- end }}
  56. {{- end }}
  57. {{- if .Values.processClusterExternalSecret }}
  58. - "clusterexternalsecrets"
  59. - "clusterexternalsecrets/status"
  60. {{- if .Values.openshiftFinalizers }}
  61. - "clusterexternalsecrets/finalizers"
  62. {{- end }}
  63. {{- end }}
  64. {{- if .Values.processPushSecret }}
  65. - "pushsecrets"
  66. - "pushsecrets/status"
  67. {{- if .Values.openshiftFinalizers }}
  68. - "pushsecrets/finalizers"
  69. {{- end }}
  70. {{- end }}
  71. {{- if .Values.processClusterPushSecret }}
  72. - "clusterpushsecrets"
  73. - "clusterpushsecrets/status"
  74. {{- if .Values.openshiftFinalizers }}
  75. - "clusterpushsecrets/finalizers"
  76. {{- end }}
  77. {{- end }}
  78. verbs:
  79. - "get"
  80. - "update"
  81. - "patch"
  82. - apiGroups:
  83. - "generators.external-secrets.io"
  84. resources:
  85. - "generatorstates"
  86. verbs:
  87. - "get"
  88. - "list"
  89. - "watch"
  90. - "create"
  91. - "update"
  92. - "patch"
  93. - "delete"
  94. - "deletecollection"
  95. - apiGroups:
  96. - "generators.external-secrets.io"
  97. resources:
  98. - "acraccesstokens"
  99. - "clustergenerators"
  100. - "ecrauthorizationtokens"
  101. - "fakes"
  102. - "gcraccesstokens"
  103. - "githubaccesstokens"
  104. - "quayaccesstokens"
  105. - "passwords"
  106. - "sshkeys"
  107. - "stssessiontokens"
  108. - "uuids"
  109. - "vaultdynamicsecrets"
  110. - "webhooks"
  111. - "grafanas"
  112. - "mfas"
  113. verbs:
  114. - "get"
  115. - "list"
  116. - "watch"
  117. - apiGroups:
  118. - ""
  119. resources:
  120. - "serviceaccounts"
  121. - "namespaces"
  122. verbs:
  123. - "get"
  124. - "list"
  125. - "watch"
  126. - apiGroups:
  127. - ""
  128. resources:
  129. - "configmaps"
  130. verbs:
  131. - "get"
  132. - "list"
  133. - "watch"
  134. - apiGroups:
  135. - ""
  136. resources:
  137. - "secrets"
  138. verbs:
  139. - "get"
  140. - "list"
  141. - "watch"
  142. - "create"
  143. - "update"
  144. - "delete"
  145. - "patch"
  146. - apiGroups:
  147. - ""
  148. resources:
  149. - "serviceaccounts/token"
  150. verbs:
  151. - "create"
  152. - apiGroups:
  153. - ""
  154. resources:
  155. - "events"
  156. verbs:
  157. - "create"
  158. - "patch"
  159. - apiGroups:
  160. - "external-secrets.io"
  161. resources:
  162. - "externalsecrets"
  163. verbs:
  164. - "create"
  165. - "update"
  166. - "delete"
  167. {{- if .Values.processPushSecret }}
  168. - apiGroups:
  169. - "external-secrets.io"
  170. resources:
  171. - "pushsecrets"
  172. verbs:
  173. - "create"
  174. - "update"
  175. - "delete"
  176. {{- end }}
  177. ---
  178. apiVersion: rbac.authorization.k8s.io/v1
  179. {{- if and .Values.scopedNamespace .Values.scopedRBAC }}
  180. kind: Role
  181. {{- else }}
  182. kind: ClusterRole
  183. {{- end }}
  184. metadata:
  185. name: {{ include "external-secrets.fullname" . }}-view
  186. {{- if and .Values.scopedNamespace .Values.scopedRBAC }}
  187. namespace: {{ .Values.scopedNamespace | quote }}
  188. {{- end }}
  189. labels:
  190. {{- include "external-secrets.labels" . | nindent 4 }}
  191. {{- if .Values.rbac.aggregateToView }}
  192. rbac.authorization.k8s.io/aggregate-to-view: "true"
  193. {{- end }}
  194. {{- if .Values.rbac.aggregateToEdit }}
  195. rbac.authorization.k8s.io/aggregate-to-edit: "true"
  196. {{- end }}
  197. rbac.authorization.k8s.io/aggregate-to-admin: "true"
  198. rules:
  199. - apiGroups:
  200. - "external-secrets.io"
  201. resources:
  202. - "externalsecrets"
  203. - "secretstores"
  204. {{- if .Values.processClusterStore }}
  205. - "clustersecretstores"
  206. {{- end }}
  207. {{- if .Values.processPushSecret }}
  208. - "pushsecrets"
  209. {{- end }}
  210. {{- if .Values.processClusterPushSecret }}
  211. - "clusterpushsecrets"
  212. {{- end }}
  213. verbs:
  214. - "get"
  215. - "watch"
  216. - "list"
  217. - apiGroups:
  218. - "generators.external-secrets.io"
  219. resources:
  220. - "acraccesstokens"
  221. - "clustergenerators"
  222. - "ecrauthorizationtokens"
  223. - "fakes"
  224. - "gcraccesstokens"
  225. - "githubaccesstokens"
  226. - "quayaccesstokens"
  227. - "passwords"
  228. - "sshkeys"
  229. - "vaultdynamicsecrets"
  230. - "webhooks"
  231. - "grafanas"
  232. - "generatorstates"
  233. - "mfas"
  234. - "uuids"
  235. verbs:
  236. - "get"
  237. - "watch"
  238. - "list"
  239. ---
  240. apiVersion: rbac.authorization.k8s.io/v1
  241. {{- if and .Values.scopedNamespace .Values.scopedRBAC }}
  242. kind: Role
  243. {{- else }}
  244. kind: ClusterRole
  245. {{- end }}
  246. metadata:
  247. name: {{ include "external-secrets.fullname" . }}-edit
  248. {{- if and .Values.scopedNamespace .Values.scopedRBAC }}
  249. namespace: {{ .Values.scopedNamespace | quote }}
  250. {{- end }}
  251. labels:
  252. {{- include "external-secrets.labels" . | nindent 4 }}
  253. {{- if .Values.rbac.aggregateToEdit }}
  254. rbac.authorization.k8s.io/aggregate-to-edit: "true"
  255. {{- end }}
  256. rbac.authorization.k8s.io/aggregate-to-admin: "true"
  257. rules:
  258. - apiGroups:
  259. - "external-secrets.io"
  260. resources:
  261. - "externalsecrets"
  262. - "secretstores"
  263. {{- if .Values.processClusterStore }}
  264. - "clustersecretstores"
  265. {{- end }}
  266. {{- if .Values.processPushSecret }}
  267. - "pushsecrets"
  268. {{- end }}
  269. {{- if .Values.processClusterPushSecret }}
  270. - "clusterpushsecrets"
  271. {{- end }}
  272. verbs:
  273. - "create"
  274. - "delete"
  275. - "deletecollection"
  276. - "patch"
  277. - "update"
  278. - apiGroups:
  279. - "generators.external-secrets.io"
  280. resources:
  281. - "acraccesstokens"
  282. - "clustergenerators"
  283. - "ecrauthorizationtokens"
  284. - "fakes"
  285. - "gcraccesstokens"
  286. - "githubaccesstokens"
  287. - "quayaccesstokens"
  288. - "passwords"
  289. - "sshkeys"
  290. - "vaultdynamicsecrets"
  291. - "webhooks"
  292. - "grafanas"
  293. - "generatorstates"
  294. - "mfas"
  295. - "uuids"
  296. verbs:
  297. - "create"
  298. - "delete"
  299. - "deletecollection"
  300. - "patch"
  301. - "update"
  302. ---
  303. apiVersion: rbac.authorization.k8s.io/v1
  304. {{- if and .Values.scopedNamespace .Values.scopedRBAC }}
  305. kind: RoleBinding
  306. {{- else }}
  307. kind: ClusterRoleBinding
  308. {{- end }}
  309. metadata:
  310. name: {{ include "external-secrets.fullname" . }}-controller
  311. {{- if and .Values.scopedNamespace .Values.scopedRBAC }}
  312. namespace: {{ .Values.scopedNamespace | quote }}
  313. {{- end }}
  314. labels:
  315. {{- include "external-secrets.labels" . | nindent 4 }}
  316. roleRef:
  317. apiGroup: rbac.authorization.k8s.io
  318. {{- if and .Values.scopedNamespace .Values.scopedRBAC }}
  319. kind: Role
  320. {{- else }}
  321. kind: ClusterRole
  322. {{- end }}
  323. name: {{ include "external-secrets.fullname" . }}-controller
  324. subjects:
  325. - name: {{ include "external-secrets.serviceAccountName" . }}
  326. namespace: {{ template "external-secrets.namespace" . }}
  327. kind: ServiceAccount
  328. ---
  329. apiVersion: rbac.authorization.k8s.io/v1
  330. kind: Role
  331. metadata:
  332. name: {{ include "external-secrets.fullname" . }}-leaderelection
  333. namespace: {{ template "external-secrets.namespace" . }}
  334. labels:
  335. {{- include "external-secrets.labels" . | nindent 4 }}
  336. rules:
  337. - apiGroups:
  338. - ""
  339. resources:
  340. - "configmaps"
  341. resourceNames:
  342. - "external-secrets-controller"
  343. verbs:
  344. - "get"
  345. - "update"
  346. - "patch"
  347. - apiGroups:
  348. - ""
  349. resources:
  350. - "configmaps"
  351. verbs:
  352. - "create"
  353. - apiGroups:
  354. - "coordination.k8s.io"
  355. resources:
  356. - "leases"
  357. verbs:
  358. - "get"
  359. - "create"
  360. - "update"
  361. - "patch"
  362. ---
  363. apiVersion: rbac.authorization.k8s.io/v1
  364. kind: RoleBinding
  365. metadata:
  366. name: {{ include "external-secrets.fullname" . }}-leaderelection
  367. namespace: {{ template "external-secrets.namespace" . }}
  368. labels:
  369. {{- include "external-secrets.labels" . | nindent 4 }}
  370. roleRef:
  371. apiGroup: rbac.authorization.k8s.io
  372. kind: Role
  373. name: {{ include "external-secrets.fullname" . }}-leaderelection
  374. subjects:
  375. - kind: ServiceAccount
  376. name: {{ include "external-secrets.serviceAccountName" . }}
  377. namespace: {{ template "external-secrets.namespace" . }}
  378. {{- if .Values.rbac.servicebindings.create }}
  379. ---
  380. apiVersion: rbac.authorization.k8s.io/v1
  381. kind: ClusterRole
  382. metadata:
  383. name: {{ include "external-secrets.fullname" . }}-servicebindings
  384. labels:
  385. servicebinding.io/controller: "true"
  386. {{- include "external-secrets.labels" . | nindent 4 }}
  387. rules:
  388. - apiGroups:
  389. - "external-secrets.io"
  390. resources:
  391. - "externalsecrets"
  392. {{- if .Values.processPushSecret }}
  393. - "pushsecrets"
  394. {{- end }}
  395. verbs:
  396. - "get"
  397. - "list"
  398. - "watch"
  399. {{- end }}
  400. {{- end }}