NetworkPeeringRoutesConfig

Manage a network peering's route settings without managing the peering as a whole. This resource is primarily intended for use with GCP-generated peerings that shouldn't otherwise be managed by other tools. Deleting this resource is a no-op and the peering will not be modified. To get more information about NetworkPeeringRoutesConfig, see:

Example Usage

Network Peering Routes Config Basic

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.Network;
import com.pulumi.gcp.compute.NetworkArgs;
import com.pulumi.gcp.compute.NetworkPeering;
import com.pulumi.gcp.compute.NetworkPeeringArgs;
import com.pulumi.gcp.compute.NetworkPeeringRoutesConfig;
import com.pulumi.gcp.compute.NetworkPeeringRoutesConfigArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var networkPrimary = new Network("networkPrimary", NetworkArgs.builder()
.autoCreateSubnetworks("false")
.build());
var networkSecondary = new Network("networkSecondary", NetworkArgs.builder()
.autoCreateSubnetworks("false")
.build());
var peeringPrimary = new NetworkPeering("peeringPrimary", NetworkPeeringArgs.builder()
.network(networkPrimary.id())
.peerNetwork(networkSecondary.id())
.importCustomRoutes(true)
.exportCustomRoutes(true)
.build());
var peeringPrimaryRoutes = new NetworkPeeringRoutesConfig("peeringPrimaryRoutes", NetworkPeeringRoutesConfigArgs.builder()
.peering(peeringPrimary.name())
.network(networkPrimary.name())
.importCustomRoutes(true)
.exportCustomRoutes(true)
.build());
var peeringSecondary = new NetworkPeering("peeringSecondary", NetworkPeeringArgs.builder()
.network(networkSecondary.id())
.peerNetwork(networkPrimary.id())
.build());
}
}

Network Peering Routes Config Gke

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.Network;
import com.pulumi.gcp.compute.NetworkArgs;
import com.pulumi.gcp.compute.Subnetwork;
import com.pulumi.gcp.compute.SubnetworkArgs;
import com.pulumi.gcp.compute.inputs.SubnetworkSecondaryIpRangeArgs;
import com.pulumi.gcp.container.Cluster;
import com.pulumi.gcp.container.ClusterArgs;
import com.pulumi.gcp.container.inputs.ClusterPrivateClusterConfigArgs;
import com.pulumi.gcp.container.inputs.ClusterMasterAuthorizedNetworksConfigArgs;
import com.pulumi.gcp.container.inputs.ClusterIpAllocationPolicyArgs;
import com.pulumi.gcp.compute.NetworkPeeringRoutesConfig;
import com.pulumi.gcp.compute.NetworkPeeringRoutesConfigArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var containerNetwork = new Network("containerNetwork", NetworkArgs.builder()
.autoCreateSubnetworks(false)
.build());
var containerSubnetwork = new Subnetwork("containerSubnetwork", SubnetworkArgs.builder()
.region("us-central1")
.network(containerNetwork.name())
.ipCidrRange("10.0.36.0/24")
.privateIpGoogleAccess(true)
.secondaryIpRanges(
SubnetworkSecondaryIpRangeArgs.builder()
.rangeName("pod")
.ipCidrRange("10.0.0.0/19")
.build(),
SubnetworkSecondaryIpRangeArgs.builder()
.rangeName("svc")
.ipCidrRange("10.0.32.0/22")
.build())
.build());
var privateCluster = new Cluster("privateCluster", ClusterArgs.builder()
.location("us-central1-a")
.initialNodeCount(1)
.network(containerNetwork.name())
.subnetwork(containerSubnetwork.name())
.privateClusterConfig(ClusterPrivateClusterConfigArgs.builder()
.enablePrivateEndpoint(true)
.enablePrivateNodes(true)
.masterIpv4CidrBlock("10.42.0.0/28")
.build())
.masterAuthorizedNetworksConfig()
.ipAllocationPolicy(ClusterIpAllocationPolicyArgs.builder()
.clusterSecondaryRangeName(containerSubnetwork.secondaryIpRanges().applyValue(secondaryIpRanges -> secondaryIpRanges[0].rangeName()))
.servicesSecondaryRangeName(containerSubnetwork.secondaryIpRanges().applyValue(secondaryIpRanges -> secondaryIpRanges[1].rangeName()))
.build())
.build());
var peeringGkeRoutes = new NetworkPeeringRoutesConfig("peeringGkeRoutes", NetworkPeeringRoutesConfigArgs.builder()
.peering(privateCluster.privateClusterConfig().applyValue(privateClusterConfig -> privateClusterConfig.peeringName()))
.network(containerNetwork.name())
.importCustomRoutes(true)
.exportCustomRoutes(true)
.build());
}
}

Import

NetworkPeeringRoutesConfig can be imported using any of these accepted formats

$ pulumi import gcp:compute/networkPeeringRoutesConfig:NetworkPeeringRoutesConfig default projects/{{project}}/global/networks/{{network}}/networkPeerings/{{peering}}
$ pulumi import gcp:compute/networkPeeringRoutesConfig:NetworkPeeringRoutesConfig default {{project}}/{{network}}/{{peering}}
$ pulumi import gcp:compute/networkPeeringRoutesConfig:NetworkPeeringRoutesConfig default {{network}}/{{peering}}

Properties

Link copied to clipboard

Whether to export the custom routes to the peer network.

Link copied to clipboard
val id: Output<String>
Link copied to clipboard

Whether to import the custom routes to the peer network.

Link copied to clipboard
val network: Output<String>

The name of the primary network for the peering.

Link copied to clipboard
val peering: Output<String>

Name of the peering.

Link copied to clipboard
val project: Output<String>

The ID of the project in which the resource belongs. If it is not provided, the provider project is used.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val urn: Output<String>