You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dlab.apache.org by om...@apache.org on 2019/08/13 13:48:33 UTC

[incubator-dlab] branch DLAB-terraform updated: implemented tags for K8S infrastructure

This is an automated email from the ASF dual-hosted git repository.

omartushevskyi pushed a commit to branch DLAB-terraform
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git


The following commit(s) were added to refs/heads/DLAB-terraform by this push:
     new 395e561  implemented tags for K8S infrastructure
     new af00ca3  Merge remote-tracking branch 'origin/DLAB-terraform' into DLAB-terraform
395e561 is described below

commit 395e561dbc7c5c2d5efd6aa71a511eb04b6afe23
Author: Oleh Martushevskyi <Ol...@epam.com>
AuthorDate: Tue Aug 13 16:48:11 2019 +0300

    implemented tags for K8S infrastructure
---
 .../terraform/aws/endpoint/main/iam.tf             | 19 ++++----
 .../terraform/aws/endpoint/main/instance.tf        | 20 ++++-----
 .../terraform/aws/endpoint/main/network.tf         | 46 +++++++++++--------
 .../terraform/aws/endpoint/main/variables.tf       |  8 ++++
 .../aws/ssn-k8s/main/auto_scaling_groups.tf        | 50 +++++++++++++++++----
 .../terraform/aws/ssn-k8s/main/lb.tf               | 51 ++++++++++++++++------
 .../terraform/aws/ssn-k8s/main/role_policy.tf      | 18 +++++---
 .../terraform/aws/ssn-k8s/main/s3.tf               | 13 ++++--
 .../terraform/aws/ssn-k8s/main/security_groups.tf  | 11 ++++-
 .../terraform/aws/ssn-k8s/main/variables.tf        |  8 ++++
 .../terraform/aws/ssn-k8s/main/vpc.tf              | 51 +++++++++++++++++++---
 11 files changed, 220 insertions(+), 75 deletions(-)

