Skip to content

Renovate pins an invalid image digest into the Helm chart values #146

Description

@BergCyrill

Problem

The docker:pinDigests preset applies to the helm-values manager and rewrites
controller.image.tag / webhook.image.tag in
charts/dependency-controller/values.yaml from "" to "@sha256:…".

These are not external dependencies. Both images are built from this repo, and
helm-publish.yaml overwrites the chart's version and appVersion from the git
tag at publish time. The empty image.tag deliberately inherits .Chart.AppVersion,
which is what keeps chart and images co-versioned from the same commit.

Renovate tracking them therefore creates a feedback loop: docker.yaml publishes on
every push to main, so the digest changes on every merge, so Renovate opens another
pin PR — each one pinning the chart to the image built from the previous commit.
Proposed twice already (#119, #134); closing it just regenerates it with fresh digests.

Secondary symptom: the pinned value also renders an invalid reference, because the
templates emit "{{ .repository }}:{{ .tag | default .Chart.AppVersion }}":

image: "ghcr.io/opendefensecloud/dependency-controller:@sha256:1d0b2cea…"

helm lint and helm template do not validate reference syntax, so CI goes green.

Solution

Exclude both chart images from Renovate:

{
  "matchManagers": ["helm-values"],
  "matchPackageNames": [
    "ghcr.io/opendefensecloud/dependency-controller",
    "ghcr.io/opendefensecloud/dependency-webhook"
  ],
  "enabled": false
}

Then close #134.

Note: "fix the template to accept a digest" is not the fix. It would produce valid
YAML while still overriding the appVersion coupling and still looping on every merge.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions