rbac.yaml 5.7 KB

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