Fra Nais-plattformen · Bygd for gjenbruk
kafkarator
En Kafka‑topic er en fil i repoet ditt.
Kafkarator gjør Kafka-byråkratiet om til én ressurs teamet ditt eier — slutt på saker til plattformteamet, admin-paneler og ACL-forespørsler. Du beskriver topicen i YAML, og operatoren oppretter den på Aiven og setter opp tilgangene. Tilgangslisten bor i samme fil som topicen: en pull request er hele prosessen.
Før — saksgangen
- Opprett sak til plattformteamet
- Vent på at topicen blir satt opp
- Be om ACL for konsumenten
- Be om ACL for produsenten
- Få tilsendt sertifikat og nøkkel
- Roter dem før de utløper
Etter — én fil
apiVersion: kafka.nais.io/v1
kind: Topic
metadata:
name: min-topic
namespace: mitt-team
spec:
pool: nav-dev
config:
partitions: 3
replication: 2
acl:
- access: readwrite
application: min-app
team: mitt-team
- access: read
application: konsument
team: annet-teamTilgangslisten bor i samme fil som topicen.
Slik virker det
Kafkarator definerer én egen ressurstype, kafka.nais.io/Topic. Når du oppretter eller endrer den, oversetter operatoren den til topics og ACL-oppføringer på Aiven-hostet Kafka.
Steg 1
Beskriv topicen
Legg en
Topic-ressurs i clusteret med antallpartitions,replicationog enacl-liste. Hver oppføring peker på enapplicationog etteam, medaccesslik read, write eller readwrite.Steg 2
Operatoren synkroniserer
Kafkarator oppdager ressursen og oppretter topicen og ACL-oppføringene i Aiven-poolen du oppga. Endrer du filen, følger Aiven etter — synkroniseringen er automatisk.
Steg 3
Appene kobler seg på
Hver
applicationi lista får tilgang gjennom en Kubernetes-secret med TLS-legitimasjon i sitt eget namespace. Ingen sertifikater sendes på e-post, ingen tilgang gis utenfor filen.
Det applikasjonen får
En app med Kafka aktivert leser alt den trenger fra en secret som plattformen legger i namespacet. Ingen tilkoblingsstreng limes inn for hånd. Variablene under er dokumentert i Nais Kafka-dokumentasjonen.
- KAFKA_BROKERS
- Kommaseparert liste av HOST:PORT-par til Kafka-brokerne
- KAFKA_CERTIFICATE
- Klientsertifikat for å koble til brokerne (som streng;
KAFKA_CERTIFICATE_PATHgir samme som fil) - KAFKA_PRIVATE_KEY
- Privat nøkkel til klientsertifikatet (som streng;
KAFKA_PRIVATE_KEY_PATHsom fil) - KAFKA_CA
- CA-sertifikatet som validerer brokerne (som streng;
KAFKA_CA_PATHsom fil) - KAFKA_CREDSTORE_PASSWORD
- Passordet som låser opp keystore og truststore
- KAFKA_KEYSTORE_PATH · KAFKA_TRUSTSTORE_PATH
- PKCS#12-keystore og JKS-truststore for Java-klienter
- KAFKA_SCHEMA_REGISTRY
- URL til schema registry (med egne
_USER- og_PASSWORD-variabler) - AIVEN_SECRET_UPDATED
- Tidsstempel for når legitimasjonen sist ble skrevet
Kom i gang
Deploy operatoren med Helm-charten i repoet, og opprett din første topic. Alt annet er en pull request.
# 1 · installer operatoren i clusteret
helm install kafkarator charts/kafkarator
# 2 · opprett topicen (og tilgangene) fra filen
kubectl apply -f topic.yamlTa den i bruk i din virksomhet
Kafkarator er ikke bundet til Nav. Vær ærlig om forutsetningen: den er bygd for Aiven-hostet Kafka, ikke for selvdrevne Kafka-clustre.
Det du trenger
- Et Kubernetes-cluster der operatoren og applikasjonene dine kjører
- En Aiven-konto med minst én Kafka-tjeneste (
pooli ressursen peker på denne) - En YAML-fil per topic — det er hele grensesnittet
Det du kan forvente
MIT-lisensiert og fritt å bruke. Vi lover ingen support-SLA, men issues og pull requests er velkomne — koden driftes daglig i Nav, så den blir vedlikeholdt uansett.
Er du ikke på Aiven, passer ikke kafkarator direkte. Da er den likevel et konkret forbilde for hvordan selvbetjening av topics kan se ut.
Klar for enhver norsk etat på Aiven