-
Notifications
You must be signed in to change notification settings - Fork 71
Description
What motivated this proposal?
Today there’s an official Helm chart for deploying NACK itself (controller), published from nats-io/k8s.
However, there isn’t a chart for rendering the CRDs/resources of NACK.
Users have to hand-craft YAML or roll their own templating manage NACK resources.
An official chart would standardize the use of NACK CRDs.
What is the proposed change?
Provide an application helm chart that supports arrays of NACK resources.
Basically a Chart with templates/streams.yaml, consumers.yaml, keyvalues.yaml, objectstores.yaml, plus a shared helper for connection fields and naming.
The following is example use of values file of such chart.
streams:
- name: stream-a
subjects: ["sub-1"]
storage: file
replicas: 1
maxAge: 1h
- name: stream-b
subjects: ["sub-2"]
storage: file
replicas: 1
maxAge: 1h
consumers:
- streamName: stream-a
durableName: worker-a
deliverPolicy: all
ackPolicy: explicit
keyvalues:
- bucket: app-kv
history: 3
ttl: 24h
objectstores:
- bucket: assets
ttl: 168h
So, that each list item becomes one CR (Stream, Consumer, KeyValue, ObjectStore)
Who benefits from this change?
Application teams — declare Streams/Consumers next to app code, less boilerplate, predictable names, faster onboarding.
Platform/SRE/DevOps — enforce org defaults (retention, storage, replicas) promote safely across dev to prod deployments.
GitOps users (Argo CD / Flux) — single source of truth with clean diffs, repeatable, idempotent installs.
What alternatives have you evaluated?
- Handwritten YAML + Kustomize