diff --git a/ansible/hosts/ec2.ini b/ansible/hosts/ec2.ini index 204900d..5dace96 100644 --- a/ansible/hosts/ec2.ini +++ b/ansible/hosts/ec2.ini @@ -25,15 +25,15 @@ regions = ap-northeast-2 # address, and should set this to 'private_dns_name'. The key of an EC2 tag # may optionally be used; however the boto instance variables hold precedence # in the event of a collision. -#destination_varie = public_dns_name +#destination_variable = public_dns_name destination_variable = ip_address # This allows you to override the inventory_name with an ec2 variable, instead # of using the destination_variable above. Addressing (aka ansible_ssh_host) # will still use destination_variable. Tags should be written as 'tag_TAGNAME'. #hostname_variable = tag_Name -hostname_variable = tag_ansibleNodeName - +#hostname_variable = tag_ansibleNodeName +hostname_variable = private_dns_name # For server inside a VPC, using DNS names may not make sense. When an instance # has 'subnet_id' set, this variable is used. If the subnet is public, setting # this to 'ip_address' will return the public IP address. For instances in a diff --git a/ansible/hosts/group_vars/all/all.yml b/ansible/hosts/group_vars/all/all.yml index 6e835ca..9fae1b1 100644 --- a/ansible/hosts/group_vars/all/all.yml +++ b/ansible/hosts/group_vars/all/all.yml @@ -44,7 +44,7 @@ bin_dir: /usr/local/bin ## like you would do when using nova-client before starting the playbook. ## Note: The 'external' cloud provider is not supported. ## TODO(riverzhang): https://kubernetes.io/docs/tasks/administer-cluster/running-cloud-controller/#running-cloud-controller-manager -#cloud_provider: +cloud_provider: aws ## kubeadm deployment mode kubeadm_enabled: true diff --git a/terraform/1-vpc.tf b/terraform/1-vpc.tf index 02a1f2e..010d3f4 100644 --- a/terraform/1-vpc.tf +++ b/terraform/1-vpc.tf @@ -6,10 +6,13 @@ resource "aws_vpc" "kubernetes" { cidr_block = "${var.vpc_cidr}" enable_dns_hostnames = true - tags { - Name = "${var.vpc_name}" - Owner = "${var.owner}" - } + tags = "${merge( + local.common_tags, + map( + "Name", "${var.vpc_name}", + "Owner", "${var.owner}" + ) + )}" } # DHCP Options are not actually required, being identical to the Default Option Set @@ -17,10 +20,13 @@ resource "aws_vpc_dhcp_options" "dns_resolver" { domain_name = "${var.region}.compute.internal" domain_name_servers = ["AmazonProvidedDNS"] - tags { - Name = "${var.vpc_name}" - Owner = "${var.owner}" - } + tags = "${merge( + local.common_tags, + map( + "Name", "${var.vpc_name}", + "Owner", "${var.owner}" + ) + )}" } resource "aws_vpc_dhcp_options_association" "dns_resolver" { @@ -48,18 +54,25 @@ resource "aws_subnet" "kubernetes" { cidr_block = "${var.vpc_cidr}" availability_zone = "${var.zone}" - tags { - Name = "kubernetes" - Owner = "${var.owner}" - } + tags = "${merge( + local.common_tags, + map( + "Name", "kubernetes", + "Owner", "${var.owner}" + ) + )}" } resource "aws_internet_gateway" "gw" { vpc_id = "${aws_vpc.kubernetes.id}" - tags { - Name = "kubernetes" - Owner = "${var.owner}" - } + + tags = "${merge( + local.common_tags, + map( + "Name", "kubernetes", + "Owner", "${var.owner}" + ) + )}" } ############ @@ -67,18 +80,21 @@ resource "aws_internet_gateway" "gw" { ############ resource "aws_route_table" "kubernetes" { - vpc_id = "${aws_vpc.kubernetes.id}" - - # Default route through Internet Gateway - route { - cidr_block = "0.0.0.0/0" - gateway_id = "${aws_internet_gateway.gw.id}" - } - - tags { - Name = "kubernetes" - Owner = "${var.owner}" - } + vpc_id = "${aws_vpc.kubernetes.id}" + + # Default route through Internet Gateway + route { + cidr_block = "0.0.0.0/0" + gateway_id = "${aws_internet_gateway.gw.id}" + } + + tags = "${merge( + local.common_tags, + map( + "Name", "kubernetes", + "Owner", "${var.owner}" + ) + )}" } resource "aws_route_table_association" "kubernetes" { @@ -135,8 +151,11 @@ resource "aws_security_group" "kubernetes" { cidr_blocks = ["${var.control_cidr}"] } - tags { - Owner = "${var.owner}" - Name = "kubernetes" - } + tags = "${merge( + local.common_tags, + map( + "Name", "kubernetes", + "Owner", "${var.owner}" + ) + )}" } diff --git a/terraform/2-etcd.tf b/terraform/2-etcd.tf index 51a5cca..53e33c9 100644 --- a/terraform/2-etcd.tf +++ b/terraform/2-etcd.tf @@ -15,12 +15,14 @@ resource "aws_instance" "etcd" { availability_zone = "${var.zone}" vpc_security_group_ids = ["${aws_security_group.kubernetes.id}"] key_name = "${var.default_keypair_name}" - - tags { - Owner = "${var.owner}" - Name = "etcd-${count.index}" - ansibleFilter = "${var.ansibleFilter}" - ansibleNodeType = "etcd" - ansibleNodeName = "etcd.${count.index}" - } + tags = "${merge( + local.common_tags, + map( + "Owner", "${var.owner}", + "Name", "etcd-${count.index}", + "ansibleFilter", "${var.ansibleFilter}", + "ansibleNodeType", "etcd", + "ansibleNodeName", "etcd.${count.index}" + ) + )}" } diff --git a/terraform/3-workers.tf b/terraform/3-workers.tf index 93018c3..e0ed29a 100644 --- a/terraform/3-workers.tf +++ b/terraform/3-workers.tf @@ -8,6 +8,8 @@ resource "aws_instance" "worker" { ami = "${lookup(var.amis, var.region)}" instance_type = "${var.worker_instance_type}" + iam_instance_profile = "${aws_iam_instance_profile.kubernetes.id}" + subnet_id = "${aws_subnet.kubernetes.id}" private_ip = "${cidrhost(var.vpc_cidr, 30 + count.index)}" associate_public_ip_address = true # Instances have public, dynamic IP @@ -17,13 +19,16 @@ resource "aws_instance" "worker" { vpc_security_group_ids = ["${aws_security_group.kubernetes.id}"] key_name = "${var.default_keypair_name}" - tags { - Owner = "${var.owner}" - Name = "worker-${count.index}" - ansibleFilter = "${var.ansibleFilter}" - ansibleNodeType = "worker" - ansibleNodeName = "worker.${count.index}" - } + tags = "${merge( + local.common_tags, + map( + "Owner", "${var.owner}", + "Name", "worker-${count.index}", + "ansibleFilter", "${var.ansibleFilter}", + "ansibleNodeType", "worker", + "ansibleNodeName", "worker.${count.index}" + ) + )}" } output "kubernetes_workers_public_ip" { diff --git a/terraform/4-controllers.tf b/terraform/4-controllers.tf index 586df1b..cd8a516 100644 --- a/terraform/4-controllers.tf +++ b/terraform/4-controllers.tf @@ -17,14 +17,16 @@ resource "aws_instance" "controller" { availability_zone = "${var.zone}" vpc_security_group_ids = ["${aws_security_group.kubernetes.id}"] key_name = "${var.default_keypair_name}" - - tags { - Owner = "${var.owner}" - Name = "controller-${count.index}" - ansibleFilter = "${var.ansibleFilter}" - ansibleNodeType = "controller" - ansibleNodeName = "controller.${count.index}" - } + tags = "${merge( + local.common_tags, + map( + "Owner", "${var.owner}", + "Name", "controller-${count.index}", + "ansibleFilter", "${var.ansibleFilter}", + "ansibleNodeType", "controller", + "ansibleNodeName", "controller.${count.index}" + ) + )}" } resource "aws_instance" "controller_etcd" { @@ -43,13 +45,16 @@ resource "aws_instance" "controller_etcd" { vpc_security_group_ids = ["${aws_security_group.kubernetes.id}"] key_name = "${var.default_keypair_name}" - tags { - Owner = "${var.owner}" - Name = "controller-etcd-${count.index}" - ansibleFilter = "${var.ansibleFilter}" - ansibleNodeType = "controller.etcd" - ansibleNodeName = "controller.etcd.${count.index}" - } + tags = "${merge( + local.common_tags, + map( + "Owner", "${var.owner}", + "Name", "controller-etcd-${count.index}", + "ansibleFilter", "${var.ansibleFilter}", + "ansibleNodeType", "controller.etcd", + "ansibleNodeName", "controller.etcd.${count.index}" + ) + )}" } ############################### @@ -79,10 +84,13 @@ resource "aws_elb" "kubernetes_api" { interval = 30 } - tags { - Name = "kubernetes" - Owner = "${var.owner}" - } + tags = "${merge( + local.common_tags, + map( + "Name", "kubernetes", + "Owner", "${var.owner}" + ) + )}" } ############ @@ -109,10 +117,13 @@ resource "aws_security_group" "kubernetes_api" { cidr_blocks = ["0.0.0.0/0"] } - tags { - Owner = "${var.owner}" - Name = "kubernetes-api" - } + tags = "${merge( + local.common_tags, + map( + "Name", "kubernetes-api", + "Owner", "${var.owner}" + ) + )}" } ############