Implementation

Service Account Admin


service-account-admin.tpl (view on GitHub) :

{{ $namespace := .Namespace }}
{{ range $i, $m := .Manifests }}
{{ if eq $m.kind "Deployment" }}
- op: set
  path: -1
  value:
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: {{ $m.metadata.name }}
      {{ if ne $namespace "" }}
      namespace: {{ $namespace }}
      {{ end }}
- op: set
  path: -1
  value:
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: {{ $m.metadata.name }}-cluster-admin
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: cluster-admin
    subjects:
    - kind: ServiceAccount
      name: {{ $m.metadata.name }}
      {{ if ne $namespace "" }}
      namespace: {{ $namespace }}
      {{ end }}
- op: set
  path: {{ $i }}.spec.template.spec.serviceAccountName
  value: {{ $m.metadata.name }}
{{ end }}
{{ end }}