in cdk/cdk-domainless-mode/cdk/cdk_stack.py [0:0]
def init_vpc(self, prefix_list: str, key_pair_name: str, stack_name: str):
vpc_name = stack_name + "-vpc"
# Define the VPC
self.vpc = ec2.Vpc(
self,
id=vpc_name,
ip_addresses=ec2.IpAddresses.cidr("10.0.0.0/16"),
vpc_name=vpc_name, # Move vpc_name before cidr
max_azs=2, # Number of Availability Zones to use
subnet_configuration=[
ec2.SubnetConfiguration(
cidr_mask=24, # Subnet mask for public subnets
name="SubnetConfig1",
subnet_type=ec2.SubnetType.PUBLIC,
),
ec2.SubnetConfiguration(
cidr_mask=24, # Subnet mask for public subnets
name="SubnetConfig2",
subnet_type=ec2.SubnetType.PUBLIC,
)
],
)
# get AWS availability zones in the region
availability_zones = self.availability_zones
# get first availability zone
first_availability_zone = availability_zones[0]
# get second availability zone
second_availability_zone = availability_zones[1]
# Create two subnets in the VPC
self.subnet_1 = self.vpc.public_subnets[0]
self.subnet_2 = self.vpc.public_subnets[1]
self.subnets = [self.subnet_1, self.subnet_2]
self.security_group = ec2.SecurityGroup(self,
vpc=self.vpc,
allow_all_outbound=True,
description=stack_name + "-Security Group",
id=stack_name + "-SecurityGroup"
)
self.prefix_list = ec2.Peer.prefix_list(prefix_list)
self.security_group.add_ingress_rule (self.prefix_list,
ec2.Port.all_traffic())
self.security_group.add_ingress_rule(
peer=self.security_group,
connection=ec2.Port.all_traffic(),
description="Allow all traffic from self"
)
# Import existing keypair using keyname
self.key_pair = ec2.KeyPair.from_key_pair_name(self, "KeyPair", key_pair_name)
return