c12s-kubespray/contrib/terraform/aws
Vincent Schwarzer 3c6b1480b8 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
2017-03-06 12:52:02 +01:00
..
docs Rewrote AWS Terraform for Kargo 2017-03-06 12:52:02 +01:00
modules Rewrote AWS Terraform for Kargo 2017-03-06 12:52:02 +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 Rewrote AWS Terraform for Kargo 2017-03-06 12:52:02 +01:00
variables.tf Rewrote AWS Terraform for Kargo 2017-03-06 12:52:02 +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