Skip to content

Commit 39dde97

Browse files
committed
aws_resource_missing_tags: use empty string for default provider
Uses empty string instead of "default" as the map key for the default provider. This is cleaner and more consistent with what DecodeProviderConfigRef returns when no alias is specified. Fixes #1002
1 parent 23fbd93 commit 39dde97

File tree

2 files changed

+27
-3
lines changed

2 files changed

+27
-3
lines changed

rules/aws_resource_missing_tags.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,10 +83,10 @@ func (r *AwsResourceMissingTagsRule) getProviderLevelTags(runner tflint.Runner)
8383
allProviderTags := make(map[string][]string)
8484
var providerAlias string
8585
for _, provider := range providerBody.Blocks.OfType(providerAttributeName) {
86-
// Get the alias attribute, in terraform when there is a single aws provider its called "default"
86+
// Get the alias attribute. Empty string represents the default provider.
8787
providerAttr, ok := provider.Body.Attributes["alias"]
8888
if !ok {
89-
providerAlias = "default"
89+
providerAlias = ""
9090
} else {
9191
err := runner.EvaluateExpr(providerAttr.Expr, func(alias string) error {
9292
logger.Debug("Walk `%s` provider", providerAlias)
@@ -164,7 +164,7 @@ func (r *AwsResourceMissingTagsRule) Check(runner tflint.Runner) error {
164164
}
165165

166166
for _, resource := range resources.Blocks {
167-
providerAlias := "default"
167+
var providerAlias string
168168
// Override the provider alias if defined
169169
if val, ok := resource.Body.Attributes[providerAttributeName]; ok {
170170
provider, diagnostics := aws.DecodeProviderConfigRef(val.Expr, "provider")

rules/aws_resource_missing_tags_test.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -525,6 +525,30 @@ rule "aws_resource_missing_tags" {
525525
},
526526
},
527527
},
528+
{
529+
Name: "Provider reference without alias (issue #1002)",
530+
Content: `
531+
provider "aws" {
532+
region = "eu-west-1"
533+
default_tags {
534+
tags = {
535+
"layer": "app"
536+
"type": "service"
537+
}
538+
}
539+
}
540+
541+
resource "aws_iam_user" "bedrock" {
542+
provider = aws
543+
name = "test"
544+
}`,
545+
Config: `
546+
rule "aws_resource_missing_tags" {
547+
enabled = true
548+
tags = ["layer", "type"]
549+
}`,
550+
Expected: helper.Issues{},
551+
},
528552
}
529553

530554
rule := NewAwsResourceMissingTagsRule()

0 commit comments

Comments
 (0)