rbac.yaml 5.4 KB

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