monedula-acl-rbac-converter
CLI que converte ACLs do Apache Kafka em role bindings RBAC do Confluent via um plano com checksum e verifica o acesso efetivo antes de qualquer exclusão.
Esta página foi traduzida automaticamente do inglês. Ler o original
monedula-gitops v0.1.0, AGPL-3.0
Descreva tópicos, acesso, cotas, esquemas, usuários SCRAM e RBAC do Confluent como YAML no Git. O monedula-gitops compara tudo isso com o cluster em execução, aplica só o que mudou e faz a CI falhar quando há drift no cluster. Os mesmos manifestos rodam a partir de uma CLI ou de um operador de Kubernetes.
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.
A configuração do Kafka raramente fica em um só lugar.
Os tópicos vêm de um script, as ACLs de outro, os esquemas dos pipelines das aplicações, as cotas de um administrador e os role bindings RBAC do Confluent de mais uma ferramenta. Com o tempo, só o cluster em execução descreve o sistema, e ninguém revisou essa descrição.
import cluster Transforme um cluster em execução em manifestos.
YAML + pull request Tópicos, acesso, cotas, esquemas, usuários SCRAM e role bindings como YAML no estilo Kubernetes.
diff diff e apply --dry-run mostram antes o plano em relação ao cluster em execução.
apply Só as operações necessárias são executadas. O pruning e as mudanças arriscadas esperam flags explícitas.
verify verify sai com código 1 quando há drift, então um job agendado de CI detecta mudanças feitas fora do Git.
A maioria das ferramentas de Kafka mantém um tópico em um lugar e o acesso a ele em outro. O monedula-gitops associa o acesso ao próprio tópico: liste os produtores e os consumidores, e as ACLs correspondentes de tópico e de grupo de consumidores são geradas. Em clusters com RBAC, o mesmo bloco pode ser compilado em role bindings do Confluent MDS.
Quando você precisa de padrões com prefixo, grupos de consumidores compartilhados ou restrições de host, existem os recursos independentes KafkaAccessPolicy e KafkaRoleBinding.
KafkaTopic + KafkaUserKafkaTopic com um bloco accessimport cluster lê tópicos, ACLs, cotas, esquemas e, onde houver suporte, role bindings RBAC, e escreve manifestos. Verificá-los contra o mesmo cluster não aponta nenhum drift.
Como importar um cluster (em inglês)
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 Um KafkaUser declara uma credencial SCRAM, então o tópico, o acesso a ele e o principal que o usa ficam juntos no Git. A CLI lê a senha de uma variável de ambiente ou de um arquivo; o operador a lê de um Secret do Kubernetes, ou gera uma.
KafkaRoleBinding gerencia role bindings do Confluent MDS junto com as ACLs.
apiVersion: gitops.monedula.dev/v1alpha1
kind: KafkaUser
metadata:
name: svc-checkout
spec:
clusterRef: { name: prod }
password:
valueFrom: { env: SVC_CHECKOUT_PASSWORD } --dry-run pré-visualiza cada mudança. A CLI nunca exclui um tópico, usuário SCRAM ou cota que você remova do Git. --prune exclui apenas ACLs e role bindings que estejam dentro de uma permissão que seus manifestos ainda declaram, e mudanças arriscadas, como aumentar o número de partições, reduzir a compatibilidade de um esquema ou remover um limite de cota, esperam por --allow-destructive. No Kubernetes, a política de exclusão de um tópico decide se excluir o recurso também exclui o tópico, e Delete também exige a anotação allow-delete.
Travas de segurança (em inglês)
| 0 | Sucesso, ou nenhum drift para verify |
|---|---|
| 1 | Drift detectado (verify) |
| 2 | Erro de validação, de configuração ou de conectividade, ou uma operação que falhou |
| 3 | Restam apenas operações protegidas: elas aguardam --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 Binários pré-compilados para Linux e macOS estão na página de releases. Próximo passo: primeiros passos com a CLI (em inglês).
Podemos ajudar você a rodar o monedula-gitops em um ambiente grande, do design às operações do dia a dia.
Fale com a genteMais ferramentas gratuitas para Apache Kafka, da mesma equipe. Sobre o Flock
CLI que converte ACLs do Apache Kafka em role bindings RBAC do Confluent via um plano com checksum e verifica o acesso efetivo antes de qualquer exclusão.
Plugin MetricsReporter do Kafka que envia métricas de broker, JVM e clientes KIP-714 via OTLP; um collector fora do ar nunca trava o Kafka.
CLI em Go somente leitura que transforma um cluster Kafka real em um link compartilhável do Kafka Simulator, com um servidor MCP para agentes de IA.
Simulador de Apache Kafka interativo e determinístico no navegador: quebre um cluster, percorra a linha do tempo e leia por que ele reagiu.