github.com/hazelops/ize@v1.1.12-0.20230915191306-97d7c0e48f11/examples/bastion-tunnel-monorepo/.ize/env/testnut/main.tf (about)

     1  resource "aws_key_pair" "root" {
     2    key_name   = var.ec2_key_pair_name
     3    public_key = var.ssh_public_key
     4  
     5    lifecycle {
     6      ignore_changes = [
     7        public_key
     8      ]
     9    }
    10  }
    11  
    12  module "vpc" {
    13    source  = "terraform-aws-modules/vpc/aws"
    14    version = "~> 3.0"
    15  
    16    name = "${var.env}-vpc"
    17    cidr = "10.0.0.0/16"
    18  
    19    azs = [
    20      "us-east-1a"
    21    ]
    22    public_subnets = [
    23      "10.0.1.0/24"
    24    ]
    25  
    26    private_subnets = [
    27      "10.0.2.0/24"
    28    ]
    29  
    30    manage_default_network_acl = true
    31    default_network_acl_name   = "${var.env}-${var.namespace}"
    32  
    33  }
    34  
    35  module "nat_instance" {
    36    source                 = "hazelops/ec2-nat/aws"
    37    version                = "~> 2.0"
    38    enabled                = true
    39    env                    = var.env
    40    vpc_id                 = module.vpc.vpc_id
    41    allowed_cidr_blocks    = [module.vpc.vpc_cidr_block]
    42    public_subnets         = module.vpc.public_subnets
    43    private_route_table_id = module.vpc.private_route_table_ids[0]
    44    ec2_key_pair_name      = local.key_name
    45  }
    46  
    47  resource "aws_security_group" "default_permissive" {
    48    name        = "${var.env}-default-permissive"
    49    vpc_id      = module.vpc.vpc_id
    50    description = "Managed by Terraform"
    51  
    52    ingress {
    53      protocol    = -1
    54      from_port   = 0
    55      to_port     = 0
    56      cidr_blocks = ["0.0.0.0/0"]
    57    }
    58  
    59    egress {
    60      protocol    = -1
    61      from_port   = 0
    62      to_port     = 0
    63      cidr_blocks = ["0.0.0.0/0"]
    64    }
    65  
    66    tags = {
    67      Terraform = "true"
    68      Env       = var.env
    69      Name      = "${var.env}-default-permissive"
    70    }
    71  }
    72  
    73  module "ec2_profile" {
    74    source      = "terraform-aws-modules/ecs/aws//modules/ecs-instance-profile"
    75    version     = "~> 2.0"
    76    name        = "${var.env}-${var.namespace}"
    77    include_ssm = true
    78  }
    79  
    80  module "bastion" {
    81    source  = "hazelops/ec2-openvpn-connector/aws"
    82    version = "~>0.2"
    83  
    84    vpn_enabled         = false
    85    env                 = var.env
    86    vpc_id              = module.vpc.vpc_id
    87    allowed_cidr_blocks = [module.vpc.vpc_cidr_block]
    88    private_subnets     = module.vpc.private_subnets
    89    ec2_key_pair_name   = local.key_name
    90    ssh_forward_rules = [
    91      "LocalForward 32084 info.cern.ch:80"
    92    ]
    93  }