backstage-chart/templates/backstage-rbac.yaml
2026-01-14 15:09:56 +05:30

52 lines
1.5 KiB
YAML

{{- if .Values.rbac.create -}}
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: backstage-environment-manager
labels:
{{- include "backstage.labels" . | nindent 4 }}
rules:
# Namespace management for environment lifecycle
- apiGroups: [""]
resources: ["namespaces"]
verbs: ["get", "list", "watch", "delete"]
# Read access to environment resources for display
- apiGroups: [""]
resources: ["resourcequotas", "limitranges", "pods", "services"]
verbs: ["get", "list", "watch"]
- apiGroups: ["apps"]
resources: ["deployments", "replicasets"]
verbs: ["get", "list", "watch"]
- apiGroups: ["networking.k8s.io"]
resources: ["networkpolicies"]
verbs: ["get", "list", "watch"]
# ArgoCD Applications - for cleanup when deleting environments
- apiGroups: ["argoproj.io"]
resources: ["applications"]
verbs: ["get", "list", "watch", "delete"]
# Argo Workflows - for monitoring environment provisioning status
- apiGroups: ["argoproj.io"]
resources: ["workflows"]
verbs: ["get", "list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: backstage-environment-manager-binding
labels:
{{- include "backstage.labels" . | nindent 4 }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: backstage-environment-manager
subjects:
- kind: ServiceAccount
name: {{ include "backstage.serviceAccountName" . }}
namespace: {{ .Values.namespaceOverride }}
{{- end }}