From 3c6b1480b806bcf8ac77e87a9cba0a637c04fe6d Mon Sep 17 00:00:00 2001 From: Vincent Schwarzer Date: Wed, 1 Mar 2017 18:25:58 +0100 Subject: [PATCH] Rewrote AWS Terraform for Kargo Rewrote AWS Terraform deployment for AWS Kargo. It supports now multiple Availability Zones, AWS Loadbalancer for Kubernetes API, Bastion Host, ... For more information see README --- contrib/terraform/aws/.gitignore | 2 +- .../terraform/aws/00-create-infrastructure.tf | 261 ------------------ contrib/terraform/aws/01-create-inventory.tf | 37 --- contrib/terraform/aws/README.md | 29 +- .../terraform/aws/create-infrastructure.tf | 185 +++++++++++++ .../terraform/aws/credentials.tfvars.example | 8 + contrib/terraform/aws/docs/aws_kargo.png | Bin 0 -> 116455 bytes contrib/terraform/aws/modules/elb/main.tf | 50 ++++ contrib/terraform/aws/modules/elb/outputs.tf | 7 + .../terraform/aws/modules/elb/variables.tf | 28 ++ contrib/terraform/aws/modules/iam/main.tf | 138 +++++++++ contrib/terraform/aws/modules/iam/outputs.tf | 7 + .../terraform/aws/modules/iam/variables.tf | 3 + contrib/terraform/aws/modules/vpc/main.tf | 138 +++++++++ contrib/terraform/aws/modules/vpc/outputs.tf | 16 ++ .../terraform/aws/modules/vpc/variables.tf | 24 ++ contrib/terraform/aws/output.tf | 20 ++ contrib/terraform/aws/templates/inventory.tpl | 27 ++ contrib/terraform/aws/terraform.tfvars | 44 +-- contrib/terraform/aws/variables.tf | 97 +++++++ 20 files changed, 794 insertions(+), 327 deletions(-) delete mode 100755 contrib/terraform/aws/00-create-infrastructure.tf delete mode 100755 contrib/terraform/aws/01-create-inventory.tf create mode 100644 contrib/terraform/aws/create-infrastructure.tf create mode 100644 contrib/terraform/aws/credentials.tfvars.example create mode 100644 contrib/terraform/aws/docs/aws_kargo.png create mode 100644 contrib/terraform/aws/modules/elb/main.tf create mode 100644 contrib/terraform/aws/modules/elb/outputs.tf create mode 100644 contrib/terraform/aws/modules/elb/variables.tf create mode 100644 contrib/terraform/aws/modules/iam/main.tf create mode 100644 contrib/terraform/aws/modules/iam/outputs.tf create mode 100644 contrib/terraform/aws/modules/iam/variables.tf create mode 100644 contrib/terraform/aws/modules/vpc/main.tf create mode 100644 contrib/terraform/aws/modules/vpc/outputs.tf create mode 100644 contrib/terraform/aws/modules/vpc/variables.tf create mode 100644 contrib/terraform/aws/output.tf create mode 100644 contrib/terraform/aws/templates/inventory.tpl create mode 100644 contrib/terraform/aws/variables.tf diff --git a/contrib/terraform/aws/.gitignore b/contrib/terraform/aws/.gitignore index 28901e146..84fcb5821 100644 --- a/contrib/terraform/aws/.gitignore +++ b/contrib/terraform/aws/.gitignore @@ -1,2 +1,2 @@ *.tfstate* -inventory +.terraform diff --git a/contrib/terraform/aws/00-create-infrastructure.tf b/contrib/terraform/aws/00-create-infrastructure.tf deleted file mode 100755 index 09cfac37c..000000000 --- a/contrib/terraform/aws/00-create-infrastructure.tf +++ /dev/null @@ -1,261 +0,0 @@ -variable "deploymentName" { - type = "string" - description = "The desired name of your deployment." -} - -variable "numControllers"{ - type = "string" - description = "Desired # of controllers." -} - -variable "numEtcd" { - type = "string" - description = "Desired # of etcd nodes. Should be an odd number." -} - -variable "numNodes" { - type = "string" - description = "Desired # of nodes." -} - -variable "volSizeController" { - type = "string" - description = "Volume size for the controllers (GB)." -} - -variable "volSizeEtcd" { - type = "string" - description = "Volume size for etcd (GB)." -} - -variable "volSizeNodes" { - type = "string" - description = "Volume size for nodes (GB)." -} - -variable "subnet" { - type = "string" - description = "The subnet in which to put your cluster." -} - -variable "securityGroups" { - type = "string" - description = "The sec. groups in which to put your cluster." -} - -variable "ami"{ - type = "string" - description = "AMI to use for all VMs in cluster." -} - -variable "SSHKey" { - type = "string" - description = "SSH key to use for VMs." -} - -variable "master_instance_type" { - type = "string" - description = "Size of VM to use for masters." -} - -variable "etcd_instance_type" { - type = "string" - description = "Size of VM to use for etcd." -} - -variable "node_instance_type" { - type = "string" - description = "Size of VM to use for nodes." -} - -variable "terminate_protect" { - type = "string" - default = "false" -} - -variable "awsRegion" { - type = "string" -} - -provider "aws" { - region = "${var.awsRegion}" -} - -variable "iam_prefix" { - type = "string" - description = "Prefix name for IAM profiles" -} - -resource "aws_iam_instance_profile" "kubernetes_master_profile" { - name = "${var.iam_prefix}_kubernetes_master_profile" - roles = ["${aws_iam_role.kubernetes_master_role.name}"] -} - -resource "aws_iam_role" "kubernetes_master_role" { - name = "${var.iam_prefix}_kubernetes_master_role" - assume_role_policy = < inventory" - } - provisioner "local-exec" { - command = "echo \"${join("\n",formatlist("%s ansible_ssh_user=%s", aws_instance.master.*.private_ip, var.SSHUser))}\" >> inventory" - } - - ##Create ETCD Inventory - provisioner "local-exec" { - command = "echo \"\n[etcd]\" >> inventory" - } - provisioner "local-exec" { - command = "echo \"${join("\n",formatlist("%s ansible_ssh_user=%s", aws_instance.etcd.*.private_ip, var.SSHUser))}\" >> inventory" - } - - ##Create Nodes Inventory - provisioner "local-exec" { - command = "echo \"\n[kube-node]\" >> inventory" - } - provisioner "local-exec" { - command = "echo \"${join("\n",formatlist("%s ansible_ssh_user=%s", aws_instance.minion.*.private_ip, var.SSHUser))}\" >> inventory" - } - - provisioner "local-exec" { - command = "echo \"\n[k8s-cluster:children]\nkube-node\nkube-master\" >> inventory" - } -} diff --git a/contrib/terraform/aws/README.md b/contrib/terraform/aws/README.md index c7ede59ef..03bc4e23e 100644 --- a/contrib/terraform/aws/README.md +++ b/contrib/terraform/aws/README.md @@ -2,27 +2,34 @@ **Overview:** -- This will create nodes in a VPC inside of AWS +This project will create: +* VPC with Public and Private Subnets in # Availability Zones +* Bastion Hosts and NAT Gateways in the Public Subnet +* A dynamic number of masters, etcd, and worker nodes in the Private Subnet + * even distributed over the # of Availability Zones +* AWS ELB in the Public Subnet for accessing the Kubernetes API from the internet -- A dynamic number of masters, etcd, and nodes can be created - -- These scripts currently expect Private IP connectivity with the nodes that are created. This means that you may need a tunnel to your VPC or to run these scripts from a VM inside the VPC. Will be looking into how to work around this later. +**Requirements** +- Terraform 0.8.7 or newer **How to Use:** -- Export the variables for your Amazon credentials: +- Export the variables for your AWS credentials or edit credentials.tfvars: ``` -export AWS_ACCESS_KEY_ID="xxx" -export AWS_SECRET_ACCESS_KEY="yyy" +export aws_access_key="xxx" +export aws_secret_key="yyy" +export aws_ssh_key_name="zzz" ``` - Update contrib/terraform/aws/terraform.tfvars with your data -- Run with `terraform apply` +- Run with `terraform apply -var-file="credentials.tfvars"` or `terraform apply` depending if you exported your AWS credentials -- Once the infrastructure is created, you can run the kubespray playbooks and supply contrib/terraform/aws/inventory with the `-i` flag. +- Once the infrastructure is created, you can run the kargo playbooks and supply inventory/hosts with the `-i` flag. -**Future Work:** +**Architecture** -- Update the inventory creation file to be something a little more reasonable. It's just a local-exec from Terraform now, using terraform.py or something may make sense in the future. \ No newline at end of file +Pictured is an AWS Infrastructure created with this Terraform project distributed over two Availability Zones. + +![AWS Infrastructure with Terraform ](docs/aws_kargo.png) diff --git a/contrib/terraform/aws/create-infrastructure.tf b/contrib/terraform/aws/create-infrastructure.tf new file mode 100644 index 000000000..14da95492 --- /dev/null +++ b/contrib/terraform/aws/create-infrastructure.tf @@ -0,0 +1,185 @@ +terraform { + required_version = ">= 0.8.7" +} + +provider "aws" { + access_key = "${var.AWS_ACCESS_KEY_ID}" + secret_key = "${var.AWS_SECRET_ACCESS_KEY}" + region = "${var.AWS_DEFAULT_REGION}" +} + +/* +* Calling modules who create the initial AWS VPC / AWS ELB +* and AWS IAM Roles for Kubernetes Deployment +*/ + +module "aws-vpc" { + source = "modules/vpc" + + aws_cluster_name = "${var.aws_cluster_name}" + aws_vpc_cidr_block = "${var.aws_vpc_cidr_block}" + aws_avail_zones="${var.aws_avail_zones}" + + aws_cidr_subnets_private="${var.aws_cidr_subnets_private}" + aws_cidr_subnets_public="${var.aws_cidr_subnets_public}" + +} + + +module "aws-elb" { + source = "modules/elb" + + aws_cluster_name="${var.aws_cluster_name}" + aws_vpc_id="${module.aws-vpc.aws_vpc_id}" + aws_avail_zones="${var.aws_avail_zones}" + aws_subnet_ids_public="${module.aws-vpc.aws_subnet_ids_public}" + aws_elb_api_port = "${var.aws_elb_api_port}" + k8s_secure_api_port = "${var.k8s_secure_api_port}" + +} + +module "aws-iam" { + source = "modules/iam" + + aws_cluster_name="${var.aws_cluster_name}" +} + +/* +* Create Bastion Instances in AWS +* +*/ +resource "aws_instance" "bastion-server" { + ami = "${var.aws_bastion_ami}" + instance_type = "${var.aws_bastion_size}" + count = "${length(var.aws_cidr_subnets_public)}" + associate_public_ip_address = true + availability_zone = "${element(var.aws_avail_zones,count.index)}" + subnet_id = "${element(module.aws-vpc.aws_subnet_ids_public,count.index)}" + + + vpc_security_group_ids = [ "${module.aws-vpc.aws_security_group}" ] + + key_name = "${var.AWS_SSH_KEY_NAME}" + + tags { + Name = "kubernetes-${var.aws_cluster_name}-bastion-${count.index}" + Cluster = "${var.aws_cluster_name}" + Role = "bastion-${var.aws_cluster_name}-${count.index}" + } +} + + +/* +* Create K8s Master and worker nodes and etcd instances +* +*/ + +resource "aws_instance" "k8s-master" { + ami = "${var.aws_cluster_ami}" + instance_type = "${var.aws_kube_master_size}" + + count = "${var.aws_kube_master_num}" + + + availability_zone = "${element(var.aws_avail_zones,count.index)}" + subnet_id = "${element(module.aws-vpc.aws_subnet_ids_private,count.index)}" + + + vpc_security_group_ids = [ "${module.aws-vpc.aws_security_group}" ] + + + iam_instance_profile = "${module.aws-iam.kube-master-profile}" + key_name = "${var.AWS_SSH_KEY_NAME}" + + + tags { + Name = "kubernetes-${var.aws_cluster_name}-master${count.index}" + Cluster = "${var.aws_cluster_name}" + Role = "master" + } +} + +resource "aws_elb_attachment" "attach_master_nodes" { + count = "${var.aws_kube_master_num}" + elb = "${module.aws-elb.aws_elb_api_id}" + instance = "${element(aws_instance.k8s-master.*.id,count.index)}" +} + + +resource "aws_instance" "k8s-etcd" { + ami = "${var.aws_cluster_ami}" + instance_type = "${var.aws_etcd_size}" + + count = "${var.aws_etcd_num}" + + + availability_zone = "${element(var.aws_avail_zones,count.index)}" + subnet_id = "${element(module.aws-vpc.aws_subnet_ids_private,count.index)}" + + + vpc_security_group_ids = [ "${module.aws-vpc.aws_security_group}" ] + + key_name = "${var.AWS_SSH_KEY_NAME}" + + + tags { + Name = "kubernetes-${var.aws_cluster_name}-etcd${count.index}" + Cluster = "${var.aws_cluster_name}" + Role = "etcd" + } + +} + + +resource "aws_instance" "k8s-worker" { + ami = "${var.aws_cluster_ami}" + instance_type = "${var.aws_kube_worker_size}" + + count = "${var.aws_kube_worker_num}" + + availability_zone = "${element(var.aws_avail_zones,count.index)}" + subnet_id = "${element(module.aws-vpc.aws_subnet_ids_private,count.index)}" + + vpc_security_group_ids = [ "${module.aws-vpc.aws_security_group}" ] + + iam_instance_profile = "${module.aws-iam.kube-worker-profile}" + key_name = "${var.AWS_SSH_KEY_NAME}" + + + tags { + Name = "kubernetes-${var.aws_cluster_name}-worker${count.index}" + Cluster = "${var.aws_cluster_name}" + Role = "worker" + } + +} + + + +/* +* Create Kargo Inventory File +* +*/ +data "template_file" "inventory" { + template = "${file("${path.module}/templates/inventory.tpl")}" + + vars { + public_ip_address_bastion = "${join("\n",formatlist("bastion ansible_ssh_host=%s" , aws_instance.bastion-server.*.public_ip))}" + connection_strings_master = "${join("\n",formatlist("%s ansible_ssh_host=%s",aws_instance.k8s-master.*.tags.Name, aws_instance.k8s-master.*.private_ip))}" + connection_strings_node = "${join("\n", formatlist("%s ansible_ssh_host=%s", aws_instance.k8s-worker.*.tags.Name, aws_instance.k8s-worker.*.private_ip))}" + connection_strings_etcd = "${join("\n",formatlist("%s ansible_ssh_host=%s", aws_instance.k8s-etcd.*.tags.Name, aws_instance.k8s-etcd.*.private_ip))}" + list_master = "${join("\n",aws_instance.k8s-master.*.tags.Name)}" + list_node = "${join("\n",aws_instance.k8s-worker.*.tags.Name)}" + list_etcd = "${join("\n",aws_instance.k8s-etcd.*.tags.Name)}" + elb_api_fqdn = "apiserver_loadbalancer_domain_name=\"${module.aws-elb.aws_elb_api_fqdn}\"" + elb_api_port = "loadbalancer_apiserver.port=${var.aws_elb_api_port}" + + } +} + +resource "null_resource" "inventories" { + provisioner "local-exec" { + command = "echo '${data.template_file.inventory.rendered}' > ../../../inventory/hosts" + } + +} diff --git a/contrib/terraform/aws/credentials.tfvars.example b/contrib/terraform/aws/credentials.tfvars.example new file mode 100644 index 000000000..19420c5a7 --- /dev/null +++ b/contrib/terraform/aws/credentials.tfvars.example @@ -0,0 +1,8 @@ +#AWS Access Key +AWS_ACCESS_KEY_ID = "" +#AWS Secret Key +AWS_SECRET_ACCESS_KEY = "" +#EC2 SSH Key Name +AWS_SSH_KEY_NAME = "" +#AWS Region +AWS_DEFAULT_REGION = "eu-central-1" diff --git a/contrib/terraform/aws/docs/aws_kargo.png b/contrib/terraform/aws/docs/aws_kargo.png new file mode 100644 index 0000000000000000000000000000000000000000..40245b845a5094d3cef4500d4f256031329a7b2e GIT binary patch literal 116455 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%0AOMpYg_>;9sAdO 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 F{|6_A8`J;* literal 0 HcmV?d00001 diff --git a/contrib/terraform/aws/modules/elb/main.tf b/contrib/terraform/aws/modules/elb/main.tf new file mode 100644 index 000000000..270e0cb35 --- /dev/null +++ b/contrib/terraform/aws/modules/elb/main.tf @@ -0,0 +1,50 @@ +resource "aws_security_group" "aws-elb" { + name = "kubernetes-${var.aws_cluster_name}-securitygroup-elb" + vpc_id = "${var.aws_vpc_id}" + + tags { + Name = "kubernetes-${var.aws_cluster_name}-securitygroup-elb" + } +} + + +resource "aws_security_group_rule" "aws-allow-api-access" { + type = "ingress" + from_port = "${var.aws_elb_api_port}" + to_port = "${var.k8s_secure_api_port}" + protocol = "TCP" + cidr_blocks = ["0.0.0.0/0"] + security_group_id = "${aws_security_group.aws-elb.id}" +} + + +# Create a new AWS ELB for K8S API +resource "aws_elb" "aws-elb-api" { + name = "kubernetes-elb-${var.aws_cluster_name}" + subnets = ["${var.aws_subnet_ids_public}"] + security_groups = ["${aws_security_group.aws-elb.id}"] + + listener { + instance_port = "${var.k8s_secure_api_port}" + instance_protocol = "tcp" + lb_port = "${var.aws_elb_api_port}" + lb_protocol = "tcp" + } + + health_check { + healthy_threshold = 2 + unhealthy_threshold = 2 + timeout = 3 + target = "HTTP:8080/" + interval = 30 + } + + cross_zone_load_balancing = true + idle_timeout = 400 + connection_draining = true + connection_draining_timeout = 400 + + tags { + Name = "kubernetes-${var.aws_cluster_name}-elb-api" + } +} diff --git a/contrib/terraform/aws/modules/elb/outputs.tf b/contrib/terraform/aws/modules/elb/outputs.tf new file mode 100644 index 000000000..075c751e4 --- /dev/null +++ b/contrib/terraform/aws/modules/elb/outputs.tf @@ -0,0 +1,7 @@ +output "aws_elb_api_id" { + value = "${aws_elb.aws-elb-api.id}" +} + +output "aws_elb_api_fqdn" { + value = "${aws_elb.aws-elb-api.dns_name}" +} diff --git a/contrib/terraform/aws/modules/elb/variables.tf b/contrib/terraform/aws/modules/elb/variables.tf new file mode 100644 index 000000000..c7f86847d --- /dev/null +++ b/contrib/terraform/aws/modules/elb/variables.tf @@ -0,0 +1,28 @@ +variable "aws_cluster_name" { + description = "Name of Cluster" +} + +variable "aws_vpc_id" { + description = "AWS VPC ID" +} + +variable "aws_elb_api_port" { + description = "Port for AWS ELB" +} + +variable "k8s_secure_api_port" { + description = "Secure Port of K8S API Server" +} + + + +variable "aws_avail_zones" { + description = "Availability Zones Used" + type = "list" +} + + +variable "aws_subnet_ids_public" { + description = "IDs of Public Subnets" + type = "list" +} diff --git a/contrib/terraform/aws/modules/iam/main.tf b/contrib/terraform/aws/modules/iam/main.tf new file mode 100644 index 000000000..88da00d90 --- /dev/null +++ b/contrib/terraform/aws/modules/iam/main.tf @@ -0,0 +1,138 @@ +#Add AWS Roles for Kubernetes + +resource "aws_iam_role" "kube-master" { + name = "kubernetes-${var.aws_cluster_name}-master" + assume_role_policy = <