Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file.

## [Unreleased]

### Changed

- Helm deployed RBAC permissions documented, with unnecessary permissions removed ([#770]).

[#770]: https://github.com/stackabletech/hdfs-operator/pull/770

## [26.3.0] - 2026-03-16

## [26.3.0-rc1] - 2026-03-16
Expand Down
18 changes: 9 additions & 9 deletions Cargo.nix

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

18 changes: 9 additions & 9 deletions crate-hashes.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -6,74 +6,63 @@ metadata:
labels:
{{- include "operator.labels" . | nindent 4 }}
rules:
- apiGroups:
- ""
resources:
- nodes
verbs:
- list
- watch
- get
# For automatic cluster domain detection
# For automatic cluster domain detection (reads kubelet config via the nodes/proxy API).
- apiGroups:
- ""
resources:
- nodes/proxy
verbs:
- get
# Manage core workload resources created per HdfsCluster.
# All resources are applied via Server-Side Apply (create + patch) and tracked for
# orphan cleanup (list + delete).
- apiGroups:
- ""
resources:
- pods
- configmaps
- secrets
- services
- endpoints
- serviceaccounts
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
# serviceaccounts are applied via SSA and tracked for orphan cleanup.
- apiGroups:
- rbac.authorization.k8s.io
- ""
resources:
- rolebindings
- serviceaccounts
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
# rolebindings are applied via SSA and tracked for orphan cleanup.
- apiGroups:
- apps
- rbac.authorization.k8s.io
resources:
- statefulsets
- rolebindings
verbs:
- get
- create
- delete
- get
- list
- patch
- update
- watch
# statefulsets are applied via SSA, tracked for orphan cleanup.
- apiGroups:
- batch
- apps
resources:
- jobs
- statefulsets
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
# poddisruptionbudgets are applied via SSA and tracked for orphan cleanup.
- apiGroups:
- policy
resources:
Expand All @@ -84,72 +73,67 @@ rules:
- get
- list
- patch
- update
- watch
# Required for maintaining the CRDs within the operator (including the conversion webhook info).
# Also for the startup condition check before the controller can run.
- apiGroups:
- apiextensions.k8s.io
resources:
- customresourcedefinitions
verbs:
- get
# Required to maintain the CRD. The operator needs to do this, as it needs to enter e.g. it's
# generated certificate in the conversion webhook.
{{- if .Values.maintenance.customResourceDefinitions.maintain }}
- create
- patch
{{- end }}
# Required for startup condition
- list
- watch
{{- end }}
# Required to report reconciliation results and warnings back to the HdfsCluster object.
- apiGroups:
- events.k8s.io
resources:
- events
verbs:
- create
- patch
# Read listener addresses to build the discovery ConfigMap for downstream clients.
# Listeners are managed by the listener-operator; this operator only reads them.
- apiGroups:
- listeners.stackable.tech
resources:
- listeners
verbs:
- get
- list
- apiGroups:
- ""
resources:
- endpoints
verbs:
- get
- list
# Watch HdfsClusters for reconciliation
- apiGroups:
- {{ include "operator.name" . }}.stackable.tech
resources:
- {{ include "operator.name" . }}clusters
verbs:
- get
- list
- patch
- watch
# Status subresource: updated at the end of every reconciliation.
- apiGroups:
- {{ include "operator.name" . }}.stackable.tech
resources:
- {{ include "operator.name" . }}clusters/status
verbs:
- patch
# Manage the hdfs-clusterrolebinding-nodes ClusterRoleBinding via Server-Side Apply.
# This binding grants the HDFS product pods (topology provider) access to node and pod
# information for rack awareness. Scoped to the specific ClusterRoleBinding by name.
- apiGroups:
- rbac.authorization.k8s.io
resources:
- clusterrolebindings
resourceNames:
- {{ include "operator.name" . }}-clusterrolebinding-nodes
verbs:
- patch
- get
- update
- list
- watch
- create
- patch
# Allow binding the product ClusterRole when creating per-cluster RoleBindings.
- apiGroups:
- rbac.authorization.k8s.io
resources:
Expand All @@ -158,76 +142,3 @@ rules:
- bind
resourceNames:
- {{ include "operator.name" . }}-clusterrole
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ include "operator.name" . }}-clusterrole
labels:
{{- include "operator.labels" . | nindent 4 }}
rules:
- apiGroups:
- ""
resources:
- configmaps
- secrets
- serviceaccounts
- pods
verbs:
- get
- apiGroups:
- ""
resources:
- pods
verbs:
- list
- apiGroups:
- events.k8s.io
resources:
- events
verbs:
- create
- patch
{{ if .Capabilities.APIVersions.Has "security.openshift.io/v1" }}
- apiGroups:
- security.openshift.io
resources:
- securitycontextconstraints
resourceNames:
- nonroot-v2
verbs:
- use
{{ end }}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ include "operator.name" . }}-clusterrole-nodes
labels:
{{- include "operator.labels" . | nindent 4 }}
rules:
- apiGroups:
- ""
resources:
- pods
- nodes
- endpoints
verbs:
- get
- list
# needed for pod informer
- watch
- apiGroups:
- listeners.stackable.tech
resources:
- listeners
verbs:
- get
- list
# needed to query the crd version (v1alpha1 etc.) before fetching listeners
- apiGroups:
- apiextensions.k8s.io
resources:
- customresourcedefinitions
verbs:
- get
Loading
Loading