title | description |
---|---|
Terraform module to create AWS VPC resources Create by Tia |
Learn to use Terraform Public Modules |
Terraform module which creates VPC resources on AWS.
provider "aws" {
region = local.region
}
terraform {
required_version = ">= 1.0.0"
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 4.0"
}
}
}
# terraform {
# backend "s3" {
# bucket = ""
# dynamodb_table = ""
# key = ""
# region = ""
# }
# }
locals {
region = "us-east-1"
cluster_name = "2560-dev-del"
# cidr_block = "10.0.0.0/16"
cidr_block = "10.10.0.0/16"
availability_zones = [
"us-east-1a",
"us-east-1b",
"us-east-1c"
]
tags = {
"id" = "2560"
"owner" = "DevOps Easy Learning"
"teams" = "DEL"
"environment" = "dev"
"project" = "del"
"create_by" = "Terraform"
"cloud_provider" = "aws"
}
}
module "vpc-module" {
source = "devopstia/vpc-module/aws"
version = "1.1.0"
cidr_block = local.cidr_block
region = local.region
availability_zones = local.availability_zones
cluster_name = local.cluster_name
tags = local.tags
}
provider "aws" {
region = local.region
}
terraform {
required_version = ">= 1.0.0"
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 4.0"
}
}
}
# terraform {
# backend "s3" {
# bucket = ""
# dynamodb_table = ""
# key = ""
# region = ""
# }
# }
locals {
region = "us-east-1"
cluster_name = "2560-dev-del"
# cidr_block = "10.0.0.0/16"
cidr_block = "10.10.0.0/16"
availability_zones = [
"us-east-1a",
"us-east-1b",
"us-east-1c"
]
tags = {
"id" = "2560"
"owner" = "DevOps Easy Learning"
"teams" = "DEL"
"environment" = "dev"
"project" = "del"
"create_by" = "Terraform"
"cloud_provider" = "aws"
}
}
module "vpc" {
source = "../../modules/vpc"
cidr_block = local.cidr_block
region = local.region
availability_zones = local.availability_zones
cluster_name = local.cluster_name
tags = local.tags
}
- You must use ssh key to authentication if it is a private repository
provider "aws" {
region = local.region
}
terraform {
required_version = ">= 1.0.0"
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 4.0"
}
}
}
# terraform {
# backend "s3" {
# bucket = ""
# dynamodb_table = ""
# key = ""
# region = ""
# }
# }
locals {
region = "us-east-1"
cluster_name = "2560-dev-del"
# cidr_block = "10.0.0.0/16"
cidr_block = "10.10.0.0/16"
availability_zones = [
"us-east-1a",
"us-east-1b",
"us-east-1c"
]
tags = {
"id" = "2560"
"owner" = "DevOps Easy Learning"
"teams" = "DEL"
"environment" = "dev"
"project" = "del"
"create_by" = "Terraform"
"cloud_provider" = "aws"
}
}
module "vpc" {
source = "git::ssh://[email protected]/devopstia/terraform-course-del.git//aws-terraform/modules/vpc?ref=main"
cidr_block = local.cidr_block
region = local.region
availability_zones = local.availability_zones
cluster_name = local.cluster_name
tags = local.tags
}
- You must use token to authentication if it is a private repository
provider "aws" {
region = local.region
}
terraform {
required_version = ">= 1.0.0"
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 4.0"
}
}
}
# terraform {
# backend "s3" {
# bucket = ""
# dynamodb_table = ""
# key = ""
# region = ""
# }
# }
locals {
region = "us-east-1"
cluster_name = "2560-dev-del"
# cidr_block = "10.0.0.0/16"
cidr_block = "10.10.0.0/16"
availability_zones = [
"us-east-1a",
"us-east-1b",
"us-east-1c"
]
tags = {
"id" = "2560"
"owner" = "DevOps Easy Learning"
"teams" = "DEL"
"environment" = "dev"
"project" = "del"
"create_by" = "Terraform"
"cloud_provider" = "aws"
}
}
module "vpc" {
source = "git::https://[email protected]/devopstia/terraform-course-del.git//aws-terraform/modules/vpc?ref=main"
cidr_block = local.cidr_block
region = local.region
availability_zones = local.availability_zones
cluster_name = local.cluster_name
tags = local.tags
}
- add the below tags if you are using the default VPC so that the aws-load-balancer-controller can discover the subnets
- This should be perfect for all public subnet for default vpc: "kubernetes.io/role/elb" = 1
public_subnet_tags = {
"kubernetes.io/role/elb" = 1
}
private_subnet_tags = {
"kubernetes.io/role/internal-elb" = 1
}
kubernetes.io/cluster/2560-dev-dev = shared
kubernetes.io/role/elb = 1
kubernetes.io/cluster/2560-dev-dev = shared
kubernetes.io/role/internal-elb = 1
tags = merge(var.tags, {
Name = format("%s-%s-%s-public-subnet-${count.index + 1}-${element(var.availability_zones, count.index)}", var.tags["id"], var.tags["environment"], var.tags["project"])
"kubernetes.io/role/internal-elb" = "1"
"kubernetes.io/cluster/${var.cluster_name}" = "shared"
},
)
kubernetes.io/role/internal-elb = 1
kubernetes.io/cluster/2560-dev-del = shared