Add examples of managing strimzi-kafka using argocd#6
Conversation
Signed-off-by: David Kornel <kornys@outlook.com>
227d6fa to
f2e1901
Compare
Signed-off-by: David Kornel <kornys@outlook.com>
alexcreasy
left a comment
There was a problem hiding this comment.
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.
| 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` |
There was a problem hiding this comment.
| 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?
| 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) |
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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 |
|
|
||
| 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) |
There was a problem hiding this comment.
| - **Streams for Apache Kafka** 3.2+ (IBM/Red Hat) | |
| - **Streams for Apache Kafka** 3.2+ (Red Hat) |
| 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 |
There was a problem hiding this comment.
| 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
| config: | ||
| config.storage.replication.factor: 3 | ||
| offset.storage.replication.factor: 3 | ||
| status.storage.replication.factor: 3 |
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
| - **Kafka cluster** (`my-cluster`): KRaft mode, Kafka 4.0.0 | |
| - **Kafka cluster** (`my-cluster`): KRaft mode, Kafka 4.2.0 |
No description provided.