rbac.yaml 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  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. ---
  95. apiVersion: rbac.authorization.k8s.io/v1
  96. {{- if and .Values.scopedNamespace .Values.scopedRBAC }}
  97. kind: Role
  98. {{- else }}
  99. kind: ClusterRole
  100. {{- end }}
  101. metadata:
  102. name: {{ include "external-secrets.fullname" . }}-view
  103. {{- if and .Values.scopedNamespace .Values.scopedRBAC }}
  104. namespace: {{ .Values.scopedNamespace | quote }}
  105. {{- end }}
  106. labels:
  107. {{- include "external-secrets.labels" . | nindent 4 }}
  108. rbac.authorization.k8s.io/aggregate-to-view: "true"
  109. rbac.authorization.k8s.io/aggregate-to-edit: "true"
  110. rbac.authorization.k8s.io/aggregate-to-admin: "true"
  111. rules:
  112. - apiGroups:
  113. - "external-secrets.io"
  114. resources:
  115. - "externalsecrets"
  116. - "secretstores"
  117. - "clustersecretstores"
  118. verbs:
  119. - "get"
  120. - "watch"
  121. - "list"
  122. ---
  123. apiVersion: rbac.authorization.k8s.io/v1
  124. {{- if and .Values.scopedNamespace .Values.scopedRBAC }}
  125. kind: Role
  126. {{- else }}
  127. kind: ClusterRole
  128. {{- end }}
  129. metadata:
  130. name: {{ include "external-secrets.fullname" . }}-edit
  131. {{- if and .Values.scopedNamespace .Values.scopedRBAC }}
  132. namespace: {{ .Values.scopedNamespace | quote }}
  133. {{- end }}
  134. labels:
  135. {{- include "external-secrets.labels" . | nindent 4 }}
  136. rbac.authorization.k8s.io/aggregate-to-edit: "true"
  137. rbac.authorization.k8s.io/aggregate-to-admin: "true"
  138. rules:
  139. - apiGroups:
  140. - "external-secrets.io"
  141. resources:
  142. - "externalsecrets"
  143. - "secretstores"
  144. - "clustersecretstores"
  145. verbs:
  146. - "create"
  147. - "delete"
  148. - "deletecollection"
  149. - "patch"
  150. - "update"
  151. ---
  152. apiVersion: rbac.authorization.k8s.io/v1
  153. {{- if and .Values.scopedNamespace .Values.scopedRBAC }}
  154. kind: RoleBinding
  155. {{- else }}
  156. kind: ClusterRoleBinding
  157. {{- end }}
  158. metadata:
  159. name: {{ include "external-secrets.fullname" . }}-controller
  160. {{- if and .Values.scopedNamespace .Values.scopedRBAC }}
  161. namespace: {{ .Values.scopedNamespace | quote }}
  162. {{- end }}
  163. labels:
  164. {{- include "external-secrets.labels" . | nindent 4 }}
  165. roleRef:
  166. apiGroup: rbac.authorization.k8s.io
  167. {{- if and .Values.scopedNamespace .Values.scopedRBAC }}
  168. kind: Role
  169. {{- else }}
  170. kind: ClusterRole
  171. {{- end }}
  172. name: {{ include "external-secrets.fullname" . }}-controller
  173. subjects:
  174. - name: {{ include "external-secrets.serviceAccountName" . }}
  175. namespace: {{ .Release.Namespace | quote }}
  176. kind: ServiceAccount
  177. ---
  178. apiVersion: rbac.authorization.k8s.io/v1
  179. kind: Role
  180. metadata:
  181. name: {{ include "external-secrets.fullname" . }}-leaderelection
  182. namespace: {{ .Release.Namespace | quote }}
  183. labels:
  184. {{- include "external-secrets.labels" . | nindent 4 }}
  185. rules:
  186. - apiGroups:
  187. - ""
  188. resources:
  189. - "configmaps"
  190. resourceNames:
  191. - "external-secrets-controller"
  192. verbs:
  193. - "get"
  194. - "update"
  195. - "patch"
  196. - apiGroups:
  197. - ""
  198. resources:
  199. - "configmaps"
  200. verbs:
  201. - "create"
  202. - apiGroups:
  203. - "coordination.k8s.io"
  204. resources:
  205. - "leases"
  206. verbs:
  207. - "get"
  208. - "create"
  209. - "update"
  210. - "patch"
  211. ---
  212. apiVersion: rbac.authorization.k8s.io/v1
  213. kind: RoleBinding
  214. metadata:
  215. name: {{ include "external-secrets.fullname" . }}-leaderelection
  216. namespace: {{ .Release.Namespace | quote }}
  217. labels:
  218. {{- include "external-secrets.labels" . | nindent 4 }}
  219. roleRef:
  220. apiGroup: rbac.authorization.k8s.io
  221. kind: Role
  222. name: {{ include "external-secrets.fullname" . }}-leaderelection
  223. subjects:
  224. - kind: ServiceAccount
  225. name: {{ include "external-secrets.serviceAccountName" . }}
  226. namespace: {{ .Release.Namespace | quote }}
  227. {{- end }}