From 052093ce0e4c83f59e17a2aff51a904d75613a0a Mon Sep 17 00:00:00 2001 From: Brian Flad Date: Mon, 30 Sep 2019 14:49:15 -0400 Subject: [PATCH] data-source/aws_eks_cluster: Add tags attribute Reference: https://github.com/terraform-providers/terraform-provider-aws/issues/10127 Output from acceptance testing: ``` --- PASS: TestAccAWSEksClusterDataSource_basic (1278.07s) ``` --- aws/data_source_aws_eks_cluster.go | 7 +++++++ aws/data_source_aws_eks_cluster_test.go | 1 + website/docs/d/eks_cluster.html.markdown | 1 + 3 files changed, 9 insertions(+) diff --git a/aws/data_source_aws_eks_cluster.go b/aws/data_source_aws_eks_cluster.go index 32a0688d5dea..0ba05b81bbf3 100644 --- a/aws/data_source_aws_eks_cluster.go +++ b/aws/data_source_aws_eks_cluster.go @@ -8,6 +8,7 @@ import ( "github.com/aws/aws-sdk-go/service/eks" "github.com/hashicorp/terraform/helper/schema" "github.com/hashicorp/terraform/helper/validation" + "github.com/terraform-providers/terraform-provider-aws/aws/internal/keyvaluetags" ) func dataSourceAwsEksCluster() *schema.Resource { @@ -84,6 +85,7 @@ func dataSourceAwsEksCluster() *schema.Resource { Type: schema.TypeString, Computed: true, }, + "tags": tagsSchemaComputed(), "vpc_config": { Type: schema.TypeList, MaxItems: 1, @@ -163,6 +165,11 @@ func dataSourceAwsEksClusterRead(d *schema.ResourceData, meta interface{}) error d.Set("platform_version", cluster.PlatformVersion) d.Set("role_arn", cluster.RoleArn) d.Set("status", cluster.Status) + + if err := d.Set("tags", keyvaluetags.EksKeyValueTags(cluster.Tags).IgnoreAws().Map()); err != nil { + return fmt.Errorf("error setting tags: %s", err) + } + d.Set("version", cluster.Version) if err := d.Set("vpc_config", flattenEksVpcConfigResponse(cluster.ResourcesVpcConfig)); err != nil { diff --git a/aws/data_source_aws_eks_cluster_test.go b/aws/data_source_aws_eks_cluster_test.go index eae49c5a7d34..3ccc769a2720 100644 --- a/aws/data_source_aws_eks_cluster_test.go +++ b/aws/data_source_aws_eks_cluster_test.go @@ -36,6 +36,7 @@ func TestAccAWSEksClusterDataSource_basic(t *testing.T) { resource.TestMatchResourceAttr(dataSourceResourceName, "platform_version", regexp.MustCompile(`^eks\.\d+$`)), resource.TestCheckResourceAttrPair(resourceName, "role_arn", dataSourceResourceName, "role_arn"), resource.TestCheckResourceAttrPair(resourceName, "status", dataSourceResourceName, "status"), + resource.TestCheckResourceAttrPair(resourceName, "tags.%", dataSourceResourceName, "tags.%"), resource.TestCheckResourceAttrPair(resourceName, "version", dataSourceResourceName, "version"), resource.TestCheckResourceAttr(dataSourceResourceName, "vpc_config.#", "1"), resource.TestCheckResourceAttrPair(resourceName, "vpc_config.0.endpoint_private_access", dataSourceResourceName, "vpc_config.0.endpoint_private_access"), diff --git a/website/docs/d/eks_cluster.html.markdown b/website/docs/d/eks_cluster.html.markdown index 9a420fec38d2..fdfcffc1524f 100644 --- a/website/docs/d/eks_cluster.html.markdown +++ b/website/docs/d/eks_cluster.html.markdown @@ -50,6 +50,7 @@ output "identity-oidc-issuer" { * `platform_version` - The platform version for the cluster. * `role_arn` - The Amazon Resource Name (ARN) of the IAM role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf. * `status` - The status of the EKS cluster. One of `CREATING`, `ACTIVE`, `DELETING`, `FAILED`. +* `tags` - Key-value mapping of resource tags. * `version` - The Kubernetes server version for the cluster. * `vpc_config` - Nested attribute containing VPC configuration for the cluster. * `endpoint_private_access` - Indicates whether or not the Amazon EKS private API server endpoint is enabled.