monedula-acl-rbac-converter
Eine CLI, die Apache-Kafka-ACLs über einen Plan mit Prüfsumme in Confluent-RBAC-Rollenbindungen umwandelt und vor dem Löschen den effektiven Zugriff prüft.
Diese Seite wurde maschinell aus dem Englischen übersetzt. Original lesen
monedula-gitops v0.1.0, AGPL-3.0
Beschreiben Sie Topics, Zugriff, Quotas, Schemas, SCRAM-Benutzer und Confluent RBAC als YAML in Git. monedula-gitops vergleicht das mit dem laufenden Cluster, wendet nur an, was sich geändert hat, und lässt CI fehlschlagen, wenn der Cluster driftet. Dieselben Manifeste laufen über eine CLI oder einen Kubernetes-Operator.
brew install monedula-dev/tap/monedula-gitops apiVersion: gitops.monedula.dev/v1alpha1
kind: KafkaTopic
metadata:
name: orders
spec:
clusterRef: { name: prod }
topicName: orders
partitions: 6
config:
retention.ms: "604800000"
access:
producers:
- principal: User:svc-checkout
consumers:
- principal: User:svc-fraud
group: fraud-orders monedula-gitops diff -f ./manifests --cluster-config-file ./cluster.yaml# preview: the topic, plus the ACLs its access block compiles tomonedula-gitops apply -f ./manifests --cluster-config-file ./cluster.yamlmonedula-gitops verify -f ./manifests --cluster-config-file ./cluster.yaml# exit 0: no drift. exit 1: drift, and the CI job fails.
Kafka-Konfiguration liegt selten an einem einzigen Ort.
Topics kommen aus einem Skript, ACLs aus einem anderen, Schemas aus Anwendungs-Pipelines, Quotas von der Administration und Confluent-RBAC-Rollenbindungen aus wieder einem anderen Werkzeug. Mit der Zeit beschreibt nur noch der laufende Cluster das System, und diese Beschreibung hat niemand geprüft.
import cluster Einen laufenden Cluster in Manifeste verwandeln.
YAML + Pull Request Topics, Zugriff, Quotas, Schemas, SCRAM-Benutzer und Rollenbindungen als YAML im Kubernetes-Stil.
diff diff und apply --dry-run zeigen zuerst den Plan gegenüber dem laufenden Cluster.
apply Nur die nötigen Operationen laufen. Pruning und riskante Änderungen warten auf explizite Flags.
verify verify endet bei Drift mit Exit-Code 1, sodass ein geplanter CI-Job Änderungen am Prozess vorbei erkennt.
Die meisten Kafka-Werkzeuge halten ein Topic an einem Ort und seinen Zugriff an einem anderen. monedula-gitops hängt den Zugriff an das Topic selbst: Producer und Consumer auflisten, und die passenden Topic- und Consumer-Group-ACLs werden erzeugt. Auf Clustern mit RBAC kann derselbe Block zu Confluent-MDS-Rollenbindungen kompiliert werden.
Für präfixierte Muster, gemeinsam genutzte Consumer Groups oder Host-Einschränkungen gibt es die eigenständigen Ressourcen KafkaAccessPolicy und KafkaRoleBinding.
KafkaTopic + KafkaUserKafkaTopic mit einem access-Blockimport cluster liest Topics, ACLs, Quotas, Schemas und, wo unterstützt, RBAC-Rollenbindungen und schreibt daraus Manifeste. Werden sie gegen denselben Cluster verifiziert, wird kein Drift gemeldet.
Einen Cluster importieren (auf Englisch)
monedula-gitops import cluster --cluster-config-file ./clusters/prod.yaml --output-dir ./imported
monedula-gitops verify -f ./imported -R --cluster-config-file ./clusters/prod.yaml # exits 0: no drift Ein KafkaUser deklariert ein SCRAM-Credential, sodass das Topic, sein Zugriff und der Principal, der es nutzt, gemeinsam in Git liegen. Die CLI liest das Passwort aus einer Umgebungsvariablen oder einer Datei; der Operator liest es aus einem Kubernetes Secret oder generiert eines.
KafkaRoleBinding verwaltet Confluent-MDS-Rollenbindungen neben den ACLs.
apiVersion: gitops.monedula.dev/v1alpha1
kind: KafkaUser
metadata:
name: svc-checkout
spec:
clusterRef: { name: prod }
password:
valueFrom: { env: SVC_CHECKOUT_PASSWORD } --dry-run zeigt jede Änderung vorab. Die CLI löscht nie Topics, SCRAM-Benutzer oder Quotas, die Sie aus Git entfernen. --prune löscht nur ACLs und Rollenbindungen, die unter eine Berechtigung fallen, die Ihre Manifeste noch deklarieren, und riskante Änderungen wie eine Erhöhung der Partitionszahl, eine niedrigere Schema-Kompatibilität oder ein entferntes Quota-Limit warten auf --allow-destructive. In Kubernetes entscheidet die Löschrichtlinie eines Topics, ob das Löschen der Ressource auch das Topic löscht, und Delete braucht zusätzlich die Annotation allow-delete.
Sicherheitsschranken (auf Englisch)
| 0 | Erfolg oder kein Drift bei verify |
|---|---|
| 1 | Drift erkannt (verify) |
| 2 | Validierungs-, Konfigurations- oder Verbindungsfehler oder eine fehlgeschlagene Operation |
| 3 | Nur noch abgesicherte Operationen übrig, die auf --allow-destructive warten |
brew install monedula-dev/tap/monedula-gitops go install github.com/monedula-dev/monedula-gitops/cmd/monedula-gitops@latest docker run --rm ghcr.io/monedula-dev/monedula-gitops:latest --help helm install monedula-gitops oci://ghcr.io/monedula-dev/charts/monedula-gitops Vorgebaute Binaries für Linux und macOS liegen auf der Releases-Seite. Weiter: Erste Schritte mit der CLI (auf Englisch).
Wir können Ihnen helfen, monedula-gitops in einer großen Umgebung einzusetzen, vom Design bis zum täglichen Betrieb.
Sprechen Sie uns anWeitere kostenlose Tools für Apache Kafka vom selben Team. Über Flock
Eine CLI, die Apache-Kafka-ACLs über einen Plan mit Prüfsumme in Confluent-RBAC-Rollenbindungen umwandelt und vor dem Löschen den effektiven Zugriff prüft.
Ein Kafka-MetricsReporter-Plugin, das Broker-, JVM- und KIP-714-Client-Metriken über OTLP liefert; ein Collector-Ausfall blockiert Kafka nie.
Eine nur lesende Go-CLI, die einen echten Kafka-Cluster in einen teilbaren Kafka-Simulator-Link verwandelt, mit MCP-Server für KI-Agenten.
Interaktiver, deterministischer Apache-Kafka-Simulator im Browser: einen Cluster kaputt machen, durch die Zeitleiste spulen und lesen, warum er reagierte.