mirror of https://github.com/pulumi/pulumi.git
67 lines
3.0 KiB
Puppet
67 lines
3.0 KiB
Puppet
config "azs" "list(string)" {
|
|
default = []
|
|
description = "A list of availability zones names or ids in the region"
|
|
}
|
|
|
|
config "publicSubnetIpv6Prefixes" "list(string)" {
|
|
default = []
|
|
description = "Assigns IPv6 public subnet id based on the Amazon provided /56 prefix base 10 integer (0-256). Must be of equal length to the corresponding IPv4 subnet list"
|
|
}
|
|
config "oneNatGatewayPerAz" "bool" {
|
|
default = false
|
|
description = "Should be true if you want only one NAT Gateway per availability zone. Requires `var.azs` to be set, and the number of `public_subnets` created to be greater than or equal to the number of availability zones specified in `var.azs`"
|
|
}
|
|
|
|
config "enableIpv6" "bool" {
|
|
default = false
|
|
description = "Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length for the VPC. You cannot specify the range of IP addresses, or the size of the CIDR block"
|
|
}
|
|
|
|
config "publicSubnetIpv6Native" "bool" {
|
|
default = false
|
|
description = "Indicates whether to create an IPv6-only subnet. Default: `false`"
|
|
}
|
|
|
|
config "publicSubnetEnableDns64" "bool" {
|
|
default = true
|
|
description = "Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4-only destinations. Default: `true`"
|
|
}
|
|
|
|
config "publicSubnetAssignIpv6AddressOnCreation" "bool" {
|
|
default = false
|
|
description = "Specify true to indicate that network interfaces created in the specified subnet should be assigned an IPv6 address. Default is `false`"
|
|
}
|
|
|
|
config "publicSubnetEnableResourceNameDnsAaaaRecordOnLaunch" "bool" {
|
|
default = true
|
|
description = "Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA records. Default: `true`"
|
|
}
|
|
|
|
config "publicSubnetEnableResourceNameDnsARecordOnLaunch" "bool" {
|
|
default = false
|
|
description = "Indicates whether to respond to DNS queries for instance hostnames with DNS A records. Default: `false`"
|
|
}
|
|
|
|
lenPublicSubnets = invoke("std:index:max", {
|
|
input = [1, 2, 3]
|
|
}).result
|
|
|
|
resource "currentVpc" "aws:ec2/vpc:Vpc" {}
|
|
|
|
createPublicSubnets = true
|
|
resource "publicSubnet" "aws:ec2/subnet:Subnet" {
|
|
options {
|
|
range = createPublicSubnets && (!oneNatGatewayPerAz || lenPublicSubnets >= length(azs)) ? lenPublicSubnets : 0
|
|
}
|
|
assignIpv6AddressOnCreation = enableIpv6 && publicSubnetIpv6Native ? true : publicSubnetAssignIpv6AddressOnCreation
|
|
enableDns64 = enableIpv6 && publicSubnetEnableDns64
|
|
enableResourceNameDnsAaaaRecordOnLaunch = enableIpv6 && publicSubnetEnableResourceNameDnsAaaaRecordOnLaunch
|
|
enableResourceNameDnsARecordOnLaunch = !publicSubnetIpv6Native && publicSubnetEnableResourceNameDnsARecordOnLaunch
|
|
ipv6CidrBlock = enableIpv6 && length(publicSubnetIpv6Prefixes) > 0 ? invoke("std:index:cidrsubnet", {
|
|
input = currentVpc.ipv6CidrBlock
|
|
newbits = 8
|
|
netnum = publicSubnetIpv6Prefixes[range.value]
|
|
}).result : null
|
|
ipv6Native = enableIpv6 && publicSubnetIpv6Native
|
|
vpcId = currentVpc.id
|
|
} |