Skip to content

Commit

Permalink
feat(helm-manager): allow either tag or version for images in helm ch…
Browse files Browse the repository at this point in the history
…arts (#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>
  • Loading branch information
3 people committed Jun 23, 2022
1 parent ee52021 commit 29a272c
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 4 deletions.
2 changes: 1 addition & 1 deletion lib/modules/manager/helm-values/extract.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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));
Expand Down
4 changes: 4 additions & 0 deletions lib/modules/manager/helm-values/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
19 changes: 17 additions & 2 deletions lib/modules/manager/helm-values/types.ts
Original file line number Diff line number Diff line change
@@ -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;
5 changes: 4 additions & 1 deletion lib/modules/manager/helm-values/util.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -28,7 +31,7 @@ export function matchesHelmValuesDockerHeuristic(
data &&
typeof data === 'object' &&
hasKey('repository', data) &&
hasKey('tag', data)
(hasKey('tag', data) || hasKey('version', data))
);
}

Expand Down

0 comments on commit 29a272c

Please sign in to comment.