Tracking issue for the open decisions and deferred work after adopting Option D — the operator now consumes the official NATS Helm chart's vendored manifests (build-time helm template → go:embed → SSA), with token-via-Secret auth and no committed JWT.
Decisions needed from maintainers
Deferred work (scoped out of Option D — you chose core pub/sub + token auth)
Notes
- Helm stays a build-time-only tool; there is no Helm/NATS runtime dependency in
go.mod (WS-6 preserved).
- Meshery Server contracts are unchanged by Option D: the
v1alpha1 CRDs, the typed client, and Broker.Status.Endpoint all behave as before.
Tracking issue for the open decisions and deferred work after adopting Option D — the operator now consumes the official NATS Helm chart's vendored manifests (build-time
helm template→go:embed→ SSA), with token-via-Secret auth and no committed JWT.docs/proposals/broker-nats-direct-consumption.md)Decisions needed from maintainers
ClusterIP; the overlay currently preserves the historicalLoadBalancerdefault whenspec.service.typeis unset, to avoid an unflagged behavioral change. Flip the default toClusterIP(works on every cluster; the plan's recommendation)? If so, Meshery Server must setspec.service.typeexplicitly for any environment that relied on the LB default, and it needs a release note. (Proposal §7 Q1, plan §8.)BrokerCRD a permanent part of the Meshery API, or is eventual Option C (Meshery-Server-driven Helm install, deprecate the CRD) on the table? Gates how much further to invest in the thin-CR wrapper. (Proposal §7 Q5.)NATS_CHART_VERSION = 2.14.2in the Makefile; a CI drift gate (.github/workflows/nats-chart-drift.yml) fails ifpkg/broker/manifests/nats.gen.yamldrifts from a freshmake nats-manifests. Who owns the periodic bump + drift-gate review, and on what cadence? (Proposal §7 Q6.)meshery-nats(single-broker-per-namespace assumption). Keep it, or adopt chart-default<release>naming with an alias? (Proposal §7 Q7.)Deferred work (scoped out of Option D — you chose core pub/sub + token auth)
integration-testsonly assert "deployment available"; MeshSync (distroless, silent standalone) doesn't reach its NATS-connect path there. The operator provides the correctnats://<token>@host:portURL (independently verified to authenticate + publish via thenatsCLI, same nats.go client MeshSync uses), but a real Meshery run should confirm MeshSync authenticates and publishes.*.tlsvalues) and for the operator's own metrics endpoint (cert-manager-issued cert instead of the current self-signedSecureServing). The cert-manager API is already onv1.config.jetstream.enabled+ file-store PVC) — only if MeshSync ever needs persistent streaming. AddBrokerSpec.JetStream(additive) when needed.jetstream.nats.ioCRDs: Stream/Consumer/KeyValue) — only as a follow-on to JetStream, to declaratively manage JetStream objects on the running server.promExporter.enabled) for broker metrics, if broker observability is wanted.Notes
go.mod(WS-6 preserved).v1alpha1CRDs, the typed client, andBroker.Status.Endpointall behave as before.