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