From ff19fb4478feb47fdda3ecf197611e718edff7e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maximilian=20Ga=C3=9F?= <mxey@mxey.net> Date: Mon, 27 Aug 2018 16:24:58 +0200 Subject: [PATCH] fix(kubernetes): Fix updating of image in YAML array (#2435) Follow up to #2434, this lets Renovate actually update those image lines --- lib/manager/kubernetes/update.js | 2 +- .../__snapshots__/update.spec.js.snap | 21 +++++++++++++++++++ test/manager/kubernetes/update.spec.js | 16 ++++++++++++++ 3 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 test/manager/kubernetes/__snapshots__/update.spec.js.snap diff --git a/lib/manager/kubernetes/update.js b/lib/manager/kubernetes/update.js index e6ce219ab1..dc763631a7 100644 --- a/lib/manager/kubernetes/update.js +++ b/lib/manager/kubernetes/update.js @@ -10,7 +10,7 @@ function updateDependency(fileContent, upgrade) { logger.debug(`kubernetes.updateDependency(): ${newFrom}`); const lines = fileContent.split('\n'); const lineToChange = lines[upgrade.lineNumber]; - const imageLine = new RegExp(/^(\s*image:\s*'?"?)[^\s'"]+('?"?\s*)$/); + const imageLine = new RegExp(/^(\s*-?\s*image:\s*'?"?)[^\s'"]+('?"?\s*)$/); if (!lineToChange.match(imageLine)) { logger.debug('No image line found'); return null; diff --git a/test/manager/kubernetes/__snapshots__/update.spec.js.snap b/test/manager/kubernetes/__snapshots__/update.spec.js.snap new file mode 100644 index 0000000000..47e76ca35e --- /dev/null +++ b/test/manager/kubernetes/__snapshots__/update.spec.js.snap @@ -0,0 +1,21 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`manager/kubernetes/update updateDependency replaces image inside YAML array 1`] = ` +"apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: local-volume-provisioner + namespace: kube-system + labels: + app: local-volume-provisioner +spec: + selector: + matchLabels: + app: local-volume-provisioner + template: + spec: + containers: + - image: \\"quay.io/external_storage/local-volume-provisioner:v2.2.0\\" + name: provisioner +" +`; diff --git a/test/manager/kubernetes/update.spec.js b/test/manager/kubernetes/update.spec.js index 36952a90be..2114d9095d 100644 --- a/test/manager/kubernetes/update.spec.js +++ b/test/manager/kubernetes/update.spec.js @@ -6,6 +6,11 @@ const yamlFile = fs.readFileSync( 'utf8' ); +const arraySyntaxFile = fs.readFileSync( + 'test/_fixtures/kubernetes/array-syntax.yaml', + 'utf8' +); + describe('manager/kubernetes/update', () => { describe('updateDependency', () => { it('replaces existing value', () => { @@ -41,5 +46,16 @@ describe('manager/kubernetes/update', () => { const res = dcUpdate.updateDependency(null, null); expect(res).toBe(null); }); + it('replaces image inside YAML array', () => { + const upgrade = { + lineNumber: 14, + dockerRegistry: 'quay.io', + depName: 'external_storage/local-volume-provisioner', + newValue: 'v2.2.0', + }; + const res = dcUpdate.updateDependency(arraySyntaxFile, upgrade); + expect(res).not.toEqual(arraySyntaxFile); + expect(res).toMatchSnapshot(); + }); }); }); -- GitLab