Skip to content

Add examples of managing strimzi-kafka using argocd#6

Open
kornys wants to merge 2 commits into
mainfrom
argocd-kafka-examples
Open

Add examples of managing strimzi-kafka using argocd#6
kornys wants to merge 2 commits into
mainfrom
argocd-kafka-examples

Conversation

@kornys
Copy link
Copy Markdown
Member

@kornys kornys commented May 13, 2026

No description provided.

Signed-off-by: David Kornel <kornys@outlook.com>
@kornys kornys force-pushed the argocd-kafka-examples branch from 227d6fa to f2e1901 Compare May 14, 2026 13:33
Signed-off-by: David Kornel <kornys@outlook.com>
@kornys kornys moved this from Backlog to In progress in StreamsHub Planning May 14, 2026
@kornys kornys marked this pull request as ready for review May 14, 2026 14:16
Copy link
Copy Markdown
Collaborator

@alexcreasy alexcreasy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is too big for me to fully review in one go, I haven't tried to run it. Reading the docs you've written I think this has great utility as a maximal example of what's possible for a full production grade ecosystem, I think we should use it and separately look at some more tightly focussed and simplified tutorials that really sell people on the concept of GitOps.

@Frawless Frawless self-requested a review May 18, 2026 13:40
The only manual step is installing ArgoCD itself.
After that, every operator and every Kafka scenario is deployed by applying a single YAML file — the ArgoCD Application.

1. **Install ArgoCD** (manual, one-time) — `kubectl apply -k`
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
1. **Install ArgoCD** (manual, one-time) — `kubectl apply -k`
1. **Install ArgoCD** (manual, one-time) — `kubectl apply -k <PATH_TO_OVERLAY>`

is probably right command?

Comment on lines +26 to +27
2. **Deploy operators** — one `kubectl apply -f application.yaml` per operator (Strimzi, Keycloak, ESO)
3. **Deploy scenarios** — one `kubectl apply -f application.yaml` per scenario (basic-kafka, kafka-mirror, kafka-oauth)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the paths are just examples? Because the app files are in specific dirs and it is not clear from the procedure that user has to cd to the dirs before


```bash
# OpenShift with Streams for Apache Kafka + RHBK
kubectl apply -f examples/app-of-apps/overlays/openshift/applicationset.yaml
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am thinking about having it as kustomize resource as well if we have overlays here. It is a little bit confusing form my POV

source:
repoURL: https://charts.external-secrets.io
chart: external-secrets
targetRevision: 0.17.0
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is a version 2.5.0, maybe we should use it?

project: streamshub
source:
repoURL: https://github.com/streamshub/streamshub-gitops.git
# TODO: switch back to HEAD before merge
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a reminder


These manifests use `kafka.strimzi.io/v1` CRDs and work with both:
- **Strimzi** 1.0.0+ (community)
- **Streams for Apache Kafka** 3.2+ (IBM/Red Hat)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- **Streams for Apache Kafka** 3.2+ (IBM/Red Hat)
- **Streams for Apache Kafka** 3.2+ (Red Hat)

Comment on lines +77 to +81
kubectl run kafka-producer -ti --image=quay.io/strimzi/kafka:latest-kafka-4.0.0 --rm=true --restart=Never -n kafka-source -- \
bin/kafka-console-producer.sh --bootstrap-server source-kafka-bootstrap:9092 --topic test-topic

kubectl run kafka-consumer -ti --image=quay.io/strimzi/kafka:latest-kafka-4.0.0 --rm=true --restart=Never -n kafka-target -- \
bin/kafka-console-consumer.sh --bootstrap-server target-kafka-bootstrap:9092 --topic source.test-topic --from-beginning
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
kubectl run kafka-producer -ti --image=quay.io/strimzi/kafka:latest-kafka-4.0.0 --rm=true --restart=Never -n kafka-source -- \
bin/kafka-console-producer.sh --bootstrap-server source-kafka-bootstrap:9092 --topic test-topic
kubectl run kafka-consumer -ti --image=quay.io/strimzi/kafka:latest-kafka-4.0.0 --rm=true --restart=Never -n kafka-target -- \
bin/kafka-console-consumer.sh --bootstrap-server target-kafka-bootstrap:9092 --topic source.test-topic --from-beginning
kubectl run kafka-producer -ti --image=quay.io/strimzi/kafka:latest-kafka-4.2.0 --rm=true --restart=Never -n kafka-source -- \
bin/kafka-console-producer.sh --bootstrap-server source-kafka-bootstrap:9092 --topic test-topic
kubectl run kafka-consumer -ti --image=quay.io/strimzi/kafka:latest-kafka-4.2.0 --rm=true --restart=Never -n kafka-target -- \
bin/kafka-console-consumer.sh --bootstrap-server target-kafka-bootstrap:9092 --topic source.test-topic --from-beginning

We have examples with test-clients for Kafka and mentioned in the docs so I wonder if we shouldn't have them here as well

Comment on lines +33 to +36
config:
config.storage.replication.factor: 3
offset.storage.replication.factor: 3
status.storage.replication.factor: 3
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

THis might be too strict for scenario with only 3 brokers. I saw that Kafka brokers has few defaults replication configs set to 3 as well. Maybe we should either reduce the replication factor to 2 to ensure that rolling updates won't degrade the cluster or add more brokers.

spec:
containers:
- name: postgresql-db
image: quay.io/sclorg/postgresql-15-c9s:latest
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe we should user postgres 18? This is tested version for Keycloak 26.6


### Kafka (namespace: `kafka-oauth`)

- **Kafka cluster** (`my-cluster`): KRaft mode, Kafka 4.0.0
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- **Kafka cluster** (`my-cluster`): KRaft mode, Kafka 4.0.0
- **Kafka cluster** (`my-cluster`): KRaft mode, Kafka 4.2.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: In progress

Development

Successfully merging this pull request may close these issues.

3 participants