Reference dataflow workload app for the Kafka/NiFi/Flink platform.
This repo contains only deployable workload manifests. Platform/runtime resources (Kafka brokers, Flink cluster, NiFi deployment, Keycloak, oauth2-proxy) remain in k8s-kafka.
manifests/batch-processing-examples.yaml- ConfigMap with pipeline topic config
- ConfigMap with NiFi flow reference doc (producer + consumer chains)
Jobto create example Kafka topicsJobto seed input topic dataJobto submit sample Flink SQL pipelineJobto verify Flink output is readable by the NiFi Kafka principal
manifests/nifi-declarative-flow-crs.yaml- NiFiKop declarative CRs for NiFi workflow lifecycle:
NifiCluster(external mode)NifiRegistryClientNifiParameterContextNifiDataflow
- This file is applied by Argo from
manifests/. - Replace placeholder values in this file before production rollout.
- NiFiKop declarative CRs for NiFi workflow lifecycle:
manifests/nifi-registry.yaml- Internal NiFi Registry deployment + service + PVC
- Stores versioned flow definitions consumed by
NifiDataflowresources
The deployed example models this path:
- NiFi publishes records to
batch.example.nifi.raw.v1. - Flink SQL job consumes that topic and writes enriched records to
batch.example.flink.enriched.v1. - NiFi consumes the Flink output topic for downstream routing/sinks.
What is automated by manifests:
- Topic creation
- Seed input data
- Flink SQL submission
- Output verification using NiFi Kafka credentials
What remains operator-driven in NiFi UI:
- Creating/running the NiFi producer and consumer processor chains
- Applying any business routing/sink logic in NiFi
Use manifests/nifi-declarative-flow-crs.yaml for GitOps-managed NiFi workflows.
- Provide required secrets for the declarative CR file:
secret/data/k8s-kafka-nifikop-client-cert-pemsecret/data/k8s-kafka-nifikop-client-key-pemsecret/data/k8s-kafka-nifi-ca-cert-pemsecret/data/k8s-kafka-nifi-registry-bucket-idsecret/data/k8s-kafka-nifi-registry-flow-idflowVersionremains manifest-managed (1by default)
- Keep
syncMode: alwaysonNifiDataflowto make Git the source of truth.
Notes:
- External-cluster reconciliation needs non-interactive NiFi API auth (
basicortls). bucketIdandflowIdcome from NiFi Registry flow metadata (bucket.yml/ versioned flow metadata).- NiFiKop must watch
dataflownamespace in addition tokafka.
This repo is deployed by the dataflow-example-app Argo CD Application defined in:
https://github.com/dotcomrow/dataflow-apps
Target namespace: dataflow