Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
578d2c7
Add agent-binary as workspace member
labrenbe Sep 24, 2026
2a1fae0
deploy the agent if spec.platformAcces.enabled is configured
labrenbe Sep 24, 2026
f15777c
add agent image and cluster role to Helm chart
labrenbe Sep 24, 2026
ed51b0e
build a separate agent image
labrenbe Sep 24, 2026
f01e5ce
Merge remote-tracking branch 'origin/main' into feat/kafka-agent
labrenbe Sep 24, 2026
9507079
run ghs build for matrix of operator and agent
labrenbe Sep 24, 2026
177cfb1
move staged framework code to operator-rs
labrenbe Oct 1, 2026
7f6d5a1
fix issues identified by Claude
labrenbe Oct 2, 2026
e5f431b
add support for anonymous access via operator-rs
labrenbe Oct 6, 2026
18a4ff2
use versioned for platform access CRD fragments
labrenbe Oct 13, 2026
c26dc42
add kafka admin client managing topics, topic config and partition count
labrenbe Oct 16, 2026
87a5479
add support for list_partition_reassignments
labrenbe Oct 16, 2026
798619e
replace kafka_error with semantic error checks in the kafka admin client
labrenbe Oct 16, 2026
d0a7abb
remove is retryable checks for kafka errors
labrenbe Oct 16, 2026
95581f0
simplify kafka error handling
labrenbe Oct 16, 2026
69ed88e
add a flag for topic already exists errors
labrenbe Oct 20, 2026
773d3bd
use the recreate strategy for the agent deployment
labrenbe Oct 21, 2026
679a24a
ship agent binary in operator image
labrenbe Oct 21, 2026
0a9ce61
Merge remote-tracking branch 'origin/main' into feat/kafka-agent
labrenbe Oct 21, 2026
85716c9
cleanup & only watch deployments with agent labels
labrenbe Oct 21, 2026
8241cb3
Merge branch 'feat/kafka-agent' into feat/kafka-admin
labrenbe Oct 21, 2026
58e3393
use BrokerAddress in more places and remove awaiting_response
labrenbe Oct 21, 2026
198e800
fix flaky unit test
labrenbe Oct 21, 2026
668119f
return the created topic and all configs with their source from the k…
labrenbe Oct 23, 2026
146602d
set fsGroup on the agent pod so it can read secret-operator volumes
labrenbe Oct 23, 2026
dec1799
Merge branch 'feat/kafka-agent' into feat/kafka-admin
labrenbe Oct 23, 2026
60f0123
align CRD and validation with operator-rs and decision outcome
labrenbe Oct 23, 2026
1d68476
configure the agent's connection to Kafka via a shared contract crate
labrenbe Oct 23, 2026
75eb776
Merge branch 'feat/kafka-agent' into feat/kafka-admin
labrenbe Oct 23, 2026
87a290e
use AgentResourceNames from operator-rs
labrenbe Oct 26, 2026
b95fb0a
Merge branch 'feat/kafka-agent' into feat/kafka-admin
labrenbe Oct 26, 2026
469caf2
Merge branch 'main' into feat/kafka-agent
labrenbe Oct 26, 2026
61b1005
update operator-rs
labrenbe Oct 27, 2026
e0e76ed
Merge branch 'feat/kafka-agent' into feat/kafka-admin
labrenbe Oct 27, 2026
66bf00b
replace hard-coded selectors on agent deployment with util from opera…
labrenbe Oct 27, 2026
51e863a
Merge branch 'feat/kafka-agent' into feat/kafka-admin
labrenbe Oct 27, 2026
14f9ee8
use headless service to connect to bootstrap servers
labrenbe Oct 27, 2026
cbde956
rename cb_agent to container_builder_agent
labrenbe Oct 27, 2026
e5e54fd
add deref tests for new constants
labrenbe Oct 27, 2026
9549489
Merge branch 'feat/kafka-agent' into feat/kafka-admin
labrenbe Oct 27, 2026
42d02bf
regenerate-nix
labrenbe Oct 27, 2026
e7d2299
Merge branch 'feat/kafka-agent' into feat/kafka-admin
labrenbe Oct 27, 2026
150886f
return only topic-level config and no source
labrenbe Oct 27, 2026
56b9894
document source of magic kafka numbers
labrenbe Oct 27, 2026
1aee2b0
use ApiKey enum
labrenbe Oct 27, 2026
bdda9d0
bump operator-rs
labrenbe Oct 28, 2026
b435ce4
Merge branch 'feat/kafka-agent' into feat/kafka-admin
labrenbe Oct 28, 2026
a89b5db
regenerate nix
labrenbe Oct 28, 2026
2f23562
Merge branch 'feat/kafka-agent' into feat/kafka-admin
labrenbe Oct 28, 2026
43657d4
regenerate nix
labrenbe Oct 28, 2026
cb10888
Merge branch 'feat/kafka-agent' into feat/kafka-admin
labrenbe Oct 28, 2026
a326d59
retry broken connection requests immediatly with a new connection
labrenbe Oct 28, 2026
f579456
update operator-rs
labrenbe Oct 29, 2026
048ff91
Merge branch 'feat/kafka-agent' into feat/kafka-admin
labrenbe Oct 29, 2026
28efc85
improve broker address Display impl
labrenbe Oct 29, 2026
82f8950
build the tls config once instead of per-server
labrenbe Oct 29, 2026
1937b53
keep the connection if only the version check fails
labrenbe Oct 29, 2026
b00fe65
rename helpers and doc comments to be more descriptive
labrenbe Oct 29, 2026
8b7c86d
Merge remote-tracking branch 'origin/main' into feat/kafka-agent
labrenbe Oct 30, 2026
8ec0341
Merge branch 'feat/kafka-agent' into feat/kafka-admin
labrenbe Oct 30, 2026
78c0344
Merge remote-tracking branch 'origin/main' into feat/kafka-agent
labrenbe Nov 3, 2026
cc89f97
use stackable-operator 0.122.0
labrenbe Nov 3, 2026
f14c358
Merge branch 'feat/kafka-agent' into feat/kafka-admin
labrenbe Nov 3, 2026
efb02c4
add readiness and liveness probes
labrenbe Nov 3, 2026
6735148
Merge branch 'feat/kafka-agent' into feat/kafka-admin
labrenbe Nov 3, 2026
b4111e0
fix Cargo.toml
labrenbe Nov 3, 2026
d5eeca9
Try every address of a bootstrap server when connecting
labrenbe Nov 4, 2026
187fe58
Skip connecting for 30 s after all bootstrap servers failed
labrenbe Nov 4, 2026
132bde5
Merge remote-tracking branch 'origin/main' into feat/kafka-agent
labrenbe Nov 5, 2026
53c0e8a
Merge branch 'feat/kafka-agent' into feat/kafka-admin
labrenbe Nov 5, 2026
f8fe3c8
Start the connect cooldown only after a slow failure
labrenbe Nov 5, 2026
e60b478
update serde-saphyr to 2.1.1. 2.1.0 was yanked
labrenbe Nov 6, 2026
0bb764a
Merge branch 'feat/kafka-agent' into feat/kafka-admin
labrenbe Nov 6, 2026
bd546d8
Merge remote-tracking branch 'origin/main' into feat/kafka-admin
labrenbe Nov 6, 2026
30d5a5a
address feedback on PR
labrenbe Nov 6, 2026
108b7c6
fix prek
labrenbe Nov 6, 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
55 changes: 55 additions & 0 deletions Cargo.lock

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

