provider/aws: Add IPv6 Support to aws_route_table (#12640)
``` % make testacc TEST=./builtin/providers/aws TESTARGS='-run=TestAccAWSRouteTable_' ==> Checking that code complies with gofmt requirements... go generate $(go list ./... | grep -v /terraform/vendor/) 2017/03/13 10:11:09 Generated command/internal_plugin_list.go TF_ACC=1 go test ./builtin/providers/aws -v -run=TestAccAWSRouteTable_ -timeout 120m === RUN TestAccAWSRouteTable_importBasic --- PASS: TestAccAWSRouteTable_importBasic (63.14s) === RUN TestAccAWSRouteTable_complex --- PASS: TestAccAWSRouteTable_complex (241.57s) === RUN TestAccAWSRouteTable_basic --- PASS: TestAccAWSRouteTable_basic (91.26s) === RUN TestAccAWSRouteTable_instance --- PASS: TestAccAWSRouteTable_instance (158.18s) === RUN TestAccAWSRouteTable_ipv6 --- PASS: TestAccAWSRouteTable_ipv6 (48.99s) === RUN TestAccAWSRouteTable_tags --- PASS: TestAccAWSRouteTable_tags (71.68s) === RUN TestAccAWSRouteTable_vpcPeering --- PASS: TestAccAWSRouteTable_vpcPeering (58.33s) === RUN TestAccAWSRouteTable_vgwRoutePropagation --- PASS: TestAccAWSRouteTable_vgwRoutePropagation (59.64s) PASS ok github.com/hashicorp/terraform/builtin/providers/aws 780.400s ```
This commit is contained in:
parent
d87cc0721f
commit
7311ba22ea
|
@ -41,6 +41,16 @@ func dataSourceAwsRouteTable() *schema.Resource {
|
||||||
Computed: true,
|
Computed: true,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
"ipv6_cidr_block": {
|
||||||
|
Type: schema.TypeString,
|
||||||
|
Computed: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
"egress_only_gateway_id": {
|
||||||
|
Type: schema.TypeString,
|
||||||
|
Computed: true,
|
||||||
|
},
|
||||||
|
|
||||||
"gateway_id": {
|
"gateway_id": {
|
||||||
Type: schema.TypeString,
|
Type: schema.TypeString,
|
||||||
Computed: true,
|
Computed: true,
|
||||||
|
@ -177,6 +187,12 @@ func dataSourceRoutesRead(ec2Routes []*ec2.Route) []map[string]interface{} {
|
||||||
if r.DestinationCidrBlock != nil {
|
if r.DestinationCidrBlock != nil {
|
||||||
m["cidr_block"] = *r.DestinationCidrBlock
|
m["cidr_block"] = *r.DestinationCidrBlock
|
||||||
}
|
}
|
||||||
|
if r.DestinationIpv6CidrBlock != nil {
|
||||||
|
m["ipv6_cidr_block"] = *r.DestinationIpv6CidrBlock
|
||||||
|
}
|
||||||
|
if r.EgressOnlyInternetGatewayId != nil {
|
||||||
|
m["egress_only_gateway_id"] = *r.EgressOnlyInternetGatewayId
|
||||||
|
}
|
||||||
if r.GatewayId != nil {
|
if r.GatewayId != nil {
|
||||||
m["gateway_id"] = *r.GatewayId
|
m["gateway_id"] = *r.GatewayId
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,7 +14,7 @@ func TestAccDataSourceAwsRouteTable_basic(t *testing.T) {
|
||||||
PreCheck: func() { testAccPreCheck(t) },
|
PreCheck: func() { testAccPreCheck(t) },
|
||||||
Providers: testAccProviders,
|
Providers: testAccProviders,
|
||||||
Steps: []resource.TestStep{
|
Steps: []resource.TestStep{
|
||||||
resource.TestStep{
|
{
|
||||||
Config: testAccDataSourceAwsRouteTableGroupConfig,
|
Config: testAccDataSourceAwsRouteTableGroupConfig,
|
||||||
Check: resource.ComposeTestCheckFunc(
|
Check: resource.ComposeTestCheckFunc(
|
||||||
testAccDataSourceAwsRouteTableCheck("data.aws_route_table.by_tag"),
|
testAccDataSourceAwsRouteTableCheck("data.aws_route_table.by_tag"),
|
||||||
|
@ -33,7 +33,7 @@ func TestAccDataSourceAwsRouteTable_main(t *testing.T) {
|
||||||
PreCheck: func() { testAccPreCheck(t) },
|
PreCheck: func() { testAccPreCheck(t) },
|
||||||
Providers: testAccProviders,
|
Providers: testAccProviders,
|
||||||
Steps: []resource.TestStep{
|
Steps: []resource.TestStep{
|
||||||
resource.TestStep{
|
{
|
||||||
Config: testAccDataSourceAwsRouteTableMainRoute,
|
Config: testAccDataSourceAwsRouteTableMainRoute,
|
||||||
Check: resource.ComposeTestCheckFunc(
|
Check: resource.ComposeTestCheckFunc(
|
||||||
testAccDataSourceAwsRouteTableCheckMain("data.aws_route_table.by_filter"),
|
testAccDataSourceAwsRouteTableCheckMain("data.aws_route_table.by_filter"),
|
||||||
|
|
|
@ -51,6 +51,7 @@ func resourceAwsRouteTableImportState(
|
||||||
d.SetType("aws_route")
|
d.SetType("aws_route")
|
||||||
d.Set("route_table_id", id)
|
d.Set("route_table_id", id)
|
||||||
d.Set("destination_cidr_block", route.DestinationCidrBlock)
|
d.Set("destination_cidr_block", route.DestinationCidrBlock)
|
||||||
|
d.Set("destination_ipv6_cidr_block", route.DestinationIpv6CidrBlock)
|
||||||
d.SetId(routeIDHash(d, route))
|
d.SetId(routeIDHash(d, route))
|
||||||
results = append(results, d)
|
results = append(results, d)
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,11 +23,11 @@ func TestAccAWSRouteTable_importBasic(t *testing.T) {
|
||||||
Providers: testAccProviders,
|
Providers: testAccProviders,
|
||||||
CheckDestroy: testAccCheckRouteTableDestroy,
|
CheckDestroy: testAccCheckRouteTableDestroy,
|
||||||
Steps: []resource.TestStep{
|
Steps: []resource.TestStep{
|
||||||
resource.TestStep{
|
{
|
||||||
Config: testAccRouteTableConfig,
|
Config: testAccRouteTableConfig,
|
||||||
},
|
},
|
||||||
|
|
||||||
resource.TestStep{
|
{
|
||||||
ResourceName: "aws_route_table.foo",
|
ResourceName: "aws_route_table.foo",
|
||||||
ImportState: true,
|
ImportState: true,
|
||||||
ImportStateCheck: checkFn,
|
ImportStateCheck: checkFn,
|
||||||
|
@ -51,11 +51,11 @@ func TestAccAWSRouteTable_complex(t *testing.T) {
|
||||||
Providers: testAccProviders,
|
Providers: testAccProviders,
|
||||||
CheckDestroy: testAccCheckRouteTableDestroy,
|
CheckDestroy: testAccCheckRouteTableDestroy,
|
||||||
Steps: []resource.TestStep{
|
Steps: []resource.TestStep{
|
||||||
resource.TestStep{
|
{
|
||||||
Config: testAccRouteTableConfig_complexImport,
|
Config: testAccRouteTableConfig_complexImport,
|
||||||
},
|
},
|
||||||
|
|
||||||
resource.TestStep{
|
{
|
||||||
ResourceName: "aws_route_table.mod",
|
ResourceName: "aws_route_table.mod",
|
||||||
ImportState: true,
|
ImportState: true,
|
||||||
ImportStateCheck: checkFn,
|
ImportStateCheck: checkFn,
|
||||||
|
|
|
@ -25,7 +25,7 @@ func resourceAwsRouteTable() *schema.Resource {
|
||||||
},
|
},
|
||||||
|
|
||||||
Schema: map[string]*schema.Schema{
|
Schema: map[string]*schema.Schema{
|
||||||
"vpc_id": &schema.Schema{
|
"vpc_id": {
|
||||||
Type: schema.TypeString,
|
Type: schema.TypeString,
|
||||||
Required: true,
|
Required: true,
|
||||||
ForceNew: true,
|
ForceNew: true,
|
||||||
|
@ -33,45 +33,55 @@ func resourceAwsRouteTable() *schema.Resource {
|
||||||
|
|
||||||
"tags": tagsSchema(),
|
"tags": tagsSchema(),
|
||||||
|
|
||||||
"propagating_vgws": &schema.Schema{
|
"propagating_vgws": {
|
||||||
Type: schema.TypeSet,
|
Type: schema.TypeSet,
|
||||||
Optional: true,
|
Optional: true,
|
||||||
Elem: &schema.Schema{Type: schema.TypeString},
|
Elem: &schema.Schema{Type: schema.TypeString},
|
||||||
Set: schema.HashString,
|
Set: schema.HashString,
|
||||||
},
|
},
|
||||||
|
|
||||||
"route": &schema.Schema{
|
"route": {
|
||||||
Type: schema.TypeSet,
|
Type: schema.TypeSet,
|
||||||
Computed: true,
|
Computed: true,
|
||||||
Optional: true,
|
Optional: true,
|
||||||
Elem: &schema.Resource{
|
Elem: &schema.Resource{
|
||||||
Schema: map[string]*schema.Schema{
|
Schema: map[string]*schema.Schema{
|
||||||
"cidr_block": &schema.Schema{
|
"cidr_block": {
|
||||||
Type: schema.TypeString,
|
|
||||||
Required: true,
|
|
||||||
},
|
|
||||||
|
|
||||||
"gateway_id": &schema.Schema{
|
|
||||||
Type: schema.TypeString,
|
Type: schema.TypeString,
|
||||||
Optional: true,
|
Optional: true,
|
||||||
},
|
},
|
||||||
|
|
||||||
"instance_id": &schema.Schema{
|
"ipv6_cidr_block": {
|
||||||
Type: schema.TypeString,
|
Type: schema.TypeString,
|
||||||
Optional: true,
|
Optional: true,
|
||||||
},
|
},
|
||||||
|
|
||||||
"nat_gateway_id": &schema.Schema{
|
"egress_only_gateway_id": {
|
||||||
Type: schema.TypeString,
|
Type: schema.TypeString,
|
||||||
Optional: true,
|
Optional: true,
|
||||||
},
|
},
|
||||||
|
|
||||||
"vpc_peering_connection_id": &schema.Schema{
|
"gateway_id": {
|
||||||
Type: schema.TypeString,
|
Type: schema.TypeString,
|
||||||
Optional: true,
|
Optional: true,
|
||||||
},
|
},
|
||||||
|
|
||||||
"network_interface_id": &schema.Schema{
|
"instance_id": {
|
||||||
|
Type: schema.TypeString,
|
||||||
|
Optional: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
"nat_gateway_id": {
|
||||||
|
Type: schema.TypeString,
|
||||||
|
Optional: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
"vpc_peering_connection_id": {
|
||||||
|
Type: schema.TypeString,
|
||||||
|
Optional: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
"network_interface_id": {
|
||||||
Type: schema.TypeString,
|
Type: schema.TypeString,
|
||||||
Optional: true,
|
Optional: true,
|
||||||
},
|
},
|
||||||
|
@ -166,6 +176,12 @@ func resourceAwsRouteTableRead(d *schema.ResourceData, meta interface{}) error {
|
||||||
if r.DestinationCidrBlock != nil {
|
if r.DestinationCidrBlock != nil {
|
||||||
m["cidr_block"] = *r.DestinationCidrBlock
|
m["cidr_block"] = *r.DestinationCidrBlock
|
||||||
}
|
}
|
||||||
|
if r.DestinationIpv6CidrBlock != nil {
|
||||||
|
m["ipv6_cidr_block"] = *r.DestinationIpv6CidrBlock
|
||||||
|
}
|
||||||
|
if r.EgressOnlyInternetGatewayId != nil {
|
||||||
|
m["egress_only_gateway_id"] = *r.EgressOnlyInternetGatewayId
|
||||||
|
}
|
||||||
if r.GatewayId != nil {
|
if r.GatewayId != nil {
|
||||||
m["gateway_id"] = *r.GatewayId
|
m["gateway_id"] = *r.GatewayId
|
||||||
}
|
}
|
||||||
|
@ -266,14 +282,27 @@ func resourceAwsRouteTableUpdate(d *schema.ResourceData, meta interface{}) error
|
||||||
for _, route := range ors.List() {
|
for _, route := range ors.List() {
|
||||||
m := route.(map[string]interface{})
|
m := route.(map[string]interface{})
|
||||||
|
|
||||||
// Delete the route as it no longer exists in the config
|
deleteOpts := &ec2.DeleteRouteInput{
|
||||||
|
RouteTableId: aws.String(d.Id()),
|
||||||
|
}
|
||||||
|
|
||||||
|
if s := m["ipv6_cidr_block"].(string); s != "" {
|
||||||
|
deleteOpts.DestinationIpv6CidrBlock = aws.String(s)
|
||||||
|
|
||||||
|
log.Printf(
|
||||||
|
"[INFO] Deleting route from %s: %s",
|
||||||
|
d.Id(), m["ipv6_cidr_block"].(string))
|
||||||
|
}
|
||||||
|
|
||||||
|
if s := m["cidr_block"].(string); s != "" {
|
||||||
|
deleteOpts.DestinationCidrBlock = aws.String(s)
|
||||||
|
|
||||||
log.Printf(
|
log.Printf(
|
||||||
"[INFO] Deleting route from %s: %s",
|
"[INFO] Deleting route from %s: %s",
|
||||||
d.Id(), m["cidr_block"].(string))
|
d.Id(), m["cidr_block"].(string))
|
||||||
_, err := conn.DeleteRoute(&ec2.DeleteRouteInput{
|
}
|
||||||
RouteTableId: aws.String(d.Id()),
|
|
||||||
DestinationCidrBlock: aws.String(m["cidr_block"].(string)),
|
_, err := conn.DeleteRoute(deleteOpts)
|
||||||
})
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -289,15 +318,38 @@ func resourceAwsRouteTableUpdate(d *schema.ResourceData, meta interface{}) error
|
||||||
|
|
||||||
opts := ec2.CreateRouteInput{
|
opts := ec2.CreateRouteInput{
|
||||||
RouteTableId: aws.String(d.Id()),
|
RouteTableId: aws.String(d.Id()),
|
||||||
DestinationCidrBlock: aws.String(m["cidr_block"].(string)),
|
|
||||||
GatewayId: aws.String(m["gateway_id"].(string)),
|
|
||||||
InstanceId: aws.String(m["instance_id"].(string)),
|
|
||||||
VpcPeeringConnectionId: aws.String(m["vpc_peering_connection_id"].(string)),
|
|
||||||
NetworkInterfaceId: aws.String(m["network_interface_id"].(string)),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if m["nat_gateway_id"].(string) != "" {
|
if s := m["vpc_peering_connection_id"].(string); s != "" {
|
||||||
opts.NatGatewayId = aws.String(m["nat_gateway_id"].(string))
|
opts.VpcPeeringConnectionId = aws.String(s)
|
||||||
|
}
|
||||||
|
|
||||||
|
if s := m["network_interface_id"].(string); s != "" {
|
||||||
|
opts.NetworkInterfaceId = aws.String(s)
|
||||||
|
}
|
||||||
|
|
||||||
|
if s := m["instance_id"].(string); s != "" {
|
||||||
|
opts.InstanceId = aws.String(s)
|
||||||
|
}
|
||||||
|
|
||||||
|
if s := m["ipv6_cidr_block"].(string); s != "" {
|
||||||
|
opts.DestinationIpv6CidrBlock = aws.String(s)
|
||||||
|
}
|
||||||
|
|
||||||
|
if s := m["cidr_block"].(string); s != "" {
|
||||||
|
opts.DestinationCidrBlock = aws.String(s)
|
||||||
|
}
|
||||||
|
|
||||||
|
if s := m["gateway_id"].(string); s != "" {
|
||||||
|
opts.GatewayId = aws.String(s)
|
||||||
|
}
|
||||||
|
|
||||||
|
if s := m["egress_only_gateway_id"].(string); s != "" {
|
||||||
|
opts.EgressOnlyInternetGatewayId = aws.String(s)
|
||||||
|
}
|
||||||
|
|
||||||
|
if s := m["nat_gateway_id"].(string); s != "" {
|
||||||
|
opts.NatGatewayId = aws.String(s)
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Printf("[INFO] Creating route for %s: %#v", d.Id(), opts)
|
log.Printf("[INFO] Creating route for %s: %#v", d.Id(), opts)
|
||||||
|
@ -402,6 +454,10 @@ func resourceAwsRouteTableHash(v interface{}) int {
|
||||||
var buf bytes.Buffer
|
var buf bytes.Buffer
|
||||||
m := v.(map[string]interface{})
|
m := v.(map[string]interface{})
|
||||||
|
|
||||||
|
if v, ok := m["ipv6_cidr_block"]; ok {
|
||||||
|
buf.WriteString(fmt.Sprintf("%s-", v.(string)))
|
||||||
|
}
|
||||||
|
|
||||||
if v, ok := m["cidr_block"]; ok {
|
if v, ok := m["cidr_block"]; ok {
|
||||||
buf.WriteString(fmt.Sprintf("%s-", v.(string)))
|
buf.WriteString(fmt.Sprintf("%s-", v.(string)))
|
||||||
}
|
}
|
||||||
|
@ -410,6 +466,10 @@ func resourceAwsRouteTableHash(v interface{}) int {
|
||||||
buf.WriteString(fmt.Sprintf("%s-", v.(string)))
|
buf.WriteString(fmt.Sprintf("%s-", v.(string)))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if v, ok := m["egress_only_gateway_id"]; ok {
|
||||||
|
buf.WriteString(fmt.Sprintf("%s-", v.(string)))
|
||||||
|
}
|
||||||
|
|
||||||
natGatewaySet := false
|
natGatewaySet := false
|
||||||
if v, ok := m["nat_gateway_id"]; ok {
|
if v, ok := m["nat_gateway_id"]; ok {
|
||||||
natGatewaySet = v.(string) != ""
|
natGatewaySet = v.(string) != ""
|
||||||
|
|
|
@ -63,7 +63,7 @@ func TestAccAWSRouteTable_basic(t *testing.T) {
|
||||||
Providers: testAccProviders,
|
Providers: testAccProviders,
|
||||||
CheckDestroy: testAccCheckRouteTableDestroy,
|
CheckDestroy: testAccCheckRouteTableDestroy,
|
||||||
Steps: []resource.TestStep{
|
Steps: []resource.TestStep{
|
||||||
resource.TestStep{
|
{
|
||||||
Config: testAccRouteTableConfig,
|
Config: testAccRouteTableConfig,
|
||||||
Check: resource.ComposeTestCheckFunc(
|
Check: resource.ComposeTestCheckFunc(
|
||||||
testAccCheckRouteTableExists(
|
testAccCheckRouteTableExists(
|
||||||
|
@ -72,7 +72,7 @@ func TestAccAWSRouteTable_basic(t *testing.T) {
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
|
|
||||||
resource.TestStep{
|
{
|
||||||
Config: testAccRouteTableConfigChange,
|
Config: testAccRouteTableConfigChange,
|
||||||
Check: resource.ComposeTestCheckFunc(
|
Check: resource.ComposeTestCheckFunc(
|
||||||
testAccCheckRouteTableExists(
|
testAccCheckRouteTableExists(
|
||||||
|
@ -113,7 +113,7 @@ func TestAccAWSRouteTable_instance(t *testing.T) {
|
||||||
Providers: testAccProviders,
|
Providers: testAccProviders,
|
||||||
CheckDestroy: testAccCheckRouteTableDestroy,
|
CheckDestroy: testAccCheckRouteTableDestroy,
|
||||||
Steps: []resource.TestStep{
|
Steps: []resource.TestStep{
|
||||||
resource.TestStep{
|
{
|
||||||
Config: testAccRouteTableConfigInstance,
|
Config: testAccRouteTableConfigInstance,
|
||||||
Check: resource.ComposeTestCheckFunc(
|
Check: resource.ComposeTestCheckFunc(
|
||||||
testAccCheckRouteTableExists(
|
testAccCheckRouteTableExists(
|
||||||
|
@ -125,6 +125,35 @@ func TestAccAWSRouteTable_instance(t *testing.T) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestAccAWSRouteTable_ipv6(t *testing.T) {
|
||||||
|
var v ec2.RouteTable
|
||||||
|
|
||||||
|
testCheck := func(*terraform.State) error {
|
||||||
|
// Expect 3: 2 IPv6 (local + all outbound) + 1 IPv4
|
||||||
|
if len(v.Routes) != 3 {
|
||||||
|
return fmt.Errorf("bad routes: %#v", v.Routes)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
resource.Test(t, resource.TestCase{
|
||||||
|
PreCheck: func() { testAccPreCheck(t) },
|
||||||
|
IDRefreshName: "aws_route_table.foo",
|
||||||
|
Providers: testAccProviders,
|
||||||
|
CheckDestroy: testAccCheckRouteTableDestroy,
|
||||||
|
Steps: []resource.TestStep{
|
||||||
|
{
|
||||||
|
Config: testAccRouteTableConfigIpv6,
|
||||||
|
Check: resource.ComposeTestCheckFunc(
|
||||||
|
testAccCheckRouteTableExists("aws_route_table.foo", &v),
|
||||||
|
testCheck,
|
||||||
|
),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
func TestAccAWSRouteTable_tags(t *testing.T) {
|
func TestAccAWSRouteTable_tags(t *testing.T) {
|
||||||
var route_table ec2.RouteTable
|
var route_table ec2.RouteTable
|
||||||
|
|
||||||
|
@ -134,7 +163,7 @@ func TestAccAWSRouteTable_tags(t *testing.T) {
|
||||||
Providers: testAccProviders,
|
Providers: testAccProviders,
|
||||||
CheckDestroy: testAccCheckRouteTableDestroy,
|
CheckDestroy: testAccCheckRouteTableDestroy,
|
||||||
Steps: []resource.TestStep{
|
Steps: []resource.TestStep{
|
||||||
resource.TestStep{
|
{
|
||||||
Config: testAccRouteTableConfigTags,
|
Config: testAccRouteTableConfigTags,
|
||||||
Check: resource.ComposeTestCheckFunc(
|
Check: resource.ComposeTestCheckFunc(
|
||||||
testAccCheckRouteTableExists("aws_route_table.foo", &route_table),
|
testAccCheckRouteTableExists("aws_route_table.foo", &route_table),
|
||||||
|
@ -142,7 +171,7 @@ func TestAccAWSRouteTable_tags(t *testing.T) {
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
|
|
||||||
resource.TestStep{
|
{
|
||||||
Config: testAccRouteTableConfigTagsUpdate,
|
Config: testAccRouteTableConfigTagsUpdate,
|
||||||
Check: resource.ComposeTestCheckFunc(
|
Check: resource.ComposeTestCheckFunc(
|
||||||
testAccCheckRouteTableExists("aws_route_table.foo", &route_table),
|
testAccCheckRouteTableExists("aws_route_table.foo", &route_table),
|
||||||
|
@ -244,7 +273,7 @@ func TestAccAWSRouteTable_vpcPeering(t *testing.T) {
|
||||||
Providers: testAccProviders,
|
Providers: testAccProviders,
|
||||||
CheckDestroy: testAccCheckRouteTableDestroy,
|
CheckDestroy: testAccCheckRouteTableDestroy,
|
||||||
Steps: []resource.TestStep{
|
Steps: []resource.TestStep{
|
||||||
resource.TestStep{
|
{
|
||||||
Config: testAccRouteTableVpcPeeringConfig,
|
Config: testAccRouteTableVpcPeeringConfig,
|
||||||
Check: resource.ComposeTestCheckFunc(
|
Check: resource.ComposeTestCheckFunc(
|
||||||
testAccCheckRouteTableExists(
|
testAccCheckRouteTableExists(
|
||||||
|
@ -285,7 +314,7 @@ func TestAccAWSRouteTable_vgwRoutePropagation(t *testing.T) {
|
||||||
testAccCheckRouteTableDestroy,
|
testAccCheckRouteTableDestroy,
|
||||||
),
|
),
|
||||||
Steps: []resource.TestStep{
|
Steps: []resource.TestStep{
|
||||||
resource.TestStep{
|
{
|
||||||
Config: testAccRouteTableVgwRoutePropagationConfig,
|
Config: testAccRouteTableVgwRoutePropagationConfig,
|
||||||
Check: resource.ComposeTestCheckFunc(
|
Check: resource.ComposeTestCheckFunc(
|
||||||
testAccCheckRouteTableExists(
|
testAccCheckRouteTableExists(
|
||||||
|
@ -342,6 +371,26 @@ resource "aws_route_table" "foo" {
|
||||||
}
|
}
|
||||||
`
|
`
|
||||||
|
|
||||||
|
const testAccRouteTableConfigIpv6 = `
|
||||||
|
resource "aws_vpc" "foo" {
|
||||||
|
cidr_block = "10.1.0.0/16"
|
||||||
|
assign_generated_ipv6_cidr_block = true
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_egress_only_internet_gateway" "foo" {
|
||||||
|
vpc_id = "${aws_vpc.foo.id}"
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_route_table" "foo" {
|
||||||
|
vpc_id = "${aws_vpc.foo.id}"
|
||||||
|
|
||||||
|
route {
|
||||||
|
ipv6_cidr_block = "::/0"
|
||||||
|
egress_only_gateway_id = "${aws_egress_only_internet_gateway.foo.id}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`
|
||||||
|
|
||||||
const testAccRouteTableConfigInstance = `
|
const testAccRouteTableConfigInstance = `
|
||||||
resource "aws_vpc" "foo" {
|
resource "aws_vpc" "foo" {
|
||||||
cidr_block = "10.1.0.0/16"
|
cidr_block = "10.1.0.0/16"
|
||||||
|
|
|
@ -71,6 +71,8 @@ the selected Route Table.
|
||||||
Each route supports the following:
|
Each route supports the following:
|
||||||
|
|
||||||
* `cidr_block` - The CIDR block of the route.
|
* `cidr_block` - The CIDR block of the route.
|
||||||
|
* `ipv6_cidr_block` - The IPv6 CIDR block of the route.
|
||||||
|
* `egress_only_gateway_id` - The ID of the Egress Only Internet Gateway.
|
||||||
* `gateway_id` - The Internet Gateway ID.
|
* `gateway_id` - The Internet Gateway ID.
|
||||||
* `nat_gateway_id` - The NAT Gateway ID.
|
* `nat_gateway_id` - The NAT Gateway ID.
|
||||||
* `instance_id` - The EC2 instance ID.
|
* `instance_id` - The EC2 instance ID.
|
||||||
|
|
|
@ -27,6 +27,11 @@ resource "aws_route_table" "r" {
|
||||||
gateway_id = "${aws_internet_gateway.main.id}"
|
gateway_id = "${aws_internet_gateway.main.id}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
route {
|
||||||
|
ipv6_cidr_block = "::/0"
|
||||||
|
egress_only_gateway_id = "${aws_egress_only_internet_gateway.foo.id}"
|
||||||
|
}
|
||||||
|
|
||||||
tags {
|
tags {
|
||||||
Name = "main"
|
Name = "main"
|
||||||
}
|
}
|
||||||
|
@ -44,7 +49,9 @@ The following arguments are supported:
|
||||||
|
|
||||||
Each route supports the following:
|
Each route supports the following:
|
||||||
|
|
||||||
* `cidr_block` - (Required) The CIDR block of the route.
|
* `cidr_block` - (Optional) The CIDR block of the route.
|
||||||
|
* `ipv6_cidr_block` - Optional) The Ipv6 CIDR block of the route
|
||||||
|
* `egress_only_gateway_id` - (Optional) The Egress Only Internet Gateway ID.
|
||||||
* `gateway_id` - (Optional) The Internet Gateway ID.
|
* `gateway_id` - (Optional) The Internet Gateway ID.
|
||||||
* `nat_gateway_id` - (Optional) The NAT Gateway ID.
|
* `nat_gateway_id` - (Optional) The NAT Gateway ID.
|
||||||
* `instance_id` - (Optional) The EC2 instance ID.
|
* `instance_id` - (Optional) The EC2 instance ID.
|
||||||
|
|
Loading…
Reference in New Issue