From 29a272c78fb2b9a31be24a44be63691b27ab654b Mon Sep 17 00:00:00 2001 From: Karl-Johan Grahn <6355577+karl-johan-grahn@users.noreply.github.com> Date: Thu, 23 Jun 2022 19:36:01 +0200 Subject: [PATCH] feat(helm-manager): allow either tag or version for images in helm charts (#16058) * update Allow either tag or version for images in helm charts * undo * lint * undo * exports * rewrite * add spaces for lint * chore: prettier fix Co-authored-by: Rhys Arkins <rhys@arkins.net> Co-authored-by: Michael Kriese <michael.kriese@visualon.de> --- lib/modules/manager/helm-values/extract.ts | 2 +- lib/modules/manager/helm-values/readme.md | 4 ++++ lib/modules/manager/helm-values/types.ts | 19 +++++++++++++++++-- lib/modules/manager/helm-values/util.ts | 5 ++++- 4 files changed, 26 insertions(+), 4 deletions(-) diff --git a/lib/modules/manager/helm-values/extract.ts b/lib/modules/manager/helm-values/extract.ts index 670d8fe2ff..ba58044b15 100644 --- a/lib/modules/manager/helm-values/extract.ts +++ b/lib/modules/manager/helm-values/extract.ts @@ -46,7 +46,7 @@ function findDependencies( let registry = currentItem.registry; registry = registry ? `${registry}/` : ''; const repository = String(currentItem.repository); - const tag = String(currentItem.tag); + const tag = `${currentItem.tag ?? currentItem.version}`; packageDependencies.push(getHelmDep({ repository, tag, registry })); } else if (matchesHelmValuesInlineImage(key, value)) { packageDependencies.push(getDep(value)); diff --git a/lib/modules/manager/helm-values/readme.md b/lib/modules/manager/helm-values/readme.md index a604f2f0c8..c77852fca1 100644 --- a/lib/modules/manager/helm-values/readme.md +++ b/lib/modules/manager/helm-values/readme.md @@ -7,6 +7,10 @@ image: tag: v1.0.0 registry: registry.example.com # optional key, will default to "docker.io" +image: + repository: 'some-docker/dependency' + version: v1.0.0 + coreImage: registry: docker.io repository: bitnami/harbor-core diff --git a/lib/modules/manager/helm-values/types.ts b/lib/modules/manager/helm-values/types.ts index b507048353..50dbe42b43 100644 --- a/lib/modules/manager/helm-values/types.ts +++ b/lib/modules/manager/helm-values/types.ts @@ -1,5 +1,20 @@ -export type HelmDockerImageDependency = { +export interface HelmDockerImageDependencyBasic { registry?: string; repository: string; +} + +export interface HelmDockerImageDependencyTag + extends HelmDockerImageDependencyBasic { tag: string; -}; + version?: never; +} + +export interface HelmDockerImageDependencyVersion + extends HelmDockerImageDependencyBasic { + version: string; + tag?: never; +} + +export type HelmDockerImageDependency = + | HelmDockerImageDependencyTag + | HelmDockerImageDependencyVersion; diff --git a/lib/modules/manager/helm-values/util.ts b/lib/modules/manager/helm-values/util.ts index e88874edcf..58322e176f 100644 --- a/lib/modules/manager/helm-values/util.ts +++ b/lib/modules/manager/helm-values/util.ts @@ -15,6 +15,9 @@ const parentKeyRe = regEx(/image$/i); * image: * repository: 'something' * tag: v1.0.0 + * image: + * repository: 'something' + * version: v1.0.0 * renovateImage: * repository: 'something' * tag: v1.0.0 @@ -28,7 +31,7 @@ export function matchesHelmValuesDockerHeuristic( data && typeof data === 'object' && hasKey('repository', data) && - hasKey('tag', data) + (hasKey('tag', data) || hasKey('version', data)) ); } -- GitLab