@@ -208,6 +208,48 @@ func TestAccComputeRouterPeer_Ipv6Basic(t *testing.T) {
208208 })
209209}
210210
211+ func TestAccComputeRouterPeer_Ipv4BasicCreateUpdate (t * testing.T ) {
212+ t .Parallel ()
213+
214+ routerName := fmt .Sprintf ("tf-test-router-%s" , acctest .RandString (t , 10 ))
215+ resourceName := "google_compute_router_peer.foobar"
216+ acctest .VcrTest (t , resource.TestCase {
217+ PreCheck : func () { acctest .AccTestPreCheck (t ) },
218+ ProtoV5ProviderFactories : acctest .ProtoV5ProviderBetaFactories (t ),
219+ CheckDestroy : testAccCheckComputeRouterPeerDestroyProducer (t ),
220+ Steps : []resource.TestStep {
221+ {
222+ Config : testAccComputeRouterPeerIpv4 (routerName ),
223+ Check : resource .ComposeTestCheckFunc (
224+ testAccCheckComputeRouterPeerExists (
225+ t , resourceName ),
226+ resource .TestCheckResourceAttr (resourceName , "enable_ipv4" , "true" ),
227+ ),
228+ },
229+ {
230+ ResourceName : resourceName ,
231+ ImportState : true ,
232+ ImportStateVerify : true ,
233+ },
234+ {
235+ Config : testAccComputeRouterPeerUpdateIpv4Address (routerName ),
236+ Check : resource .ComposeTestCheckFunc (
237+ testAccCheckComputeRouterPeerExists (
238+ t , resourceName ),
239+ resource .TestCheckResourceAttr (resourceName , "enable_ipv4" , "true" ),
240+ resource .TestCheckResourceAttr (resourceName , "ipv4_nexthop_address" , "169.254.1.2" ),
241+ resource .TestCheckResourceAttr (resourceName , "peer_ipv4_nexthop_address" , "169.254.1.1" ),
242+ ),
243+ },
244+ {
245+ ResourceName : resourceName ,
246+ ImportState : true ,
247+ ImportStateVerify : true ,
248+ },
249+ },
250+ })
251+ }
252+
211253func TestAccComputeRouterPeer_UpdateIpv6Address (t * testing.T ) {
212254 t .Parallel ()
213255
@@ -1421,8 +1463,8 @@ resource "google_compute_router_peer" "foobar" {
14211463 peer_asn = 65515
14221464 advertised_route_priority = 100
14231465 interface = google_compute_router_interface.foobar.name
1424-
14251466 enable_ipv6 = %v
1467+
14261468}
14271469` , routerName , routerName , routerName , routerName , routerName , routerName , routerName , routerName , enableIpv6 )
14281470}
@@ -1497,10 +1539,181 @@ resource "google_compute_router_peer" "foobar" {
14971539 peer_asn = 65515
14981540 advertised_route_priority = 100
14991541 interface = google_compute_router_interface.foobar.name
1500-
15011542 enable_ipv6 = %v
15021543 ipv6_nexthop_address = "2600:2d00:0000:0002:0000:0000:0000:0001"
15031544 peer_ipv6_nexthop_address = "2600:2d00:0:2::2"
15041545}
15051546` , routerName , routerName , routerName , routerName , routerName , routerName , routerName , routerName , enableIpv6 )
15061547}
1548+
1549+ func testAccComputeRouterPeerIpv4 (routerName string ) string {
1550+ return fmt .Sprintf (`resource "google_compute_network" "foobar" {
1551+ provider = google-beta
1552+ name = "%s-net"
1553+ auto_create_subnetworks = false
1554+ }
1555+
1556+ resource "google_compute_subnetwork" "foobar" {
1557+ provider = google-beta
1558+ name = "%s-subnet"
1559+ network = google_compute_network.foobar.self_link
1560+ ip_cidr_range = "10.0.0.0/16"
1561+ region = "us-central1"
1562+ stack_type = "IPV4_IPV6"
1563+ ipv6_access_type = "EXTERNAL"
1564+ }
1565+
1566+ resource "google_compute_ha_vpn_gateway" "foobar" {
1567+ provider = google-beta
1568+ name = "%s-gateway"
1569+ network = google_compute_network.foobar.self_link
1570+ region = google_compute_subnetwork.foobar.region
1571+ stack_type = "IPV4_IPV6"
1572+ }
1573+
1574+ resource "google_compute_external_vpn_gateway" "external_gateway" {
1575+ provider = google-beta
1576+ name = "%s-external-gateway"
1577+ redundancy_type = "SINGLE_IP_INTERNALLY_REDUNDANT"
1578+ description = "An externally managed VPN gateway"
1579+ interface {
1580+ id = 0
1581+ ip_address = "8.8.8.8"
1582+ }
1583+ }
1584+
1585+ resource "google_compute_router" "foobar" {
1586+ provider = google-beta
1587+ name = "%s"
1588+ region = google_compute_subnetwork.foobar.region
1589+ network = google_compute_network.foobar.self_link
1590+ bgp {
1591+ asn = 64514
1592+ }
1593+ }
1594+
1595+ resource "google_compute_vpn_tunnel" "foobar" {
1596+ provider = google-beta
1597+ name = "%s-tunnel"
1598+ region = google_compute_subnetwork.foobar.region
1599+ vpn_gateway = google_compute_ha_vpn_gateway.foobar.id
1600+ peer_external_gateway = google_compute_external_vpn_gateway.external_gateway.id
1601+ peer_external_gateway_interface = 0
1602+ shared_secret = "unguessable"
1603+ router = google_compute_router.foobar.name
1604+ vpn_gateway_interface = 0
1605+ }
1606+
1607+ resource "google_compute_router_interface" "foobar" {
1608+ provider = google-beta
1609+ name = "%s-interface"
1610+ router = google_compute_router.foobar.name
1611+ region = google_compute_router.foobar.region
1612+ vpn_tunnel = google_compute_vpn_tunnel.foobar.name
1613+ ip_range = "fdff:1::1:1/126"
1614+ }
1615+
1616+ resource "google_compute_router_peer" "foobar" {
1617+ provider = google-beta
1618+ name = "%s-peer"
1619+ router = google_compute_router.foobar.name
1620+ region = google_compute_router.foobar.region
1621+ peer_asn = 65515
1622+ advertised_route_priority = 100
1623+ interface = google_compute_router_interface.foobar.name
1624+ ip_address = "fdff:1::1:1"
1625+ peer_ip_address = "fdff:1::1:2"
1626+
1627+ enable_ipv4 = true
1628+ enable_ipv6 = true
1629+ ipv4_nexthop_address = "169.254.1.1"
1630+ peer_ipv4_nexthop_address = "169.254.1.2"
1631+ }
1632+ ` , routerName , routerName , routerName , routerName , routerName , routerName , routerName , routerName )
1633+ }
1634+
1635+ func testAccComputeRouterPeerUpdateIpv4Address (routerName string ) string {
1636+ return fmt .Sprintf (`resource "google_compute_network" "foobar" {
1637+ provider = google-beta
1638+ name = "%s-net"
1639+ auto_create_subnetworks = false
1640+ }
1641+
1642+ resource "google_compute_subnetwork" "foobar" {
1643+ provider = google-beta
1644+ name = "%s-subnet"
1645+ network = google_compute_network.foobar.self_link
1646+ ip_cidr_range = "10.0.0.0/16"
1647+ region = "us-central1"
1648+ stack_type = "IPV4_IPV6"
1649+ ipv6_access_type = "EXTERNAL"
1650+ }
1651+
1652+ resource "google_compute_ha_vpn_gateway" "foobar" {
1653+ provider = google-beta
1654+ name = "%s-gateway"
1655+ network = google_compute_network.foobar.self_link
1656+ region = google_compute_subnetwork.foobar.region
1657+ stack_type = "IPV4_IPV6"
1658+ }
1659+
1660+ resource "google_compute_external_vpn_gateway" "external_gateway" {
1661+ provider = google-beta
1662+ name = "%s-external-gateway"
1663+ redundancy_type = "SINGLE_IP_INTERNALLY_REDUNDANT"
1664+ description = "An externally managed VPN gateway"
1665+ interface {
1666+ id = 0
1667+ ip_address = "8.8.8.8"
1668+ }
1669+ }
1670+
1671+ resource "google_compute_router" "foobar" {
1672+ provider = google-beta
1673+ name = "%s"
1674+ region = google_compute_subnetwork.foobar.region
1675+ network = google_compute_network.foobar.self_link
1676+ bgp {
1677+ asn = 64514
1678+ }
1679+ }
1680+
1681+ resource "google_compute_vpn_tunnel" "foobar" {
1682+ provider = google-beta
1683+ name = "%s-tunnel"
1684+ region = google_compute_subnetwork.foobar.region
1685+ vpn_gateway = google_compute_ha_vpn_gateway.foobar.id
1686+ peer_external_gateway = google_compute_external_vpn_gateway.external_gateway.id
1687+ peer_external_gateway_interface = 0
1688+ shared_secret = "unguessable"
1689+ router = google_compute_router.foobar.name
1690+ vpn_gateway_interface = 0
1691+ }
1692+
1693+ resource "google_compute_router_interface" "foobar" {
1694+ provider = google-beta
1695+ name = "%s-interface"
1696+ router = google_compute_router.foobar.name
1697+ region = google_compute_router.foobar.region
1698+ vpn_tunnel = google_compute_vpn_tunnel.foobar.name
1699+ ip_range = "fdff:1::1:1/126"
1700+ }
1701+
1702+ resource "google_compute_router_peer" "foobar" {
1703+ provider = google-beta
1704+ name = "%s-peer"
1705+ router = google_compute_router.foobar.name
1706+ region = google_compute_router.foobar.region
1707+ peer_asn = 65515
1708+ advertised_route_priority = 100
1709+ interface = google_compute_router_interface.foobar.name
1710+ ip_address = "fdff:1::1:1"
1711+ peer_ip_address = "fdff:1::1:2"
1712+
1713+ enable_ipv4 = true
1714+ enable_ipv6 = true
1715+ ipv4_nexthop_address = "169.254.1.2"
1716+ peer_ipv4_nexthop_address = "169.254.1.1"
1717+ }
1718+ ` , routerName , routerName , routerName , routerName , routerName , routerName , routerName , routerName )
1719+ }
0 commit comments