diff --git a/infrastructure-provisioning/terraform/aws/endpoint/main/iam.tf b/infrastructure-provisioning/terraform/aws/endpoint/main/iam.tf
index d4b7202..4c12baf 100644
--- a/infrastructure-provisioning/terraform/aws/endpoint/main/iam.tf
+++ b/infrastructure-provisioning/terraform/aws/endpoint/main/iam.tf
@@ -20,9 +20,9 @@
 # ******************************************************************************
 
 locals {
-  role_name    = "${var.service_base_name}-endpoint-role"
-  role_profile = "${var.service_base_name}-endpoint-profile"
-  policy_name  = "${var.service_base_name}-endpoint-policy"
+  endpoint_role_name    = "${var.service_base_name}-endpoint-role"
+  endpoint_role_profile = "${var.service_base_name}-endpoint-profile"
+  endpoint_policy_name  = "${var.service_base_name}-endpoint-policy"
 }
 
 data "template_file" "endpoint_policy" {
@@ -30,22 +30,23 @@ data "template_file" "endpoint_policy" {
 }
 
 resource "aws_iam_role" "endpoint_role" {
-  name               = local.role_name
+  name               = local.endpoint_role_name
   assume_role_policy = file("./files/assume-policy.json")
   tags = {
-    product = "${var.product}"
-    Name = "${local.role_name}"
-    "${var.service_base_name}-Tag" = "${local.role_name}"
+    Name = "${local.endpoint_role_name}"
+    "${local.billing_tag[0]}" = local.billing_tag[1]
+    "${var.tag_resource_id}" = "${var.service_base_name}:${local.endpoint_role_name}"
+    "${var.service_base_name}-Tag" = local.endpoint_role_name
   }
 }
 
 resource "aws_iam_instance_profile" "endpoint_profile" {
-  name = local.role_profile
+  name = local.endpoint_role_profile
   role = aws_iam_role.endpoint_role.name
 }
 
 resource "aws_iam_policy" "endpoint_policy" {
-  name   = local.policy_name
+  name   = local.endpoint_policy_name
   policy = data.template_file.endpoint_policy.rendered
 }
 
diff --git a/infrastructure-provisioning/terraform/aws/endpoint/main/instance.tf b/infrastructure-provisioning/terraform/aws/endpoint/main/instance.tf
index c9e0930..1643753 100644
--- a/infrastructure-provisioning/terraform/aws/endpoint/main/instance.tf
+++ b/infrastructure-provisioning/terraform/aws/endpoint/main/instance.tf
@@ -20,15 +20,15 @@
 # ******************************************************************************
 
 locals {
-  ec2_name = "${var.service_base_name}-${var.endpoint_id}-endpoint"
+  endpoint_instance_name = "${var.service_base_name}-${var.endpoint_id}-endpoint"
 }
 
 resource "aws_instance" "endpoint" {
-  ami             = var.ami
-  instance_type   = var.endpoint_instance_shape
-  key_name        = var.key_name
-  subnet_id       = data.aws_subnet.data_subnet.id
-  security_groups = ["${aws_security_group.endpoint_sec_group.id}"]
+  ami                  = var.ami
+  instance_type        = var.endpoint_instance_shape
+  key_name             = var.key_name
+  subnet_id            = data.aws_subnet.data_subnet.id
+  security_groups      = [aws_security_group.endpoint_sec_group.id]
   iam_instance_profile = aws_iam_instance_profile.endpoint_profile.name
   root_block_device {
     volume_type           = "gp2"
@@ -36,10 +36,10 @@ resource "aws_instance" "endpoint" {
     delete_on_termination = true
   }
   tags = {
-    Name = "${local.ec2_name}"
-    "${var.service_base_name}-Tag" = "${local.ec2_name}"
-    product = "${var.product}"
-    "user:tag" = "${var.service_base_name}:${local.ec2_name}"
+    Name                           = local.endpoint_instance_name
+    "${local.billing_tag[0]}"      = local.billing_tag[1]
+    "${var.tag_resource_id}"       = "${var.service_base_name}:${local.endpoint_instance_name}"
+    "${var.service_base_name}-Tag" = local.endpoint_instance_name
   }
 }
 
diff --git a/infrastructure-provisioning/terraform/aws/endpoint/main/network.tf b/infrastructure-provisioning/terraform/aws/endpoint/main/network.tf
index ba0cf17..c7b1d38 100644
--- a/infrastructure-provisioning/terraform/aws/endpoint/main/network.tf
+++ b/infrastructure-provisioning/terraform/aws/endpoint/main/network.tf
@@ -20,19 +20,25 @@
 # ******************************************************************************
 
 locals {
-  subnet_name = "${var.service_base_name}-subnet"
-  sg_name     = "${var.service_base_name}-sg"
+  endpoint_subnet_name       = "${var.service_base_name}-subnet"
+  endpoint_sg_name           = "${var.service_base_name}-sg"
+  endpoint_vpc_name = "${var.service_base_name}-endpoint-vpc"
+  billing_tag       = split(":", var.billing_tag)
+  endpoint_igw_name = "${var.service_base_name}-endpoint-igw"
 }
 
 
 resource "aws_vpc" "vpc_create" {
-  cidr_block         = var.vpc_cidr
-  count              = var.vpc_id == "" ? 1 : 0
-  instance_tenancy   = "default"
+  cidr_block           = var.vpc_cidr
+  count                = var.vpc_id == "" ? 1 : 0
+  instance_tenancy     = "default"
   enable_dns_hostnames = true
   enable_dns_support   = true
-  tags = {
-    Name = "${var.service_base_name}-endpoint-vpc"
+  tags                 = {
+    Name                           = local.endpoint_vpc_name
+    "${local.billing_tag[0]}"      = local.billing_tag[1]
+    "${var.tag_resource_id}"       = "${var.service_base_name}:${local.endpoint_vpc_name}"
+    "${var.service_base_name}-Tag" = local.endpoint_vpc_name
   }
 }
 
@@ -43,8 +49,11 @@ data "aws_vpc" "data_vpc" {
 resource "aws_internet_gateway" "gw" {
   vpc_id = aws_vpc.vpc_create.0.id
   count  = var.vpc_id == "" ? 1 : 0
-  tags = {
-    Name = "${var.service_base_name}-endpoint-vpc"
+  tags   = {
+    Name                           = local.endpoint_igw_name
+    "${local.billing_tag[0]}"      = local.billing_tag[1]
+    "${var.tag_resource_id}"       = "${var.service_base_name}:${local.endpoint_igw_name}"
+    "${var.service_base_name}-Tag" = local.endpoint_igw_name
   }
 }
 
@@ -52,11 +61,11 @@ resource "aws_subnet" "endpoint_subnet" {
   vpc_id            = aws_vpc.vpc_create.0.id
   cidr_block        = var.subnet_cidr
   availability_zone = "${var.region}${var.zone}"
-  tags = {
-    Name = "${local.subnet_name}"
-    "${var.service_base_name}-Tag" = "${local.subnet_name}"
-    product = "${var.product}"
-    "user:tag" = "${var.service_base_name}:${local.subnet_name}"
+  tags              = {
+    Name                           = local.endpoint_subnet_name
+    "${local.billing_tag[0]}"      = local.billing_tag[1]
+    "${var.tag_resource_id}"       = "${var.service_base_name}:${local.endpoint_subnet_name}"
+    "${var.service_base_name}-Tag" = local.endpoint_subnet_name
   }
   count = var.vpc_id == "" ? 1 : 0
 }
@@ -73,7 +82,7 @@ resource "aws_route" "route" {
 }
 
 resource "aws_security_group" "endpoint_sec_group" {
-  name        = "endpoint_sec_group"
+  name        = local.endpoint_sg_name
   vpc_id      = data.aws_vpc.data_vpc.id
   ingress {
     from_port   = 22
@@ -104,8 +113,9 @@ resource "aws_security_group" "endpoint_sec_group" {
   }
 
   tags = {
-  Name = "${local.sg_name}"
-  product = "${var.product}"
-  "user:tag" = "${var.service_base_name}:${local.sg_name}"
+    Name                           = local.endpoint_sg_name
+    "${local.billing_tag[0]}"      = local.billing_tag[1]
+    "${var.tag_resource_id}"       = "${var.service_base_name}:${local.endpoint_sg_name}"
+    "${var.service_base_name}-Tag" = local.endpoint_sg_name
   }
 }
diff --git a/infrastructure-provisioning/terraform/aws/endpoint/main/variables.tf b/infrastructure-provisioning/terraform/aws/endpoint/main/variables.tf
index 9a12631..69daa86 100644
--- a/infrastructure-provisioning/terraform/aws/endpoint/main/variables.tf
+++ b/infrastructure-provisioning/terraform/aws/endpoint/main/variables.tf
@@ -55,3 +55,11 @@ variable "endpoint_volume_size" {}
 variable "endpoint_eip_allocation_id" {}
 
 variable "endpoint_id" {}
+
+variable "billing_tag" {
+  default = "product:dlab"
+}
+
+variable "tag_resource_id" {
+  default = "user:tag"
+}
diff --git a/infrastructure-provisioning/terraform/aws/ssn-k8s/main/auto_scaling_groups.tf b/infrastructure-provisioning/terraform/aws/ssn-k8s/main/auto_scaling_groups.tf
index a252d16..c20da65 100644
--- a/infrastructure-provisioning/terraform/aws/ssn-k8s/main/auto_scaling_groups.tf
+++ b/infrastructure-provisioning/terraform/aws/ssn-k8s/main/auto_scaling_groups.tf
@@ -20,7 +20,11 @@
 # ******************************************************************************
 
 locals {
-  subnet_c_id = data.aws_subnet.k8s-subnet-c-data == [] ? "" : data.aws_subnet.k8s-subnet-c-data.0.id
+  subnet_c_id                      = data.aws_subnet.k8s-subnet-c-data == [] ? "" : data.aws_subnet.k8s-subnet-c-data.0.id
+  ssn_k8s_launch_conf_masters_name = "${var.service_base_name}-ssn-launch-conf-masters"
+  ssn_k8s_launch_conf_workers_name = "${var.service_base_name}-ssn-launch-conf-workers"
+  ssn_k8s_ag_masters_name          = "${var.service_base_name}-ssn-masters"
+  ssn_k8s_ag_workers_name          = "${var.service_base_name}-ssn-workers"
 }
 
 resource "random_string" "ssn_keystore_password" {
@@ -36,7 +40,7 @@ resource "random_string" "endpoint_keystore_password" {
 data "template_file" "ssn_k8s_masters_user_data" {
   template = file("./files/masters-user-data.sh")
   vars = {
-    k8s-asg                    = "${var.service_base_name}-ssn-masters"
+    k8s-asg                    = local.ssn_k8s_ag_masters_name
     k8s-region                 = var.region
     k8s-bucket-name            = aws_s3_bucket.ssn_k8s_bucket.id
     k8s-nlb-dns-name           = aws_lb.ssn_k8s_nlb.dns_name
@@ -57,7 +61,7 @@ data "template_file" "ssn_k8s_workers_user_data" {
 }
 
 resource "aws_launch_configuration" "ssn_k8s_launch_conf_masters" {
-  name                 = "${var.service_base_name}-ssn-launch-conf-masters"
+  name                 = local.ssn_k8s_launch_conf_masters_name
   image_id             = var.ami
   instance_type        = var.ssn_k8s_masters_shape
   key_name             = var.key_name
@@ -76,7 +80,7 @@ resource "aws_launch_configuration" "ssn_k8s_launch_conf_masters" {
 }
 
 resource "aws_launch_configuration" "ssn_k8s_launch_conf_workers" {
-  name                 = "${var.service_base_name}-ssn-launch-conf-workers"
+  name                 = local.ssn_k8s_launch_conf_workers_name
   image_id             = var.ami
   instance_type        = var.ssn_k8s_workers_shape
   key_name             = var.key_name
@@ -95,7 +99,7 @@ resource "aws_launch_configuration" "ssn_k8s_launch_conf_workers" {
 }
 
 resource "aws_autoscaling_group" "ssn_k8s_autoscaling_group_masters" {
-  name                 = "${var.service_base_name}-ssn-masters"
+  name                 = local.ssn_k8s_ag_masters_name
   launch_configuration = aws_launch_configuration.ssn_k8s_launch_conf_masters.name
   min_size             = var.ssn_k8s_masters_count
   max_size             = var.ssn_k8s_masters_count
@@ -111,14 +115,29 @@ resource "aws_autoscaling_group" "ssn_k8s_autoscaling_group_masters" {
   tags = [
     {
       key                 = "Name"
-      value               = "${var.service_base_name}-ssn-masters"
+      value               = local.ssn_k8s_ag_masters_name
+      propagate_at_launch = true
+    },
+    {
+      key                 = local.billing_tag[0]
+      value               = local.billing_tag[1]
+      propagate_at_launch = true
+    },
+    {
+      key                 = var.tag_resource_id
+      value               = "${var.service_base_name}:${local.ssn_k8s_ag_masters_name}"
+      propagate_at_launch = true
+    },
+    {
+      key                 = "${var.service_base_name}-Tag"
+      value               = local.ssn_k8s_ag_masters_name
       propagate_at_launch = true
     }
   ]
 }
 
 resource "aws_autoscaling_group" "ssn_k8s_autoscaling_group_workers" {
-  name                 = "${var.service_base_name}-ssn-workers"
+  name                 = local.ssn_k8s_ag_workers_name
   launch_configuration = aws_launch_configuration.ssn_k8s_launch_conf_workers.name
   min_size             = var.ssn_k8s_workers_count
   max_size             = var.ssn_k8s_workers_count
@@ -131,7 +150,22 @@ resource "aws_autoscaling_group" "ssn_k8s_autoscaling_group_workers" {
   tags = [
     {
       key                 = "Name"
-      value               = "${var.service_base_name}-ssn-workers"
+      value               = local.ssn_k8s_ag_workers_name
+      propagate_at_launch = true
+    },
+    {
+      key                 = local.billing_tag[0]
+      value               = local.billing_tag[1]
+      propagate_at_launch = true
+    },
+    {
+      key                 = var.tag_resource_id
+      value               = "${var.service_base_name}:${local.ssn_k8s_ag_workers_name}"
+      propagate_at_launch = true
+    },
+    {
+      key                 = "${var.service_base_name}-Tag"
+      value               = local.ssn_k8s_ag_workers_name
       propagate_at_launch = true
     }
   ]
diff --git a/infrastructure-provisioning/terraform/aws/ssn-k8s/main/lb.tf b/infrastructure-provisioning/terraform/aws/ssn-k8s/main/lb.tf
index 4941f81..1c858d5 100644
--- a/infrastructure-provisioning/terraform/aws/ssn-k8s/main/lb.tf
+++ b/infrastructure-provisioning/terraform/aws/ssn-k8s/main/lb.tf
@@ -19,56 +19,79 @@
 #
 # ******************************************************************************
 
+locals {
+  ssn_nlb_name            = "${var.service_base_name}-ssn-nlb"
+  ssn_alb_name            = "${var.service_base_name}-ssn-alb"
+  ssn_k8s_nlb_api_tg_name = "${var.service_base_name}-ssn-nlb-api-tg"
+  ssn_k8s_nlb_ss_tg_name  = "${var.service_base_name}-ssn-nlb-ss-tg"
+  ssn_k8s_alb_tg_name     = "${var.service_base_name}-ssn-alb-tg"
+}
+
 resource "aws_lb" "ssn_k8s_nlb" {
-  name               = "${var.service_base_name}-ssn-nlb"
+  name               = local.ssn_nlb_name
   load_balancer_type = "network"
   subnets            = compact([data.aws_subnet.k8s-subnet-a-data.id, data.aws_subnet.k8s-subnet-b-data.id,
                                 local.subnet_c_id])
-  tags = {
-    Name = "${var.service_base_name}-ssn-nlb"
+  tags               = {
+    Name                           = local.ssn_nlb_name
+    "${local.billing_tag[0]}"      = local.billing_tag[1]
+    "${var.tag_resource_id}"       = "${var.service_base_name}:${local.ssn_nlb_name}"
+    "${var.service_base_name}-Tag" = local.ssn_nlb_name
   }
 }
 
 resource "aws_lb" "ssn_k8s_alb" {
-  name               = "${var.service_base_name}-ssn-alb"
+  name               = local.ssn_alb_name
   internal           = false
   load_balancer_type = "application"
   security_groups    = [aws_security_group.ssn_k8s_sg.id]
   subnets            = compact([data.aws_subnet.k8s-subnet-a-data.id, data.aws_subnet.k8s-subnet-b-data.id,
                                 local.subnet_c_id])
 
-  tags = {
-    Name = "${var.service_base_name}-ssn-alb"
+  tags               = {
+    Name                           = local.ssn_alb_name
+    "${local.billing_tag[0]}"      = local.billing_tag[1]
+    "${var.tag_resource_id}"       = "${var.service_base_name}:${local.ssn_alb_name}"
+    "${var.service_base_name}-Tag" = local.ssn_alb_name
   }
 }
 
 resource "aws_lb_target_group" "ssn_k8s_nlb_api_target_group" {
-  name     = "${var.service_base_name}-ssn-nlb-api-tg"
+  name     = local.ssn_k8s_nlb_api_tg_name
   port     = 6443
   protocol = "TCP"
   vpc_id   = data.aws_vpc.ssn_k8s_vpc_data.id
-  tags = {
-    Name = "${var.service_base_name}-ssn-nlb-api-tg"
+  tags     = {
+    Name                           = local.ssn_k8s_nlb_api_tg_name
+    "${local.billing_tag[0]}"      = local.billing_tag[1]
+    "${var.tag_resource_id}"       = "${var.service_base_name}:${local.ssn_k8s_nlb_api_tg_name}"
+    "${var.service_base_name}-Tag" = local.ssn_k8s_nlb_api_tg_name
   }
 }
 
 resource "aws_lb_target_group" "ssn_k8s_nlb_ss_target_group" {
-  name     = "${var.service_base_name}-ssn-nlb-ss-tg"
+  name     = local.ssn_k8s_nlb_ss_tg_name
   port     = 30433
   protocol = "TCP"
   vpc_id   = data.aws_vpc.ssn_k8s_vpc_data.id
-  tags = {
-    Name = "${var.service_base_name}-ssn-nlb-ss-tg"
+  tags     = {
+    Name                           = local.ssn_k8s_nlb_ss_tg_name
+    "${local.billing_tag[0]}"      = local.billing_tag[1]
+    "${var.tag_resource_id}"       = "${var.service_base_name}:${local.ssn_k8s_nlb_ss_tg_name}"
+    "${var.service_base_name}-Tag" = local.ssn_k8s_nlb_ss_tg_name
   }
 }
 
 resource "aws_lb_target_group" "ssn_k8s_alb_target_group" {
-  name     = "${var.service_base_name}-ssn-alb-tg"
+  name     = local.ssn_k8s_alb_tg_name
   port     = 31080
   protocol = "HTTP"
   vpc_id   = data.aws_vpc.ssn_k8s_vpc_data.id
   tags = {
-    Name = "${var.service_base_name}-ssn-alb-tg"
+    Name                           = local.ssn_k8s_alb_tg_name
+    "${local.billing_tag[0]}"      = local.billing_tag[1]
+    "${var.tag_resource_id}"       = "${var.service_base_name}:${local.ssn_k8s_alb_tg_name}"
+    "${var.service_base_name}-Tag" = local.ssn_k8s_alb_tg_name
   }
 }
 
diff --git a/infrastructure-provisioning/terraform/aws/ssn-k8s/main/role_policy.tf b/infrastructure-provisioning/terraform/aws/ssn-k8s/main/role_policy.tf
index c6f9fc8..90718ef 100644
--- a/infrastructure-provisioning/terraform/aws/ssn-k8s/main/role_policy.tf
+++ b/infrastructure-provisioning/terraform/aws/ssn-k8s/main/role_policy.tf
@@ -19,24 +19,32 @@
 #
 # ******************************************************************************
 
+locals {
+  ssn_policy_name = "${var.service_base_name}-ssn-policy"
+  ssn_role_name   = "${var.service_base_name}-ssn-role"
+}
+
 data "template_file" "ssn_k8s_s3_policy" {
   template = file("./files/ssn-policy.json.tpl")
-  vars = {
+  vars     = {
     bucket_arn = aws_s3_bucket.ssn_k8s_bucket.arn
   }
 }
 
 resource "aws_iam_policy" "ssn_k8s_policy" {
-  name        = "${var.service_base_name}-ssn-policy"
+  name        = local.ssn_policy_name
   description = "Policy for SSN K8S"
   policy      = data.template_file.ssn_k8s_s3_policy.rendered
 }
 
 resource "aws_iam_role" "ssn_k8s_role" {
-  name               = "${var.service_base_name}-ssn-role"
+  name               = local.ssn_role_name
   assume_role_policy = file("./files/assume-policy.json")
-  tags = {
-    Name = "${var.service_base_name}-ssn-role"
+  tags               = {
+    Name                           = local.ssn_role_name
+    "${local.billing_tag[0]}"      = local.billing_tag[1]
+    "${var.tag_resource_id}"       = "${var.service_base_name}:${local.ssn_role_name}"
+    "${var.service_base_name}-Tag" = local.ssn_role_name
   }
 }
 
diff --git a/infrastructure-provisioning/terraform/aws/ssn-k8s/main/s3.tf b/infrastructure-provisioning/terraform/aws/ssn-k8s/main/s3.tf
index d0726b7..103f818 100644
--- a/infrastructure-provisioning/terraform/aws/ssn-k8s/main/s3.tf
+++ b/infrastructure-provisioning/terraform/aws/ssn-k8s/main/s3.tf
@@ -19,11 +19,18 @@
 #
 # ******************************************************************************
 
+locals {
+  ssn_s3_name = "${var.service_base_name}-ssn-bucket"
+}
+
 resource "aws_s3_bucket" "ssn_k8s_bucket" {
-  bucket = "${var.service_base_name}-ssn-bucket"
+  bucket = local.ssn_s3_name
   acl    = "private"
-  tags = {
-    Name = "${var.service_base_name}-ssn-bucket"
+  tags   = {
+    Name                           = local.ssn_s3_name
+    "${local.billing_tag[0]}"      = local.billing_tag[1]
+    "${var.tag_resource_id}"       = "${var.service_base_name}:${local.ssn_s3_name}"
+    "${var.service_base_name}-Tag" = local.ssn_s3_name
   }
   force_destroy = true
 }
diff --git a/infrastructure-provisioning/terraform/aws/ssn-k8s/main/security_groups.tf b/infrastructure-provisioning/terraform/aws/ssn-k8s/main/security_groups.tf
index 70fb6e4..6486116 100644
--- a/infrastructure-provisioning/terraform/aws/ssn-k8s/main/security_groups.tf
+++ b/infrastructure-provisioning/terraform/aws/ssn-k8s/main/security_groups.tf
@@ -34,8 +34,12 @@
 //  depends_on = [aws_lb_listener.ssn_k8s_nlb_listener]
 //}
 
+locals {
+  ssn_sg_name = "${var.service_base_name}-ssn-sg"
+}
+
 resource "aws_security_group" "ssn_k8s_sg" {
-  name        = "${var.service_base_name}-ssn-sg"
+  name        = local.ssn_sg_name
   description = "SG for SSN K8S cluster"
   vpc_id      = data.aws_vpc.ssn_k8s_vpc_data.id
 
@@ -73,6 +77,9 @@ resource "aws_security_group" "ssn_k8s_sg" {
   }
 
   tags = {
-    Name = "${var.service_base_name}-ssn-sg"
+    Name                           = local.ssn_sg_name
+    "${local.billing_tag[0]}"      = local.billing_tag[1]
+    "${var.tag_resource_id}"       = "${var.service_base_name}:${local.ssn_sg_name}"
+    "${var.service_base_name}-Tag" = local.ssn_sg_name
   }
 }
\ No newline at end of file
diff --git a/infrastructure-provisioning/terraform/aws/ssn-k8s/main/variables.tf b/infrastructure-provisioning/terraform/aws/ssn-k8s/main/variables.tf
index 1459959..ab86415 100644
--- a/infrastructure-provisioning/terraform/aws/ssn-k8s/main/variables.tf
+++ b/infrastructure-provisioning/terraform/aws/ssn-k8s/main/variables.tf
@@ -52,6 +52,14 @@ variable "project_tag" {
   default = ""
 }
 
+variable "billing_tag" {
+  default = "product:dlab"
+}
+
+variable "tag_resource_id" {
+  default = "user:tag"
+}
+
 // SSN
 variable "service_base_name" {
   default = "dlab-k8s"
diff --git a/infrastructure-provisioning/terraform/aws/ssn-k8s/main/vpc.tf b/infrastructure-provisioning/terraform/aws/ssn-k8s/main/vpc.tf
index a8d4e71..26d1e9a 100644
--- a/infrastructure-provisioning/terraform/aws/ssn-k8s/main/vpc.tf
+++ b/infrastructure-provisioning/terraform/aws/ssn-k8s/main/vpc.tf
@@ -19,6 +19,18 @@
 #
 # ******************************************************************************
 
+locals {
+  billing_tag       = split(":", var.billing_tag)
+  ssn_vpc_name      = "${var.service_base_name}-ssn-vpc"
+  ssn_igw_name      = "${var.service_base_name}-ssn-igw"
+  ssn_subnet_a_name = "${var.service_base_name}-ssn-subnet-az-a"
+  ssn_subnet_b_name = "${var.service_base_name}-ssn-subnet-az-b"
+  ssn_subnet_c_name = "${var.service_base_name}-ssn-subnet-az-c"
+  endpoint_ip_name  = "${var.service_base_name}-endpoint-eip"
+  endpoint_rt_name  = "${var.service_base_name}-endpoint-rt"
+  endpoint_s3_name  = "${var.service_base_name}-endpoint-s3"
+}
+
 resource "aws_vpc" "ssn_k8s_vpc" {
   count = var.vpc_id == "" ? 1 : 0
   cidr_block           = var.vpc_cidr
@@ -27,7 +39,10 @@ resource "aws_vpc" "ssn_k8s_vpc" {
   enable_dns_support   = true
 
   tags = {
-    Name = "${var.service_base_name}-ssn-vpc"
+    Name                           = local.ssn_vpc_name
+    "${local.billing_tag[0]}"      = local.billing_tag[1]
+    "${var.tag_resource_id}"       = "${var.service_base_name}:${local.ssn_vpc_name}"
+    "${var.service_base_name}-Tag" = local.ssn_vpc_name
   }
 }
 
@@ -36,7 +51,10 @@ resource "aws_internet_gateway" "ssn_k8s_igw" {
   vpc_id = aws_vpc.ssn_k8s_vpc.0.id
 
   tags = {
-    Name = "${var.service_base_name}-ssn-igw"
+    Name                           = local.ssn_igw_name
+    "${local.billing_tag[0]}"      = local.billing_tag[1]
+    "${var.tag_resource_id}"       = "${var.service_base_name}:${local.ssn_igw_name}"
+    "${var.service_base_name}-Tag" = local.ssn_igw_name
   }
 }
 
@@ -59,7 +77,10 @@ resource "aws_subnet" "ssn_k8s_subnet_a" {
   map_public_ip_on_launch = true
 
   tags = {
-    Name = "${var.service_base_name}-ssn-subnet-az-a"
+    Name                           = local.ssn_subnet_a_name
+    "${local.billing_tag[0]}"      = local.billing_tag[1]
+    "${var.tag_resource_id}"       = "${var.service_base_name}:${local.ssn_subnet_a_name}"
+    "${var.service_base_name}-Tag" = local.ssn_subnet_a_name
   }
 }
 
@@ -71,7 +92,10 @@ resource "aws_subnet" "ssn_k8s_subnet_b" {
   map_public_ip_on_launch = true
 
   tags = {
-    Name = "${var.service_base_name}-ssn-subnet-az-b"
+    Name                           = local.ssn_subnet_b_name
+    "${local.billing_tag[0]}"      = local.billing_tag[1]
+    "${var.tag_resource_id}"       = "${var.service_base_name}:${local.ssn_subnet_b_name}"
+    "${var.service_base_name}-Tag" = local.ssn_subnet_b_name
   }
 }
 
@@ -83,7 +107,10 @@ resource "aws_subnet" "ssn_k8s_subnet_c" {
   map_public_ip_on_launch = true
 
   tags = {
-    Name = "${var.service_base_name}-ssn-subnet-az-c"
+    Name                           = local.ssn_subnet_c_name
+    "${local.billing_tag[0]}"      = local.billing_tag[1]
+    "${var.tag_resource_id}"       = "${var.service_base_name}:${local.ssn_subnet_c_name}"
+    "${var.service_base_name}-Tag" = local.ssn_subnet_c_name
   }
 }
 
@@ -103,20 +130,32 @@ data "aws_subnet" "k8s-subnet-c-data" {
 resource "aws_eip" "k8s-endpoint-eip" {
   vpc      = true
   tags = {
-    Name = "${var.service_base_name}-endpoint-eip"
+    Name                           = local.endpoint_ip_name
+    "${local.billing_tag[0]}"      = local.billing_tag[1]
+    "${var.tag_resource_id}"       = "${var.service_base_name}:${local.endpoint_ip_name}"
+    "${var.service_base_name}-Tag" = local.endpoint_ip_name
   }
 }
 
 resource "aws_route_table" "ssn-k8s-users-route-table" {
   vpc_id = data.aws_vpc.ssn_k8s_vpc_data.id
   tags = {
+    Name                           = local.endpoint_rt_name
     "${var.service_base_name}-Tag" = var.service_base_name
+    "${local.billing_tag[0]}"      = local.billing_tag[1]
+    "${var.tag_resource_id}"       = "${var.service_base_name}:${local.endpoint_rt_name}"
   }
 }
 
 resource "aws_vpc_endpoint" "ssn-k8s-users-s3-endpoint" {
   vpc_id       = data.aws_vpc.ssn_k8s_vpc_data.id
   service_name = "com.amazonaws.${var.region}.s3"
+  tags = {
+    Name                           = local.endpoint_s3_name
+    "${local.billing_tag[0]}"      = local.billing_tag[1]
+    "${var.tag_resource_id}"       = "${var.service_base_name}:${local.endpoint_s3_name}"
+    "${var.service_base_name}-Tag" = local.endpoint_s3_name
+  }
 }
 
 resource "aws_vpc_endpoint_route_table_association" "ssn-k8s-users-s3-route" {


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org