Skip to content

ComponentVersion: expose per-release resolved images in status (unknown keys are deliberately user-managed, but currently indistinguishable from typos) #10518

Description

@weicao

Current behavior

  • Image keys in ComponentVersion.spec.releases[*].images are matched case-insensitively against runtime container names, init container names, and lifecycle action names (pkg/controller/component/component_version.go:304-340, main @ aa7f8c8). A key that matches nothing (e.g. a typo like swichover, or a container renamed in a newer CMPD) is silently carried along and never applied — no validation error, no event, no status message.
  • ComponentVersion.status only exposes observedGeneration, phase, message, serviceVersions. There is no per-release view of which images were actually resolved for which containers/actions.

Why it matters

Image-key typos and container renames are only discoverable by observing that a Pod or action still runs the old image after an upgrade — a long diagnosis chain. Addon upgrade acceptance currently has to diff Pod/action images manually per release.

Suggested fix

  1. During ComponentVersion reconciliation (or admission), cross-check each release's image keys against the containers/actions of the ComponentDefinitions matched by compatibilityRules; surface unmatched keys as a condition/warning (a hard error may be too strict since one CMPV can span CMPDs with different container sets).
  2. Optionally extend status with resolved images per (release, compDef) so upgrade verification can read it instead of inspecting Pods.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions