c12s-kubespray/contrib/terraform/aws
2017-03-20 12:08:17 +01:00
..
docs Rewrote AWS Terraform for Kargo 2017-03-06 12:52:02 +01:00
modules Fixes for AWS Terraform Deployment 2017-03-20 12:08:17 +01:00
templates Rewrote AWS Terraform for Kargo 2017-03-06 12:52:02 +01:00
.gitignore Rewrote AWS Terraform for Kargo 2017-03-06 12:52:02 +01:00
create-infrastructure.tf Rewrote AWS Terraform for Kargo 2017-03-06 12:52:02 +01:00
credentials.tfvars.example Rewrote AWS Terraform for Kargo 2017-03-06 12:52:02 +01:00
output.tf Rewrote AWS Terraform for Kargo 2017-03-06 12:52:02 +01:00
README.md Rewrote AWS Terraform for Kargo 2017-03-06 12:52:02 +01:00
terraform.tfvars Fixes for AWS Terraform Deployment 2017-03-20 12:08:17 +01:00
terraform.tfvars.example Fixes for AWS Terraform Deployment 2017-03-20 12:08:17 +01:00
variables.tf Fixes for AWS Terraform Deployment 2017-03-20 12:08:17 +01:00

Kubernetes on AWS with Terraform

Overview:

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

Requirements

  • Terraform 0.8.7 or newer

How to Use:

  • Export the variables for your AWS credentials or edit credentials.tfvars:
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 -var-file="credentials.tfvars" or terraform apply depending if you exported your AWS credentials

  • Once the infrastructure is created, you can run the kargo playbooks and supply inventory/hosts with the -i flag.

Architecture

Pictured is an AWS Infrastructure created with this Terraform project distributed over two Availability Zones.

AWS Infrastructure with Terraform