Merge pull request #13028 from rifelpet/ipv6-tf

Extend terraform support for IPv6
This commit is contained in:
Kubernetes Prow Robot 2022-01-06 17:08:30 -08:00 committed by GitHub
commit 4ffc83d811
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
54 changed files with 110 additions and 74 deletions

View File

@ -1010,7 +1010,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -923,7 +923,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -1245,7 +1245,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -1158,7 +1158,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -806,7 +806,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -906,7 +906,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -1174,7 +1174,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -1547,7 +1547,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -818,7 +818,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -881,7 +881,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -822,7 +822,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -1016,7 +1016,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -1246,7 +1246,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -931,7 +931,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -1081,7 +1081,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -185,7 +185,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -1084,7 +1084,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -891,7 +891,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -883,7 +883,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -877,7 +877,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -839,8 +839,10 @@ resource "aws_security_group_rule" "from-nodes-minimal-example-com-ingress-udp-1
}
resource "aws_subnet" "us-test-1a-minimal-example-com" {
availability_zone = "us-test-1a"
cidr_block = "172.20.32.0/19"
availability_zone = "us-test-1a"
cidr_block = "172.20.32.0/19"
enable_resource_name_dns_a_record_on_launch = true
private_dns_hostname_type_on_launch = "resource-name"
tags = {
"KubernetesCluster" = "minimal.example.com"
"Name" = "us-test-1a.minimal.example.com"
@ -885,7 +887,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -814,7 +814,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -1034,7 +1034,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -1025,7 +1025,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -1072,9 +1072,12 @@ resource "aws_security_group_rule" "icmpv6-pmtu-api-elb-__--0" {
}
resource "aws_subnet" "us-test-1a-minimal-ipv6-example-com" {
availability_zone = "us-test-1a"
cidr_block = "172.20.32.0/19"
ipv6_cidr_block = "2001:db8:0:111::/64"
availability_zone = "us-test-1a"
cidr_block = "172.20.32.0/19"
enable_resource_name_dns_a_record_on_launch = true
enable_resource_name_dns_aaaa_record_on_launch = true
ipv6_cidr_block = "2001:db8:0:111::/64"
private_dns_hostname_type_on_launch = "resource-name"
tags = {
"KubernetesCluster" = "minimal-ipv6.example.com"
"Name" = "us-test-1a.minimal-ipv6.example.com"
@ -1086,9 +1089,12 @@ resource "aws_subnet" "us-test-1a-minimal-ipv6-example-com" {
}
resource "aws_subnet" "us-test-1b-minimal-ipv6-example-com" {
availability_zone = "us-test-1b"
cidr_block = "172.20.64.0/19"
ipv6_cidr_block = "2001:db8:0:112::/64"
availability_zone = "us-test-1b"
cidr_block = "172.20.64.0/19"
enable_resource_name_dns_a_record_on_launch = true
enable_resource_name_dns_aaaa_record_on_launch = true
ipv6_cidr_block = "2001:db8:0:112::/64"
private_dns_hostname_type_on_launch = "resource-name"
tags = {
"KubernetesCluster" = "minimal-ipv6.example.com"
"Name" = "us-test-1b.minimal-ipv6.example.com"
@ -1100,9 +1106,12 @@ resource "aws_subnet" "us-test-1b-minimal-ipv6-example-com" {
}
resource "aws_subnet" "utility-us-test-1a-minimal-ipv6-example-com" {
availability_zone = "us-test-1a"
cidr_block = "172.20.0.0/22"
ipv6_cidr_block = "2001:db8:0:113::/64"
availability_zone = "us-test-1a"
cidr_block = "172.20.0.0/22"
enable_resource_name_dns_a_record_on_launch = true
enable_resource_name_dns_aaaa_record_on_launch = true
ipv6_cidr_block = "2001:db8:0:113::/64"
private_dns_hostname_type_on_launch = "resource-name"
tags = {
"KubernetesCluster" = "minimal-ipv6.example.com"
"Name" = "utility-us-test-1a.minimal-ipv6.example.com"
@ -1114,9 +1123,12 @@ resource "aws_subnet" "utility-us-test-1a-minimal-ipv6-example-com" {
}
resource "aws_subnet" "utility-us-test-1b-minimal-ipv6-example-com" {
availability_zone = "us-test-1b"
cidr_block = "172.20.4.0/22"
ipv6_cidr_block = "2001:db8:0:114::/64"
availability_zone = "us-test-1b"
cidr_block = "172.20.4.0/22"
enable_resource_name_dns_a_record_on_launch = true
enable_resource_name_dns_aaaa_record_on_launch = true
ipv6_cidr_block = "2001:db8:0:114::/64"
private_dns_hostname_type_on_launch = "resource-name"
tags = {
"KubernetesCluster" = "minimal-ipv6.example.com"
"Name" = "utility-us-test-1b.minimal-ipv6.example.com"
@ -1160,7 +1172,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -1017,7 +1017,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -842,7 +842,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -818,7 +818,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -818,7 +818,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -1263,7 +1263,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -1264,7 +1264,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -929,7 +929,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -834,7 +834,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -1186,7 +1186,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -1097,7 +1097,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -1253,7 +1253,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -1252,7 +1252,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -1244,7 +1244,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -1244,7 +1244,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -1276,7 +1276,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -1347,7 +1347,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -1195,7 +1195,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -1244,7 +1244,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -1292,7 +1292,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -1244,7 +1244,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -881,7 +881,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -736,7 +736,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -777,7 +777,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -1154,7 +1154,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -855,7 +855,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -251,7 +251,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}
@ -326,7 +326,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -99,7 +99,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}
@ -186,7 +186,7 @@ terraform {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 3.59.0"
"version" = ">= 3.71.0"
}
}
}

View File

@ -355,11 +355,16 @@ func subnetSlicesEqualIgnoreOrder(l, r []*Subnet) bool {
}
type terraformSubnet struct {
VPCID *terraformWriter.Literal `cty:"vpc_id"`
CIDR *string `cty:"cidr_block"`
IPv6CIDR *string `cty:"ipv6_cidr_block"`
AvailabilityZone *string `cty:"availability_zone"`
Tags map[string]string `cty:"tags"`
VPCID *terraformWriter.Literal `cty:"vpc_id"`
CIDR *string `cty:"cidr_block"`
IPv6CIDR *string `cty:"ipv6_cidr_block"`
IPv6Native *bool `cty:"ipv6_native"`
AvailabilityZone *string `cty:"availability_zone"`
EnableDNS64 *bool `cty:"enable_dns64"`
EnableResourceNameDNSAAAARecordOnLaunch *bool `cty:"enable_resource_name_dns_aaaa_record_on_launch"`
EnableResourceNameDNSARecordOnLaunch *bool `cty:"enable_resource_name_dns_a_record_on_launch"`
PrivateDNSHostnameTypeOnLaunch *string `cty:"private_dns_hostname_type_on_launch"`
Tags map[string]string `cty:"tags"`
}
func (_ *Subnet) RenderTerraform(t *terraform.TerraformTarget, a, e, changes *Subnet) error {
@ -394,6 +399,23 @@ func (_ *Subnet) RenderTerraform(t *terraform.TerraformTarget, a, e, changes *Su
AvailabilityZone: e.AvailabilityZone,
Tags: e.Tags,
}
if fi.StringValue(e.CIDR) == "" {
tf.EnableDNS64 = fi.Bool(true)
tf.IPv6Native = fi.Bool(true)
}
if e.ResourceBasedNaming != nil {
hostnameType := ec2.HostnameTypeIpName
if *e.ResourceBasedNaming {
hostnameType = ec2.HostnameTypeResourceName
}
tf.PrivateDNSHostnameTypeOnLaunch = fi.String(hostnameType)
if fi.StringValue(e.CIDR) != "" {
tf.EnableResourceNameDNSARecordOnLaunch = e.ResourceBasedNaming
}
if fi.StringValue(e.IPv6CIDR) != "" {
tf.EnableResourceNameDNSAAAARecordOnLaunch = e.ResourceBasedNaming
}
}
return t.RenderResource("aws_subnet", *e.Name, tf)
}

View File

@ -122,7 +122,7 @@ func (t *TerraformTarget) finishHCL2() error {
}
writeMap(requiredProvidersBody, "aws", map[string]cty.Value{
"source": cty.StringVal("hashicorp/aws"),
"version": cty.StringVal(">= 3.59.0"),
"version": cty.StringVal(">= 3.71.0"),
"configuration_aliases": aliasesVal,
})
if featureflag.Spotinst.Enabled() {