Skip to content

argo-rollouts: decide delivery path for full (description-bearing) CRDs #4048

Open

Description

@jmeridth

Context

Upstream argo-rollouts v1.10.0 intentionally restored full CRD schema descriptions for kubectl explain support (argoproj/argo-rollouts#4687). This tripled the CRD payload from 1.05MB to 3.04MB. Because this chart ships CRDs under templates/, the rendered release exceeded the 1MiB Kubernetes Secret limit and helm install failed outright.

To unblock the v1.10.0 bump (#4041), scripts/update-argo-rollouts-crds.sh now strips description doc strings during CRD sync. This restores the description-less content the chart shipped through v1.9.1, so users lose nothing they previously had — but they also don't gain the kubectl explain docs upstream now intends them to have.

Decision needed

Should the chart offer a path to the full, description-bearing CRDs? Options:

  1. Status quo: keep stripping descriptions. Simple, install always fits, no kubectl explain.
  2. argo-workflows model: minimal CRDs in templates/ by default, plus an opt-in install job applying full CRDs (workflows uses the upstream argo-workflows-crdinstaller image; rollouts has no equivalent image, so this would need a generic job, e.g. kubectl apply --server-side from the upstream manifest URL).
  3. Helm crds/ directory: full CRDs installed outside the release Secret. Loses upgrade handling (helm upgrade skips crds/), which is a regression vs today's installCRDs flow.
  4. Upstream ask: request a description-less CRD variant (or a rollouts crdinstaller image) upstream.

Option 2 with server-side apply seems the most promising if there's user demand for kubectl explain; otherwise 1 is a fine steady state.

Refs: #4041, argoproj/argo-rollouts#4687

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions