Skip to content

Commit 9664c5f

Browse files
committed
fix providers source format and add special case for terraform builtin provider
1 parent 6ab412e commit 9664c5f

File tree

6 files changed

+25
-5
lines changed

6 files changed

+25
-5
lines changed

tests/bcr/tf/BUILD.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ tf_providers_versions(
66
providers = {
77
"random" : "hashicorp/random:3.3.2",
88
"null" : "hashicorp/null:3.1.1",
9+
"terraform" : "terraform.io/builtin/terraform",
910
},
1011
)
1112

tests/bcr/tf/my-tflint-config.hcl

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,5 +57,9 @@ rule "terraform_unused_declarations" {
5757
}
5858

5959
rule "terraform_unused_required_providers" {
60-
enabled = true
60+
# tf lint support for provider functions is implemented but not released
61+
# by the time of this patch (tflint v0.9.1). Once released, please enable
62+
# cf https://github.com/terraform-linters/tflint-ruleset-terraform/pull/214
63+
# enabled = true
64+
enabled = false
6165
}

tests/bcr/tf/root-modules/root-mod-a/BUILD.bazel

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@ tf_module(
44
name = "root-mod-a",
55
providers = [
66
"random",
7+
"terraform",
78
],
89
deps = [
910
"//tf/modules/mod-a",
1011
],
1112
providers_versions = "//tf:versions",
13+
tflint_config = "//tf:tflint-custom-config",
1214
)

tests/bcr/tf/root-modules/root-mod-a/main.tf

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,9 @@ module "amodule" {
77

88
a_string = random_string.a_random_string.result
99
}
10+
11+
module "a2ndmodule" {
12+
source = "../../modules/mod-a"
13+
14+
a_string = provider::terraform::decode_tfvars("a_string = \"hello\"").a_string
15+
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"terraform":[{"required_providers":[{"random":{"source":"hashicorp/random","version":"3.3.2"}}],"required_version":">= 1.9, <= 1.10"}]}
1+
{"terraform":[{"required_providers":[{"random":{"source":"hashicorp/random","version":"3.3.2"},"terraform":{"source":"terraform.io/builtin/terraform"}}],"required_version":">= 1.9, <= 1.10"}]}

tf/rules/tf-providers-versions.bzl

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,20 @@ def _impl(ctx):
55
providers = {}
66
for k in ctx.attr.providers:
77
v = ctx.attr.providers[k]
8+
if v == "terraform.io/builtin/terraform":
9+
# special case of builtin provider
10+
providers[k] = {
11+
"source": v,
12+
}
13+
continue
14+
815
elems = v.split(":")
916
if len(elems) != 2:
10-
fail("provider version format must be org/provider:version, was: %s".format(v))
17+
fail("provider version format must be [hostname/]org/provider:version, was: %s".format(v))
1118

1219
provider_elems = elems[0].split("/")
13-
if len(provider_elems) != 2:
14-
fail("provider version format must be org/provider:version, was: %s".format(v))
20+
if len(provider_elems) < 2 or len(provider_elems) > 3:
21+
fail("provider version format must be [hostname/]org/provider:version, was: %s".format(v))
1522

1623
providers[k] = {
1724
"source": elems[0], "version": elems[1],

0 commit comments

Comments
 (0)