diff --git a/lib/manager/kustomize/__fixtures__/gitImages.yaml b/lib/manager/kustomize/__fixtures__/gitImages.yaml index a7538e20b21bc71fc8373fb06aaa00c7f206b0c0..6f49be1ce5677c41bcccac59b67888d8be36e0c1 100644 --- a/lib/manager/kustomize/__fixtures__/gitImages.yaml +++ b/lib/manager/kustomize/__fixtures__/gitImages.yaml @@ -18,3 +18,5 @@ images: - name: this-lives/on-docker-hub newName: but.this.lives.on.local/private-registry # and therefore we need to check the versions available here newTag: v0.0.4 +- name: nginx + newTag: 2.5 diff --git a/lib/manager/kustomize/__snapshots__/extract.spec.ts.snap b/lib/manager/kustomize/__snapshots__/extract.spec.ts.snap index 572b1f8c068b9eabfd3a74b8e618f05dd6628053..ec2fc9f8161ef301f6ce4ecd737bfed1d9086b1a 100644 --- a/lib/manager/kustomize/__snapshots__/extract.spec.ts.snap +++ b/lib/manager/kustomize/__snapshots__/extract.spec.ts.snap @@ -124,5 +124,10 @@ Array [ "replaceString": "v0.0.4", "versioning": "docker", }, + Object { + "currentValue": 2.5, + "depName": "nginx", + "skipReason": "invalid-value", + }, ] `; diff --git a/lib/manager/kustomize/extract.spec.ts b/lib/manager/kustomize/extract.spec.ts index f73775ec6ae2f94cfd342f931545633673b6b696..f0e15e8959df7021ac9e083712ddd8b4a49fe157 100644 --- a/lib/manager/kustomize/extract.spec.ts +++ b/lib/manager/kustomize/extract.spec.ts @@ -2,6 +2,7 @@ import { getName, loadFixture } from '../../../test/util'; import * as datasourceDocker from '../../datasource/docker'; import * as datasourceGitTags from '../../datasource/git-tags'; import * as datasourceGitHubTags from '../../datasource/github-tags'; +import { SkipReason } from '../../types'; import * as dockerVersioning from '../../versioning/docker'; import { extractBase, @@ -230,9 +231,10 @@ describe(getName(), () => { it('should extract out image versions', () => { const res = extractPackageFile(gitImages); expect(res.deps).toMatchSnapshot(); - expect(res.deps).toHaveLength(5); + expect(res.deps).toHaveLength(6); expect(res.deps[0].currentValue).toEqual('v0.1.0'); expect(res.deps[1].currentValue).toEqual('v0.0.1'); + expect(res.deps[5].skipReason).toEqual(SkipReason.InvalidValue); }); it('ignores non-Kubernetes empty files', () => { expect(extractPackageFile('')).toBeNull(); diff --git a/lib/manager/kustomize/extract.ts b/lib/manager/kustomize/extract.ts index 265716beb543d25ee2a6106b346ecf0cb055de43..12bfb8280c0d8ecadae0615f96b014378d3f061e 100644 --- a/lib/manager/kustomize/extract.ts +++ b/lib/manager/kustomize/extract.ts @@ -1,8 +1,10 @@ +import is from '@sindresorhus/is'; import { load } from 'js-yaml'; import * as datasourceDocker from '../../datasource/docker'; import * as datasourceGitTags from '../../datasource/git-tags'; import * as datasourceGitHubTags from '../../datasource/github-tags'; import { logger } from '../../logger'; +import { SkipReason } from '../../types'; import * as dockerVersioning from '../../versioning/docker'; import type { PackageDependency, PackageFile } from '../types'; import type { Image, Kustomize } from './types'; @@ -38,8 +40,15 @@ export function extractBase(base: string): PackageDependency | null { export function extractImage(image: Image): PackageDependency | null { if (image?.name && image.newTag) { const replaceString = image.newTag; - let currentValue; - let currentDigest; + let currentValue: string | undefined; + let currentDigest: string | undefined; + if (!is.string(replaceString)) { + return { + depName: image.newName ?? image.name, + currentValue: replaceString, + skipReason: SkipReason.InvalidValue, + }; + } if (replaceString.startsWith('sha256:')) { currentDigest = replaceString; currentValue = undefined;