Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
c65a16c
add shared crate with shared constants and client security enum
labrenbe Oct 13, 2026
41db2c7
add KafkaTopic CRD
labrenbe Oct 13, 2026
fe5203f
add necessary envs and volumes to agent pod
labrenbe Oct 14, 2026
9ba595d
reject zookeeper-mode when platformAccess is configured
labrenbe Oct 16, 2026
2c730ca
add config to agent: bootstrap servers from discovery cm, security mo…
labrenbe Oct 15, 2026
5463640
add stackable-kafka-adminto workspace dependencies
labrenbe Oct 16, 2026
6a8e1b9
Merge branch 'feat/kafka-admin' into feat/kafka-topic
labrenbe Oct 16, 2026
e7d4248
Merge branch 'feat/kafka-admin' into feat/kafka-topic
labrenbe Oct 16, 2026
c02eeb5
Merge branch 'feat/kafka-admin' into feat/kafka-topic
labrenbe Oct 16, 2026
559fb04
Merge branch 'feat/kafka-admin' into feat/kafka-topic
labrenbe Oct 16, 2026
248c918
Merge branch 'feat/kafka-admin' into feat/kafka-topic
labrenbe Oct 20, 2026
e61fcdb
add kafka controller
labrenbe Oct 21, 2026
ccf2fff
Merge branch 'feat/kafka-admin' into feat/kafka-topic
labrenbe Oct 21, 2026
81a49a1
wip: add kuttl tests
labrenbe Oct 23, 2026
ce1c926
Merge branch 'feat/kafka-admin' into feat/kafka-topic
labrenbe Oct 23, 2026
bdc7e9f
Merge branch 'feat/kafka-admin' into feat/kafka-topic
labrenbe Oct 26, 2026
f094a23
update the CRD to reflect operator-rs changes and the CRD decision
labrenbe Oct 26, 2026
d028aa2
rewrite the topic agent for the new KafkaTopic CRD
labrenbe Oct 26, 2026
bed3c7f
Merge branch 'feat/kafka-admin' into feat/kafka-topic
labrenbe Oct 27, 2026
4994c9f
Merge branch 'feat/kafka-admin' into feat/kafka-topic
labrenbe Oct 27, 2026
624bebd
add topic_controller to operator for cleaning up after agents
labrenbe Oct 27, 2026
6ae37ee
Merge branch 'feat/kafka-admin' into feat/kafka-topic
labrenbe Oct 27, 2026
ac90b9f
read bootstrap servers from KAFKA_BOOTSTRAP_SERVERS in the agent and …
labrenbe Oct 27, 2026
3fb16de
skip planning while the KafkaTopic reconciliation is paused
labrenbe Oct 27, 2026
b3e247d
watch only the KafkaTopics of the agent's cluster via a field selector
labrenbe Oct 27, 2026
6b93004
reject topic names starting with __ (internal topics)
labrenbe Oct 27, 2026
57b853b
fix topic name immutability validation
labrenbe Oct 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

80 changes: 69 additions & 11 deletions Cargo.nix

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ repository = "https://github.com/stackabletech/kafka-operator"

[workspace.dependencies]
stackable-operator = { git = "https://github.com/stackabletech/operator-rs.git", branch = "feat/platform-access", features = ["agent", "crds", "webhook"] }
stackable-kafka-admin = { path = "rust/kafka-admin" }
stackable-kafka-shared = { path = "rust/shared" }

anyhow = "1.0"
Expand All @@ -22,6 +23,7 @@ const_format = "0.2"
futures = "0.3"
indoc = "2.0"
kafka-protocol = { version = "0.18", default-features = false, features = ["broker", "client"] }
regex = "1.13"
rstest = "0.26"
rustls = { version = "0.23", default-features = false, features = ["logging", "ring", "std", "tls12"] }
semver = "1.0"
Expand Down
20 changes: 10 additions & 10 deletions crate-hashes.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions deploy/helm/kafka-operator/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,8 @@ annotations:
name: kafkaclusters.kafka.stackable.tech
displayName: KafkaCluster
description: A Kafka cluster stacklet. This resource is managed by the Stackable operator for Apache Kafka.
- kind: KafkaTopic
version: v1alpha1
name: kafkatopics.kafka.stackable.tech
displayName: KafkaTopic
description: A Kafka topic, created and updated by the agent of the referenced Kafka cluster.
24 changes: 24 additions & 0 deletions deploy/helm/kafka-operator/templates/clusterrole-agent.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,30 @@ metadata:
labels:
{{- include "kafka-operator.labels" . | nindent 4 }}
rules:
# KafkaTopics of the agent's cluster: watched, and their finalizer added and removed.
- apiGroups:
- {{ include "kafka-operator.name" . }}.stackable.tech
resources:
- kafkatopics
verbs:
- get
- list
- watch
- patch
- apiGroups:
- {{ include "kafka-operator.name" . }}.stackable.tech
resources:
- kafkatopics/status
verbs:
- patch
# Required to report reconciliation errors as events on the KafkaTopic objects.
- apiGroups:
- events.k8s.io
resources:
- events
verbs:
- create
- patch
{{ if .Capabilities.APIVersions.Has "security.openshift.io/v1" }}
# On OpenShift, the agent pod must be allowed to use the nonroot-v2 SCC
- apiGroups:
Expand Down
18 changes: 18 additions & 0 deletions deploy/helm/kafka-operator/templates/clusterrole-operator.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,24 @@ rules:
- {{ include "kafka-operator.name" . }}clusters/status
verbs:
- patch
# KafkaTopics: watched to take over while no agent is available, and their finalizer removed
# once the KafkaCluster is gone.
- apiGroups:
- {{ include "kafka-operator.name" . }}.stackable.tech
resources:
- kafkatopics
verbs:
- get
- list
- watch
- patch
# Status subresource: conditions set while the agent is unavailable.
- apiGroups:
- {{ include "kafka-operator.name" . }}.stackable.tech
resources:
- kafkatopics/status
verbs:
- patch
# Read authentication class configuration referenced in the KafkaCluster spec.
- apiGroups:
- authentication.stackable.tech
Expand Down
Loading
Loading