diff --git a/lib/manager/terraform/__fixtures__/1.tf b/lib/manager/terraform/__fixtures__/1.tf index 5405976b79fcfdd7fa1bda968b537ce419635675..fa7accbc194410b4ce14ff82dbc5b6819f06d786 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 cb6a5a9029fc063b7d9267e3c11eb2727446fa27..5436bdb0b46db3c8a70c7a372e204f91119c570b 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 d61b491fbecc68a78db3f434f1188f7951cc81d4..d63177e92f1c2c856b496c7ef9bde9f72933a56a 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 87b8cd07c7e9e2702d4af01ded84f813b9253e56..4faa6be6d1943538b304f834a2acfd1b324a5645 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 98f6918c1863149391a471563e5949fe940435ef..ec10e50482960b96b3be118da6fb8e795d786c97 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 d5ac8ba51c22b92394b44ec1272f41937f9cf218..58fa2f8cdfa364caae0eb59484ed3b1e8f95f198 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];