monedula-acl-rbac-converter
CLI, które zamienia ACL Apache Kafki na powiązania ról Confluent RBAC przez plan z sumą kontrolną i weryfikuje efektywny dostęp przed usunięciem ACL.
Ta strona została przetłumaczona maszynowo z języka angielskiego. Przeczytaj oryginał
monedula-gitops v0.1.0, AGPL-3.0
Opisz tematy, dostęp, limity, schematy, użytkowników SCRAM i Confluent RBAC jako YAML w Gicie. monedula-gitops porównuje ten opis z działającym klastrem, stosuje tylko to, co się zmieniło, i kończy zadanie CI błędem, gdy w klastrze pojawi się dryf. Te same manifesty działają z CLI i z operatora Kubernetesa.
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.
Konfiguracja Kafki rzadko znajduje się w jednym miejscu.
Tematy pochodzą z jednego skryptu, ACL z drugiego, schematy z pipeline'ów aplikacji, limity od administratora, a powiązania ról Confluent RBAC z jeszcze innego narzędzia. Z czasem system opisuje już tylko działający klaster, a tego opisu nikt nie przejrzał.
import cluster Zamień działający klaster w manifesty.
YAML + pull request Tematy, dostęp, limity, schematy, użytkownicy SCRAM i powiązania ról jako YAML w stylu Kubernetesa.
diff diff i apply --dry-run najpierw pokazują plan wobec działającego klastra.
apply Uruchamiane są tylko potrzebne operacje. Usuwanie nadmiarowych zasobów (prune) i ryzykowne zmiany czekają na jawne flagi.
verify verify kończy się kodem 1 przy dryfie, więc zaplanowane zadanie CI wyłapuje zmiany wprowadzone z pominięciem Gita.
Większość narzędzi do Kafki trzyma temat w jednym miejscu, a dostęp do niego w innym. monedula-gitops dołącza dostęp do samego tematu: wypisz producentów i konsumentów, a odpowiadające im ACL tematu i grupy konsumentów zostaną wygenerowane. Na klastrach z RBAC ten sam blok może kompilować się do powiązań ról Confluent MDS.
Gdy potrzebujesz wzorców z prefiksem, współdzielonych grup konsumentów lub ograniczeń hostów, masz do dyspozycji osobne zasoby KafkaAccessPolicy i KafkaRoleBinding.
KafkaTopic + KafkaUserKafkaTopic z blokiem accessimport cluster odczytuje tematy, ACL, limity, schematy oraz, tam, gdzie jest to obsługiwane, powiązania ról RBAC i zapisuje je jako manifesty. Ich weryfikacja wobec tego samego klastra nie zgłasza dryfu.
Jak zaimportować klaster (po angielsku)
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 KafkaUser deklaruje poświadczenie SCRAM, więc temat, dostęp do niego i principal, który z niego korzysta, są opisane razem w Gicie. CLI odczytuje hasło ze zmiennej środowiskowej lub z pliku; operator odczytuje je z obiektu Secret w Kubernetesie albo je generuje.
KafkaRoleBinding zarządza powiązaniami ról Confluent MDS obok ACL.
apiVersion: gitops.monedula.dev/v1alpha1
kind: KafkaUser
metadata:
name: svc-checkout
spec:
clusterRef: { name: prod }
password:
valueFrom: { env: SVC_CHECKOUT_PASSWORD } --dry-run pokazuje podgląd każdej zmiany. CLI nigdy nie usuwa tematu, użytkownika SCRAM ani limitu, który usuniesz z Gita. --prune usuwa tylko ACL i powiązania ról mieszczące się w uprawnieniu, które twoje manifesty wciąż deklarują, a ryzykowne zmiany, takie jak zwiększenie liczby partycji, obniżenie poziomu zgodności schematu czy usunięcie wartości limitu, czekają na --allow-destructive. W Kubernetesie polityka usuwania tematu decyduje, czy usunięcie zasobu usuwa też temat, a Delete wymaga dodatkowo adnotacji allow-delete.
Zabezpieczenia (po angielsku)
| 0 | Sukces albo brak dryfu dla verify |
|---|---|
| 1 | Wykryto dryf (verify) |
| 2 | Błąd walidacji, konfiguracji lub połączenia albo nieudana operacja |
| 3 | Zostały tylko operacje wymagające zgody: czekają na --allow-destructive |
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 Gotowe binaria dla Linuksa i macOS są na stronie wydań. Dalej: pierwsze kroki z CLI (po angielsku).
Możemy pomóc ci korzystać z monedula-gitops w dużym środowisku, od projektu po codzienną eksploatację.
PorozmawiajmyWięcej darmowych narzędzi dla Apache Kafki od tego samego zespołu. Czym jest Flock
CLI, które zamienia ACL Apache Kafki na powiązania ról Confluent RBAC przez plan z sumą kontrolną i weryfikuje efektywny dostęp przed usunięciem ACL.
Wtyczka Kafka MetricsReporter, która wysyła metryki brokera, JVM i klientów KIP-714 przez OTLP; przestój collectora nigdy nie blokuje Kafki.
CLI w Go tylko do odczytu, które zamienia prawdziwy klaster Kafki w link do Kafka Simulator, który można udostępnić, z serwerem MCP dla agentów AI.
Interaktywny, deterministyczny symulator Apache Kafki w przeglądarce: zepsuj klaster, przewiń oś czasu i przeczytaj, dlaczego zareagował.