Skip to content

[Feature]: --deployer argocdhelm adopts uniform local-chart layout #665

Description

@lockwobr

Feature Summary

Migrate --deployer argocdhelm (Argo CD app-of-apps with dynamic-values injection via root valuesObject) to the uniform numbered local-chart layout. Transformation logic simplifies because input is single-source path-based when Chart.yaml is present.

Parent: #516. Depends on --deployer argocd adopting the base format (sub-issue 3).

Problem / Use Case

--deployer argocdhelm delegates to the argocd deployer and transforms its output — wrapping per-component Applications in a parent Helm chart so ArgoCD can inject cluster-specific values via valuesObject on the root Application (OCI-publishable bundles per ADR-025). Once the argocd deployer adopts the base format (sub-issue 3), argocdhelm should follow so the whole app-of-apps chain consumes one layout.

Proposed Solution

argocdhelm's transformApplication handles both input shapes from the argocd deployer:

  • Input is path-based single-source (wrapped Kustomize / raw-manifest-only, or vendored Helm): transformation shortens — no multi-source → single-source flip needed. Injecting helm.values: {{ .Values.<key> }} into the single source is straightforward.
  • Input is multi-source (non-vendored pure Helm): transformation semantics match today. The existing multi-source → single-source conversion stays in place for this branch.

The static/ directory convention reconciles with per-component ownership: treat NNN-<name>/values.yaml as the static layer; put only dynamic-path stubs in the root chart's values.yaml.

Success Criteria

  • argocdhelm's transformation handles both input shapes without branching on component kind.
  • Dynamic-values injection via root valuesObject keeps working end-to-end.
  • Wrapped Kustomize / raw-manifest-only components pass through argocdhelm correctly.
  • KWOK e2e against --deployer argocdhelm passes for both non-vendored and vendored bundles.
  • make qualify clean; test coverage gate satisfied.
  • docs/user/cli-reference.md updated.

Alternatives Considered

  • Keep argocdhelm on the old multi-source transformation path only. Rejected: leaves the deployer diverged from the base format once sub-issue 3 lands.
  • Rewrite argocdhelm to generate Applications from scratch instead of delegating to argocd. Rejected: keeps today's delegation pattern (changes to the argocd deployer flow through automatically) and avoids duplicating Application generation.

Component

Bundlers (gpu-operator, network-operator, etc.)

Priority

Important (would improve my workflow)

Compatibility / Breaking Changes

File-path renames in the generated bundle (auto-regenerated; no migration). Root chart values.yaml now pulls static layer per-component from NNN-<name>/values.yaml, with only dynamic stubs at root.

Operational Considerations

  • End-to-end air-gap validation (block upstream chart registries at the Argo repo-server layer) confirms the --vendor-charts + --deployer argocdhelm claim.

Are you willing to contribute?

Maybe, with guidance

Metadata

Metadata

Assignees

Labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions