Skip to content

fix(bundler): helmfile bundle README ships stale crds.yaml/releases.yaml instructions #927

Description

@mchmarny

Summary

The README template emitted into every multi-level helmfile bundle still tells operators to look for crds.yaml and releases.yaml — files that don't exist after the DAG-stratification work in #926. The actual sub-helmfiles are level-0.yamllevel-N.yaml.

Location

pkg/bundler/deployer/helmfile/templates/README.md.tmpl lines 26-31, inside the {{ if .HasCRDLayer }} block:

For bundles that include CRD-owning charts,
`helmfile.yaml` is a thin orchestration document with a `helmfiles:` list:
`crds.yaml` is processed first to register CRDs, then `releases.yaml`
installs every chart that consumes them. `helmfile` runs the sub-helmfiles
sequentially, so `helmfile diff` against a fresh cluster no longer fails
to resolve CRD kinds before any release is installed (see issue #914).

The same stale text is baked into the golden at pkg/bundler/deployer/helmfile/testdata/upstream_helm_only/README.md lines 25-30.

The opening framing ("For bundles that include CRD-owning charts…") is also no longer accurate — the gate is now "DAG produced >1 level", which any recipe with two unrelated components linked by a dependencyRef would also trigger.

Impact

Operators reading the auto-generated README in their bundle will hunt for files the bundler doesn't emit. The deployment itself works (helmfile.yaml is correct), but the docs mislead.

Acceptance Criteria

  • Rewrite the {{ if .HasCRDLayer }} block in templates/README.md.tmpl to describe the stratified layout: one sub-helmfile per dependency level (level-0.yaml first, level-1.yaml next, …), processed sequentially by helmfile.
  • Rename readmeData.HasCRDLayer and the related splitLayout local in helmfile.go to something like HasSubHelmfiles / stratified — the current name claims something the field no longer means.
  • Regenerate pkg/bundler/deployer/helmfile/testdata/upstream_helm_only/README.md via go test -update ./pkg/bundler/deployer/helmfile/....

Related

Metadata

Metadata

Assignees

Type

Fields

No fields configured for Bug.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions