2026-06-04 11:46:59 +03:00

46 lines
1.4 KiB
YAML

{{- if eq (include "nifi.useKubernetesStateManagement" .) "true" }}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: {{ include "nifi.fullname" . }}-state-management
namespace: {{ .Release.Namespace }}
labels:
{{- include "nifi.labels" . | nindent 4 }}
component: state-management
rules:
# Permissions for Kubernetes state management (ConfigMaps)
- apiGroups: [""]
resources: ["configmaps"]
verbs: ["get", "list", "create", "update", "patch", "delete"]
# Permissions for leader election (Leases)
- apiGroups: ["coordination.k8s.io"]
resources: ["leases"]
verbs: ["get", "list", "create", "update", "patch", "delete"]
# Permissions to read pods (for cluster membership)
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list", "watch"]
# Permissions for events (optional, for better observability)
- apiGroups: [""]
resources: ["events"]
verbs: ["create", "patch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: {{ include "nifi.fullname" . }}-state-management
namespace: {{ .Release.Namespace }}
labels:
{{- include "nifi.labels" . | nindent 4 }}
component: state-management
subjects:
- kind: ServiceAccount
name: {{ include "nifi.serviceAccountName" . }}
namespace: {{ .Release.Namespace }}
roleRef:
kind: Role
name: {{ include "nifi.fullname" . }}-state-management
apiGroup: rbac.authorization.k8s.io
{{- end }}