Skip to content

Commit

Permalink
Fix many things, including AWS compatibilities.
Browse files Browse the repository at this point in the history
  • Loading branch information
alicek106 committed Mar 24, 2019
1 parent beaf4db commit 07329c4
Show file tree
Hide file tree
Showing 6 changed files with 111 additions and 74 deletions.
6 changes: 3 additions & 3 deletions ansible/hosts/ec2.ini
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion ansible/hosts/group_vars/all/all.yml
Expand Up @@ -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
Expand Down
83 changes: 51 additions & 32 deletions terraform/1-vpc.tf
Expand Up @@ -6,21 +6,27 @@ 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
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" {
Expand Down Expand Up @@ -48,37 +54,47 @@ 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}"
)
)}"
}

############
## Routing
############

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" {
Expand Down Expand Up @@ -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}"
)
)}"
}
18 changes: 10 additions & 8 deletions terraform/2-etcd.tf
Expand Up @@ -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}"
)
)}"
}
19 changes: 12 additions & 7 deletions terraform/3-workers.tf
Expand Up @@ -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
Expand All @@ -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" {
Expand Down
57 changes: 34 additions & 23 deletions terraform/4-controllers.tf
Expand Up @@ -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" {
Expand All @@ -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}"
)
)}"
}

###############################
Expand Down Expand Up @@ -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}"
)
)}"
}

############
Expand All @@ -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}"
)
)}"
}

############
Expand Down

0 comments on commit 07329c4

Please sign in to comment.