Skip to content

Provide a Helm chart to manage NACK CRDs (Streams/Consumers/KV/ObjectStore) #287

@wpnpeiris

Description

@wpnpeiris

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    proposalEnhancement idea or proposal

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions