80 lines
2.2 KiB
YAML
80 lines
2.2 KiB
YAML
{{- if .Values.backend.enabled -}}
|
|
apiVersion: v1
|
|
kind: ServiceAccount
|
|
metadata:
|
|
name: tower
|
|
labels:
|
|
{{- include "tower.labels" . | nindent 4 }}
|
|
---
|
|
# Tower needs cluster-wide read on Nodes + node metrics for the
|
|
# capacity-bar feature; namespace get/list/create so it can ensure
|
|
# the tenants ns exists before ArgoCD creates instance resources;
|
|
# argoproj.io CRD CRUD so it can create + delete Applications.
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRole
|
|
metadata:
|
|
name: {{ .Release.Name }}-tower
|
|
labels:
|
|
{{- include "tower.labels" . | nindent 4 }}
|
|
rules:
|
|
- apiGroups: ['argoproj.io']
|
|
resources: ['applications', 'appprojects']
|
|
verbs: ['get', 'list', 'create', 'update', 'patch', 'delete']
|
|
- apiGroups: ['']
|
|
resources: ['namespaces']
|
|
verbs: ['get', 'list', 'create']
|
|
- apiGroups: ['']
|
|
resources: ['nodes']
|
|
verbs: ['get', 'list']
|
|
- apiGroups: ['metrics.k8s.io']
|
|
resources: ['nodes']
|
|
verbs: ['get', 'list']
|
|
# Read ArgoCD's cluster Secrets (the registered customer-cluster
|
|
# creds) so Tower can build cross-cluster API clients for capacity
|
|
# queries. Scoped to a single Role+RoleBinding in the argocd ns —
|
|
# cluster-scoped Secret access would be over-broad.
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: Role
|
|
metadata:
|
|
name: {{ .Release.Name }}-tower-cluster-secrets
|
|
namespace: argocd
|
|
labels:
|
|
{{- include "tower.labels" . | nindent 4 }}
|
|
rules:
|
|
- apiGroups: ['']
|
|
resources: ['secrets']
|
|
verbs: ['get', 'list']
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: RoleBinding
|
|
metadata:
|
|
name: {{ .Release.Name }}-tower-cluster-secrets
|
|
namespace: argocd
|
|
labels:
|
|
{{- include "tower.labels" . | nindent 4 }}
|
|
subjects:
|
|
- kind: ServiceAccount
|
|
name: tower
|
|
namespace: {{ .Release.Namespace }}
|
|
roleRef:
|
|
kind: Role
|
|
name: {{ .Release.Name }}-tower-cluster-secrets
|
|
apiGroup: rbac.authorization.k8s.io
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRoleBinding
|
|
metadata:
|
|
name: {{ .Release.Name }}-tower
|
|
labels:
|
|
{{- include "tower.labels" . | nindent 4 }}
|
|
subjects:
|
|
- kind: ServiceAccount
|
|
name: tower
|
|
namespace: {{ .Release.Namespace }}
|
|
roleRef:
|
|
kind: ClusterRole
|
|
name: {{ .Release.Name }}-tower
|
|
apiGroup: rbac.authorization.k8s.io
|
|
{{- end }}
|