Skip to content

feat(infrahub)!: remove the NATS subchart - #115

Draft
fatih-acar wants to merge 1 commit into
stablefrom
fac/remove-nats-helm
Draft

fatih-acar wants to merge 1 commit into
stablefrom
fac/remove-nats-helm

Conversation

@fatih-acar

Copy link
Copy Markdown
Contributor

Why

What changed

  • charts/infrahub/Chart.yaml: the nats dependency is removed.
  • charts/infrahub/values.yaml: the nats block (enabled: false, config.jetstream.enabled: true) is removed.
  • charts/infrahub/README.md: the dependency row and the two nats.* value rows are removed by hand. helm-docs produces the same rows; it would also change the prefectTag row from 1.11.4 to 1.11.9, which was out of date before this change and is left as is.
  • tests/e2e/test_tracing_optout.py: nats.enabled: false is removed from the values that trim the stack.
  • AGENTS.md: the infrahub chart description no longer lists NATS.
  • Changelog fragments, type removed, in charts/infrahub/changelog/ and charts/infrahub-enterprise/changelog/. The infrahub-enterprise chart gets this change when its infrahub pin moves to a release of the infrahub chart that contains it.

No template read the nats values. Enabling nats only deployed a NATS server, which Infrahub used when the operator also set INFRAHUB_BROKER_DRIVER or INFRAHUB_CACHE_DRIVER to nats.

How to test

make lint
helm dependency update charts/infrahub
helm template infrahub charts/infrahub
helm template infrahub charts/infrahub --set nats.enabled=true
uv run pytest -v -m infrahub tests/e2e

Results:

  • make lint passes for every chart.
  • With default values, helm template renders the same manifests as stable, apart from the RabbitMQ Erlang cookie, which the subchart generates at random on each render.
  • With nats.enabled=true, stable renders 48 objects and this branch renders 40, the same as with default values. Helm accepts the leftover nats value without an error.
  • The end-to-end tests were not run locally. CI runs them for a change to charts/infrahub/ and tests/.

Impact and rollout

  • A release whose values set nats.enabled: true (infrahub.nats.enabled: true with infrahub-enterprise) loses the NATS server when the chart is upgraded. If that release set INFRAHUB_BROKER_DRIVER or INFRAHUB_CACHE_DRIVER to nats, it must switch to RabbitMQ and Redis first. The changelog fragments say so.
  • What happens to a NATS volume claim on upgrade was not checked.
  • With default values nothing changes.

🤖 Generated with Claude Code

opsmill/infrahub#11210 removes the NATS driver for the message bus and
the cache, so the chart no longer installs the `nats` subchart or
accepts `nats` values. No template read them: enabling `nats` only
deployed a NATS server, which Infrahub used when the operator also set
`INFRAHUB_BROKER_DRIVER` or `INFRAHUB_CACHE_DRIVER` to `nats`.

With default values the rendered manifests do not change. A release
that sets `nats.enabled: true` loses the NATS server on upgrade.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant