From bcc1499eba9439e176bda95d32068b2129938ff7 Mon Sep 17 00:00:00 2001 From: Florian Greinacher <florian@greinacher.de> Date: Thu, 17 Mar 2022 05:47:52 +0100 Subject: [PATCH] fix(kustomize): accept kustomization files without header (#14651) --- lib/modules/manager/kustomize/extract.spec.ts | 16 ++++++++++++++++ lib/modules/manager/kustomize/extract.ts | 2 ++ lib/modules/manager/kustomize/readme.md | 1 - lib/modules/manager/kustomize/types.ts | 2 +- 4 files changed, 19 insertions(+), 2 deletions(-) diff --git a/lib/modules/manager/kustomize/extract.spec.ts b/lib/modules/manager/kustomize/extract.spec.ts index c22b7628fc..29c11bf5ef 100644 --- a/lib/modules/manager/kustomize/extract.spec.ts +++ b/lib/modules/manager/kustomize/extract.spec.ts @@ -34,6 +34,22 @@ describe('modules/manager/kustomize/extract', () => { const file = parseKustomize(''); expect(file).toBeNull(); }); + it('should return null when header has invalid resource kind', () => { + const file = parseKustomize(` + kind: NoKustomization + bases: + - github.com/fluxcd/flux/deploy?ref=1.19.0 + `); + expect(file).toBeNull(); + }); + it('should fall back to default resource kind when header is missing', () => { + const file = parseKustomize(` + bases: + - github.com/fluxcd/flux/deploy?ref=1.19.0 + `); + expect(file).not.toBeNull(); + expect(file.kind).toBe('Kustomization'); + }); describe('extractBase', () => { it('should return null for a local base', () => { const res = extractResource('./service-1'); diff --git a/lib/modules/manager/kustomize/extract.ts b/lib/modules/manager/kustomize/extract.ts index f5de3178f0..469bcc6a0a 100644 --- a/lib/modules/manager/kustomize/extract.ts +++ b/lib/modules/manager/kustomize/extract.ts @@ -133,6 +133,8 @@ export function parseKustomize(content: string): Kustomize | null { return null; } + pkg.kind ??= 'Kustomization'; + if (!['Kustomization', 'Component'].includes(pkg.kind)) { return null; } diff --git a/lib/modules/manager/kustomize/readme.md b/lib/modules/manager/kustomize/readme.md index 723b2cfa99..47185687d3 100644 --- a/lib/modules/manager/kustomize/readme.md +++ b/lib/modules/manager/kustomize/readme.md @@ -21,7 +21,6 @@ This manager uses three `depType`s to allow a fine-grained control of which depe **Limitations** -- Needs to have `kind: Kustomization` or `kind: Component` defined - Currently this hasn't been tested using HTTPS to fetch the repos - The keys for the image tags can be in any order diff --git a/lib/modules/manager/kustomize/types.ts b/lib/modules/manager/kustomize/types.ts index 22e0ef5738..c42207daf5 100644 --- a/lib/modules/manager/kustomize/types.ts +++ b/lib/modules/manager/kustomize/types.ts @@ -12,7 +12,7 @@ export interface HelmChart { } export interface Kustomize { - kind: string; + kind?: string; bases?: string[]; // deprecated since kustomize v2.1.0 resources?: string[]; components?: string[]; -- GitLab