rbac.yaml 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  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. - "clustersecretstores"
  21. - "externalsecrets"
  22. - "clusterexternalsecrets"
  23. verbs:
  24. - "get"
  25. - "list"
  26. - "watch"
  27. - apiGroups:
  28. - "external-secrets.io"
  29. resources:
  30. - "externalsecrets"
  31. - "externalsecrets/status"
  32. - "externalsecrets/finalizers"
  33. - "secretstores"
  34. - "secretstores/status"
  35. - "secretstores/finalizers"
  36. - "clustersecretstores"
  37. - "clustersecretstores/status"
  38. - "clustersecretstores/finalizers"
  39. - "clusterexternalsecrets"
  40. - "clusterexternalsecrets/status"
  41. - "clusterexternalsecrets/finalizers"
  42. verbs:
  43. - "update"
  44. - "patch"
  45. - apiGroups:
  46. - ""
  47. resources:
  48. - "serviceaccounts"
  49. - "namespaces"
  50. verbs:
  51. - "get"
  52. - "list"
  53. - "watch"
  54. - apiGroups:
  55. - ""
  56. resources:
  57. - "configmaps"
  58. verbs:
  59. - "get"
  60. - "list"
  61. - "watch"
  62. - apiGroups:
  63. - ""
  64. resources:
  65. - "secrets"
  66. verbs:
  67. - "get"
  68. - "list"
  69. - "watch"
  70. - "create"
  71. - "update"
  72. - "delete"
  73. - "patch"
  74. - apiGroups:
  75. - ""
  76. resources:
  77. - "serviceaccounts/token"
  78. verbs:
  79. - "create"
  80. - apiGroups:
  81. - ""
  82. resources:
  83. - "events"
  84. verbs:
  85. - "create"
  86. - "patch"
  87. - apiGroups:
  88. - "external-secrets.io"
  89. resources:
  90. - "externalsecrets"
  91. verbs:
  92. - "create"
  93. - "update"
  94. - "delete"
  95. ---
  96. apiVersion: rbac.authorization.k8s.io/v1
  97. {{- if and .Values.scopedNamespace .Values.scopedRBAC }}
  98. kind: Role
  99. {{- else }}
  100. kind: ClusterRole
  101. {{- end }}
  102. metadata:
  103. name: {{ include "external-secrets.fullname" . }}-view
  104. {{- if and .Values.scopedNamespace .Values.scopedRBAC }}
  105. namespace: {{ .Values.scopedNamespace | quote }}
  106. {{- end }}
  107. labels:
  108. {{- include "external-secrets.labels" . | nindent 4 }}
  109. rbac.authorization.k8s.io/aggregate-to-view: "true"
  110. rbac.authorization.k8s.io/aggregate-to-edit: "true"
  111. rbac.authorization.k8s.io/aggregate-to-admin: "true"
  112. rules:
  113. - apiGroups:
  114. - "external-secrets.io"
  115. resources:
  116. - "externalsecrets"
  117. - "secretstores"
  118. - "clustersecretstores"
  119. verbs:
  120. - "get"
  121. - "watch"
  122. - "list"
  123. ---
  124. apiVersion: rbac.authorization.k8s.io/v1
  125. {{- if and .Values.scopedNamespace .Values.scopedRBAC }}
  126. kind: Role
  127. {{- else }}
  128. kind: ClusterRole
  129. {{- end }}
  130. metadata:
  131. name: {{ include "external-secrets.fullname" . }}-edit
  132. {{- if and .Values.scopedNamespace .Values.scopedRBAC }}
  133. namespace: {{ .Values.scopedNamespace | quote }}
  134. {{- end }}
  135. labels:
  136. {{- include "external-secrets.labels" . | nindent 4 }}
  137. rbac.authorization.k8s.io/aggregate-to-edit: "true"
  138. rbac.authorization.k8s.io/aggregate-to-admin: "true"
  139. rules:
  140. - apiGroups:
  141. - "external-secrets.io"
  142. resources:
  143. - "externalsecrets"
  144. - "secretstores"
  145. - "clustersecretstores"
  146. verbs:
  147. - "create"
  148. - "delete"
  149. - "deletecollection"
  150. - "patch"
  151. - "update"
  152. ---
  153. apiVersion: rbac.authorization.k8s.io/v1
  154. {{- if and .Values.scopedNamespace .Values.scopedRBAC }}
  155. kind: RoleBinding
  156. {{- else }}
  157. kind: ClusterRoleBinding
  158. {{- end }}
  159. metadata:
  160. name: {{ include "external-secrets.fullname" . }}-controller
  161. {{- if and .Values.scopedNamespace .Values.scopedRBAC }}
  162. namespace: {{ .Values.scopedNamespace | quote }}
  163. {{- end }}
  164. labels:
  165. {{- include "external-secrets.labels" . | nindent 4 }}
  166. roleRef:
  167. apiGroup: rbac.authorization.k8s.io
  168. {{- if and .Values.scopedNamespace .Values.scopedRBAC }}
  169. kind: Role
  170. {{- else }}
  171. kind: ClusterRole
  172. {{- end }}
  173. name: {{ include "external-secrets.fullname" . }}-controller
  174. subjects:
  175. - name: {{ include "external-secrets.serviceAccountName" . }}
  176. namespace: {{ .Release.Namespace | quote }}
  177. kind: ServiceAccount
  178. ---
  179. apiVersion: rbac.authorization.k8s.io/v1
  180. kind: Role
  181. metadata:
  182. name: {{ include "external-secrets.fullname" . }}-leaderelection
  183. namespace: {{ .Release.Namespace | quote }}
  184. labels:
  185. {{- include "external-secrets.labels" . | nindent 4 }}
  186. rules:
  187. - apiGroups:
  188. - ""
  189. resources:
  190. - "configmaps"
  191. resourceNames:
  192. - "external-secrets-controller"
  193. verbs:
  194. - "get"
  195. - "update"
  196. - "patch"
  197. - apiGroups:
  198. - ""
  199. resources:
  200. - "configmaps"
  201. verbs:
  202. - "create"
  203. - apiGroups:
  204. - "coordination.k8s.io"
  205. resources:
  206. - "leases"
  207. verbs:
  208. - "get"
  209. - "create"
  210. - "update"
  211. - "patch"
  212. ---
  213. apiVersion: rbac.authorization.k8s.io/v1
  214. kind: RoleBinding
  215. metadata:
  216. name: {{ include "external-secrets.fullname" . }}-leaderelection
  217. namespace: {{ .Release.Namespace | quote }}
  218. labels:
  219. {{- include "external-secrets.labels" . | nindent 4 }}
  220. roleRef:
  221. apiGroup: rbac.authorization.k8s.io
  222. kind: Role
  223. name: {{ include "external-secrets.fullname" . }}-leaderelection
  224. subjects:
  225. - kind: ServiceAccount
  226. name: {{ include "external-secrets.serviceAccountName" . }}
  227. namespace: {{ .Release.Namespace | quote }}
  228. {{- end }}