diff --git a/lib/manager/helm-values/__fixtures__/multi_and_nested_image_values.yaml b/lib/manager/helm-values/__fixtures__/multi_and_nested_image_values.yaml index c134c887506397e908164425be0472272401d25a..8a6ad738eae627473da40e327e20d0f7f63a98a3 100644 --- a/lib/manager/helm-values/__fixtures__/multi_and_nested_image_values.yaml +++ b/lib/manager/helm-values/__fixtures__/multi_and_nested_image_values.yaml @@ -17,7 +17,7 @@ someOtherKey: - image: registry: docker.io repository: bitnami/postgresql - tag: 11.5.0-debian-9-r0 + tag: 11.5.0-debian-9-r0@sha256:4762726f1471ef048dd807afdc0e19265e95ffdcc7cb4a34891f680290022809 some-non-image-related-key: 'with-some-value' empty_key: diff --git a/lib/manager/helm-values/__snapshots__/extract.spec.ts.snap b/lib/manager/helm-values/__snapshots__/extract.spec.ts.snap index 639a6cd8a38bfad7663a019c99b9558697d1c0c0..f9c681f4b95cf415ed357155f94c7ca73a151212 100644 --- a/lib/manager/helm-values/__snapshots__/extract.spec.ts.snap +++ b/lib/manager/helm-values/__snapshots__/extract.spec.ts.snap @@ -8,18 +8,21 @@ Object { "currentValue": "11.6.0-debian-9-r0", "datasource": "docker", "depName": "bitnami/postgresql", + "replaceString": "11.6.0-debian-9-r0", }, Object { "currentDigest": undefined, "currentValue": "0.7.0-debian-9-r12", "datasource": "docker", "depName": "docker.io/bitnami/postgres-exporter", + "replaceString": "0.7.0-debian-9-r12", }, Object { - "currentDigest": undefined, + "currentDigest": "sha256:4762726f1471ef048dd807afdc0e19265e95ffdcc7cb4a34891f680290022809", "currentValue": "11.5.0-debian-9-r0", "datasource": "docker", "depName": "docker.io/bitnami/postgresql", + "replaceString": "11.5.0-debian-9-r0@sha256:4762726f1471ef048dd807afdc0e19265e95ffdcc7cb4a34891f680290022809", }, ], } @@ -33,6 +36,7 @@ Object { "currentValue": "1.16.1", "datasource": "docker", "depName": "nginx", + "replaceString": "1.16.1", }, ], } diff --git a/lib/manager/helm-values/extract.ts b/lib/manager/helm-values/extract.ts index 12814f22132837610b9e72d10306f66cf519b4d6..bdaab751617c55075cc8d83e31c6e656d97d8c36 100644 --- a/lib/manager/helm-values/extract.ts +++ b/lib/manager/helm-values/extract.ts @@ -8,6 +8,20 @@ import { matchesHelmValuesDockerHeuristic, } from './util'; +function getHelmDep({ + registry, + repository, + tag, +}: { + registry: string; + repository: string; + tag: string; +}): PackageDependency { + const dep = getDep(`${registry}${repository}:${tag}`, false); + dep.replaceString = tag; + return dep; +} + /** * Recursively find all supported dependencies in the yaml object. * @@ -29,8 +43,7 @@ function findDependencies( registry = registry ? `${registry}/` : ''; const repository = String(currentItem.repository); const tag = String(currentItem.tag); - const currentFrom = `${registry}${repository}:${tag}`; - packageDependencies.push(getDep(currentFrom, false)); + packageDependencies.push(getHelmDep({ repository, tag, registry })); } else { findDependencies(parsedContent[key], packageDependencies); } @@ -39,7 +52,7 @@ function findDependencies( } export function extractPackageFile(content: string): PackageFile { - let parsedContent; + let parsedContent: Record<string, unknown> | HelmDockerImageDependency; try { // a parser that allows extracting line numbers would be preferable, with // the current approach we need to match anything we find again during the update