Policy Based Route
Policy-based Routes are more powerful routes that route L4 network traffic based on not just destination IP, but also source IP, protocol and more. A Policy-based Route always take precedence when it conflicts with other types of routes. To get more information about PolicyBasedRoute, see:
How-to Guides
Example Usage
Network Connectivity Policy Based Route 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.networkconnectivity.PolicyBasedRoute;
import com.pulumi.gcp.networkconnectivity.PolicyBasedRouteArgs;
import com.pulumi.gcp.networkconnectivity.inputs.PolicyBasedRouteFilterArgs;
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 myNetwork = new Network("myNetwork", NetworkArgs.builder()
.autoCreateSubnetworks(false)
.build());
var default_ = new PolicyBasedRoute("default", PolicyBasedRouteArgs.builder()
.network(myNetwork.id())
.filter(PolicyBasedRouteFilterArgs.builder()
.protocolVersion("IPV4")
.build())
.nextHopOtherRoutes("DEFAULT_ROUTING")
.build());
}
}Network Connectivity Policy Based Route Full
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.GlobalAddress;
import com.pulumi.gcp.networkconnectivity.PolicyBasedRoute;
import com.pulumi.gcp.networkconnectivity.PolicyBasedRouteArgs;
import com.pulumi.gcp.networkconnectivity.inputs.PolicyBasedRouteFilterArgs;
import com.pulumi.gcp.networkconnectivity.inputs.PolicyBasedRouteVirtualMachineArgs;
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 myNetwork = new Network("myNetwork", NetworkArgs.builder()
.autoCreateSubnetworks(false)
.build());
var ilb = new GlobalAddress("ilb");
var default_ = new PolicyBasedRoute("default", PolicyBasedRouteArgs.builder()
.description("My routing policy")
.network(myNetwork.id())
.priority(2302)
.filter(PolicyBasedRouteFilterArgs.builder()
.protocolVersion("IPV4")
.ipProtocol("UDP")
.srcRange("10.0.0.0/24")
.destRange("0.0.0.0/0")
.build())
.nextHopIlbIp(ilb.address())
.virtualMachine(PolicyBasedRouteVirtualMachineArgs.builder()
.tags("restricted")
.build())
.labels(Map.of("env", "default"))
.build());
}
}Import
PolicyBasedRoute can be imported using any of these accepted formats* projects/{{project}}/locations/global/policyBasedRoutes/{{name}} * {{project}}/{{name}} * {{name}} In Terraform v1.5.0 and later, use an import block to import PolicyBasedRoute using one of the formats above. For exampletf import { id = "projects/{{project}}/locations/global/policyBasedRoutes/{{name}}" to = google_network_connectivity_policy_based_route.default }
$ pulumi import gcp:networkconnectivity/policyBasedRoute:PolicyBasedRoute When using the [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import), PolicyBasedRoute can be imported using one of the formats above. For example$ pulumi import gcp:networkconnectivity/policyBasedRoute:PolicyBasedRoute default projects/{{project}}/locations/global/policyBasedRoutes/{{name}}$ pulumi import gcp:networkconnectivity/policyBasedRoute:PolicyBasedRoute default {{project}}/{{name}}$ pulumi import gcp:networkconnectivity/policyBasedRoute:PolicyBasedRoute default {{name}}Properties
The priority of this policy-based route. Priority is used to break ties in cases where there are more than one matching policy-based routes found. In cases where multiple policy-based routes are matched, the one with the lowest-numbered priority value wins. The default value is 1000. The priority value must be from 1 to 65535, inclusive.