From 34d3e21e0b9722b27a78b6380e43aa40a5cb115e Mon Sep 17 00:00:00 2001 From: Sebastian Poxhofer <secustor@users.noreply.github.com> Date: Wed, 4 Nov 2020 11:57:58 +0100 Subject: [PATCH] feat(terraform): remove versioning validation from manager (#7647) --- lib/manager/terraform/__fixtures__/1.tf | 4 ++++ .../terraform/__snapshots__/extract.spec.ts.snap | 13 ++++++++----- lib/manager/terraform/extract.spec.ts | 6 +++--- lib/manager/terraform/modules.ts | 7 ------- lib/manager/terraform/providers.ts | 4 ---- lib/manager/terraform/resources.ts | 3 --- 6 files changed, 15 insertions(+), 22 deletions(-) diff --git a/lib/manager/terraform/__fixtures__/1.tf b/lib/manager/terraform/__fixtures__/1.tf index 5405976b79..fa7accbc19 100644 --- a/lib/manager/terraform/__fixtures__/1.tf +++ b/lib/manager/terraform/__fixtures__/1.tf @@ -6,6 +6,10 @@ module "bar" { source = "github.com/hashicorp/example?ref=next" } +module "repo-with-non-semver-ref" { + source = "github.com/githubuser/myrepo//terraform/modules/moduleone?ref=tfmodule_one-v0.0.9" +} + module "repo-with-dot" { source = "github.com/hashicorp/example.2.3?ref=v1.0.0" } diff --git a/lib/manager/terraform/__snapshots__/extract.spec.ts.snap b/lib/manager/terraform/__snapshots__/extract.spec.ts.snap index cb6a5a9029..5436bdb0b4 100644 --- a/lib/manager/terraform/__snapshots__/extract.spec.ts.snap +++ b/lib/manager/terraform/__snapshots__/extract.spec.ts.snap @@ -21,7 +21,6 @@ Object { "registryUrls": Array [ "https://kubernetes-charts.storage.googleapis.com", ], - "skipReason": "unsupported-version", }, Object { "datasource": "helm", @@ -86,7 +85,14 @@ Object { "depNameShort": "hashicorp/example", "depType": "github", "lookupName": "hashicorp/example", - "skipReason": "unsupported-version", + }, + Object { + "currentValue": "tfmodule_one-v0.0.9", + "datasource": "github-tags", + "depName": "github.com/githubuser/myrepo", + "depNameShort": "githubuser/myrepo", + "depType": "github", + "lookupName": "githubuser/myrepo", }, Object { "currentValue": "v1.0.0", @@ -217,7 +223,6 @@ Object { "depName": "helm", "depNameShort": "helm", "depType": "terraform", - "skipReason": "unsupported-version", }, Object { "currentValue": "V1.9", @@ -225,7 +230,6 @@ Object { "depName": "newrelic", "depNameShort": "newrelic", "depType": "terraform", - "skipReason": "unsupported-version", }, Object { "currentValue": "v1.0.0", @@ -250,7 +254,6 @@ Object { "depNameShort": "hashicorp/example", "depType": "gitTags", "lookupName": "https://bitbucket.com/hashicorp/example", - "skipReason": "unsupported-version", }, Object { "currentValue": "v1.0.1", diff --git a/lib/manager/terraform/extract.spec.ts b/lib/manager/terraform/extract.spec.ts index d61b491fbe..d63177e92f 100644 --- a/lib/manager/terraform/extract.spec.ts +++ b/lib/manager/terraform/extract.spec.ts @@ -16,8 +16,8 @@ describe('lib/manager/terraform/extract', () => { it('extracts', () => { const res = extractPackageFile(tf1); expect(res).toMatchSnapshot(); - expect(res.deps).toHaveLength(43); - expect(res.deps.filter((dep) => dep.skipReason)).toHaveLength(12); + expect(res.deps).toHaveLength(44); + expect(res.deps.filter((dep) => dep.skipReason)).toHaveLength(8); }); it('returns null if only local deps', () => { expect(extractPackageFile(tf2)).toBeNull(); @@ -26,7 +26,7 @@ describe('lib/manager/terraform/extract', () => { const res = extractPackageFile(helm); expect(res).toMatchSnapshot(); expect(res.deps).toHaveLength(6); - expect(res.deps.filter((dep) => dep.skipReason)).toHaveLength(3); + expect(res.deps.filter((dep) => dep.skipReason)).toHaveLength(2); }); }); }); diff --git a/lib/manager/terraform/modules.ts b/lib/manager/terraform/modules.ts index 87b8cd07c7..4faa6be6d1 100644 --- a/lib/manager/terraform/modules.ts +++ b/lib/manager/terraform/modules.ts @@ -3,7 +3,6 @@ import * as datasourceGithubTags from '../../datasource/github-tags'; import * as datasourceTerraformModule from '../../datasource/terraform-module'; import { logger } from '../../logger'; import { SkipReason } from '../../types'; -import { isVersion } from '../../versioning/hashicorp'; import { PackageDependency } from '../common'; import { extractTerraformProvider } from './providers'; import { ExtractionResult, TerraformDependencyTypes } from './util'; @@ -37,9 +36,6 @@ export function analyseTerraformModule(dep: PackageDependency): void { dep.currentValue = githubRefMatch.groups.tag; dep.datasource = datasourceGithubTags.id; dep.lookupName = depNameShort; - if (!isVersion(dep.currentValue)) { - dep.skipReason = SkipReason.UnsupportedVersion; - } } else if (gitTagsRefMatch) { dep.depType = 'gitTags'; if (gitTagsRefMatch.groups.path.includes('//')) { @@ -55,9 +51,6 @@ export function analyseTerraformModule(dep: PackageDependency): void { } dep.currentValue = gitTagsRefMatch.groups.tag; dep.datasource = datasourceGitTags.id; - if (!isVersion(dep.currentValue)) { - dep.skipReason = SkipReason.UnsupportedVersion; - } } else if (dep.managerData.source) { const moduleParts = dep.managerData.source.split('//')[0].split('/'); if (moduleParts[0] === '..') { diff --git a/lib/manager/terraform/providers.ts b/lib/manager/terraform/providers.ts index 98f6918c18..ec10e50482 100644 --- a/lib/manager/terraform/providers.ts +++ b/lib/manager/terraform/providers.ts @@ -1,7 +1,6 @@ import is from '@sindresorhus/is'; import * as datasourceTerraformProvider from '../../datasource/terraform-provider'; import { SkipReason } from '../../types'; -import { isValid } from '../../versioning/hashicorp'; import { PackageDependency } from '../common'; import { ExtractionResult, @@ -48,9 +47,6 @@ export function analyzeTerraformProvider(dep: PackageDependency): void { dep.depName = dep.managerData.moduleName; dep.depNameShort = dep.managerData.moduleName; dep.datasource = datasourceTerraformProvider.id; - if (!isValid(dep.currentValue)) { - dep.skipReason = SkipReason.UnsupportedVersion; - } if (is.nonEmptyString(dep.managerData.source)) { const source = sourceExtractionRegex.exec(dep.managerData.source); diff --git a/lib/manager/terraform/resources.ts b/lib/manager/terraform/resources.ts index d5ac8ba51c..58fa2f8cdf 100644 --- a/lib/manager/terraform/resources.ts +++ b/lib/manager/terraform/resources.ts @@ -1,6 +1,5 @@ import * as datasourceHelm from '../../datasource/helm'; import { SkipReason } from '../../types'; -import { isValid } from '../../versioning/hashicorp'; import { PackageDependency } from '../common'; import { getDep } from '../dockerfile/extract'; import { @@ -100,8 +99,6 @@ export function analyseTerraformResource( dep.skipReason = SkipReason.InvalidName; } else if (checkIfStringIsPath(dep.managerData.chart)) { dep.skipReason = SkipReason.LocalChart; - } else if (!isValid(dep.currentValue)) { - dep.skipReason = SkipReason.UnsupportedVersion; } dep.depType = 'helm'; dep.registryUrls = [dep.managerData.repository]; -- GitLab