Initial commit

This commit is contained in:
mr-vercetti
2022-08-24 14:14:42 +02:00
parent c1e58f922e
commit 180ae13b94
12 changed files with 293 additions and 0 deletions

46
prod/main.tf Executable file
View File

@ -0,0 +1,46 @@
provider "aws" {
profile = "default"
region = var.REGION
}
# Create VPC with NAT Gateway and route tables
module "vpc" {
source = "terraform-aws-modules/vpc/aws"
version = "3.14.2"
name = var.DEMO_VPC_NAME
cidr = var.DEMO_VPC_CIDR
azs = var.DEMO_VPC_AVAILABILITY_ZONES
private_subnets = var.DEMO_VPC_PRIVATE_SUBNET_CIDRS
public_subnets = var.DEMO_VPC_PUBLIC_SUBNET_CIDRS
enable_nat_gateway = true
single_nat_gateway = true
one_nat_gateway_per_az = false
tags = {
Terraform = "true"
Project = var.PROJECT_TAG
}
}
# Get VPC data
module "vpc_data" {
depends_on = [module.vpc]
source = "../modules/vpc_data"
VPC_NAME = var.DEMO_VPC_NAME
BASTION_HOST_AZ = var.DEMO_BASTION_HOST_AZ
}
# Create bastion host
module "bastion_host" {
source = "../modules/bastion_host"
VPC_ID = module.vpc_data.vpc.id
SUBNET_ID = module.vpc_data.bastion_host_subnet.id
INSTANCE_TYPE = var.DEMO_BASTION_HOST_TYPE
INSTANCE_NAME = var.DEMO_BASTION_HOST_NAME
KEY_NAME = var.DEMO_BASTION_HOST_KEY_NAME
}

23
prod/outputs.tf Executable file
View File

@ -0,0 +1,23 @@
output "demo_vpc_id" {
value = module.vpc_data.vpc.id
}
output "public_subnets" {
value = module.vpc_data.public_subnets.ids
}
output "private_subnets" {
value = module.vpc_data.private_subnets.ids
}
output "demo_bastion_host_subnet_id" {
value = module.vpc_data.bastion_host_subnet.id
}
output "demo_bastion_host_private_ip" {
value = module.bastion_host.bastion_host_private_ip
}
output "demo_bastion_host_public_ip" {
value = module.bastion_host.bastion_host_public_ip
}

49
prod/variables.tf Executable file
View File

@ -0,0 +1,49 @@
# General
variable "REGION" {
type = string
default = "eu-west-3"
}
variable "PROJECT_TAG" {
type = string
}
# DEMO_VPC (network, network_data)
variable "DEMO_VPC_NAME" {
type = string
}
variable "DEMO_VPC_CIDR" {
type = string
default = "10.0.0.0/24"
}
variable "DEMO_VPC_AVAILABILITY_ZONES" {
type = list(string)
}
variable "DEMO_VPC_PRIVATE_SUBNET_CIDRS" {
type = list(string)
}
variable "DEMO_VPC_PUBLIC_SUBNET_CIDRS" {
type = list(string)
}
# Bastion host (bastion_host)
variable "DEMO_BASTION_HOST_TYPE" {
type = string
default = "t2.micro"
}
variable "DEMO_BASTION_HOST_NAME" {
type = string
}
variable "DEMO_BASTION_HOST_KEY_NAME" {
type = string
}
variable "DEMO_BASTION_HOST_AZ" {
type = string
}

8
prod/versions.tf Executable file
View File

@ -0,0 +1,8 @@
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 3"
}
}
}