179 changes: 178 additions & 1 deletion Cargo.nix

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

8 changes: 7 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[workspace]
members = ["rust/operator-binary", "rust/agent-binary", "rust/shared"]
members = ["rust/operator-binary", "rust/agent-binary", "rust/kafka-admin", "rust/shared"]
resolver = "2"

[workspace.package]
Expand All @@ -15,18 +15,24 @@ stackable-kafka-shared = { path = "rust/shared" }

anyhow = "1.0"
axum = "0.8"
base64 = "0.22"
built = { version = "0.8", features = ["chrono", "git2"] }
bytes = "1.12"
clap = "4.6"
const_format = "0.2"
futures = "0.3"
indoc = "2.0"
kafka-protocol = { version = "0.18", default-features = false, features = ["broker", "client"] }
Comment thread
adwk67 marked this conversation as resolved.
Resolved
rstest = "0.28"
rustls = { version = "0.23", default-features = false, features = ["logging", "ring", "std", "tls12"] }
Comment thread
labrenbe marked this conversation as resolved.
Resolved
semver = "1.0"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
snafu = "0.9"
strum = { version = "0.28", features = ["derive"] }
tokio = { version = "1.54", features = ["full"] }
tokio-rustls = { version = "0.26", default-features = false, features = ["logging", "ring", "tls12"] }
tokio-util = { version = "0.7", features = ["codec"] }
tracing = "0.1"

[patch."https://github.com/stackabletech/operator-rs.git"]
Expand Down
25 changes: 25 additions & 0 deletions rust/kafka-admin/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
[package]
name = "stackable-kafka-admin"
description = "Kafka admin client of the Stackable agent for Apache Kafka"
version.workspace = true
authors.workspace = true
license.workspace = true
edition.workspace = true
repository.workspace = true
publish = false

[dependencies]
anyhow.workspace = true
base64.workspace = true
bytes.workspace = true
futures.workspace = true
kafka-protocol.workspace = true
rustls.workspace = true
snafu.workspace = true
tokio.workspace = true
tokio-rustls.workspace = true
tokio-util.workspace = true

[dev-dependencies]
rstest.workspace = true
tokio = { workspace = true, features = ["test-util"] }
Loading
Loading