Privileged ServiceAccounts without rackAwarness enabled

Offen
#851 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Anfängerfreundlichkeit
72/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
kubernetes, rust
Bereich
backend, security

Rechercherichtung

Start with hdfs_clusterrolebinding_nodes_controller.rs, where HdfsCluster ServiceAccounts are added to hdfs-clusterrolebinding-nodes, and review the spec.clusterConfig.rackAwareness checks used around core_site.rs. Update the reflector to watch full HdfsCluster objects with DeserializeGuard so invalid clusters do not block reconciliation. The change is done when only rack-awareness-enabled clusters appear as subjects, while existing bindings and unrelated cluster reconciliation remain correct; run the repository's relevant Rust tests if present.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

type/bug
Affected Stackable version

25.7.0, 25.11.0, 26.3.0 and 26.7.0

Affected Apache HDFS version

all

Current and expected behavior

Current

hdfs-operator maintains a single ClusterRoleBinding hdfs-clusterrolebinding-nodes to the ClusterRole hdfs-clusterrole-nodes, which grants cluster-wide get/list/watch on pods, nodes and endpoints (plus listeners and CRDs). It exists for the rack awareness topology provider.

The operator adds the ServiceAccount of every HdfsCluster as a subject, whether or not rackAwareness is set. The topology provider is only configured when rackAwareness is set (core_site.rs), so clusters without it get these rights without using them.

Expected

A HdfsCluster's ServiceAccount is only a subject of hdfs-clusterrolebinding-nodes when that cluster sets rackAwareness.

Fix

In hdfs_clusterrolebinding_nodes_controller.rs, only add clusters with spec.clusterConfig.rackAwareness set. The reflector currently watches PartialObjectMeta (no spec), so it needs to watch full objects, using DeserializeGuard so one broken HdfsCluster doesn't block the binding for all of them.

Out of scope: the ServiceAccount is shared by all roles, but only the NameNode runs the topology provider.

Possible solution

No response

Additional context

No response

Environment

No response

Would you like to work on fixing this bug?

No response

Vorherrschende Sprache
Rust
Sterne
53
Forks
10
Ø Merge
21 Std. 32 Min.
Gemergte PRs (30 T.)
10

Entwicklungsumgebung

  • Kein Dockerfile und keine Docker-Compose-Datei
  • Hat eine Pull-Request-Vorlage
  • Kein Beitragsleitfaden

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus stackabletech/hdfs-operator

Alle Issues in stackabletech/hdfs-operator

Ähnliche Issues

Weitere Issues zu Rust

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.