Split Tunnel
Provides a Cloudflare Split Tunnel resource. Split tunnels are used to either include or exclude lists of routes from the WARP client's tunnel.
Example Usage
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.cloudflare.SplitTunnel;
import com.pulumi.cloudflare.SplitTunnelArgs;
import com.pulumi.cloudflare.inputs.SplitTunnelTunnelArgs;
import com.pulumi.cloudflare.DeviceSettingsPolicy;
import com.pulumi.cloudflare.DeviceSettingsPolicyArgs;
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 exampleSplitTunnelExclude = new SplitTunnel("exampleSplitTunnelExclude", SplitTunnelArgs.builder()
.accountId("f037e56e89293a057740de681ac9abbe")
.mode("exclude")
.tunnels(SplitTunnelTunnelArgs.builder()
.host("*.example.com")
.description("example domain")
.build())
.build());
var exampleSplitTunnelIncludeSplitTunnel = new SplitTunnel("exampleSplitTunnelIncludeSplitTunnel", SplitTunnelArgs.builder()
.accountId("f037e56e89293a057740de681ac9abbe")
.mode("include")
.tunnels(SplitTunnelTunnelArgs.builder()
.host("*.example.com")
.description("example domain")
.build())
.build());
var developerWarpPolicy = new DeviceSettingsPolicy("developerWarpPolicy", DeviceSettingsPolicyArgs.builder()
.accountId("f037e56e89293a057740de681ac9abbe")
.name("Developers")
.precedence(10)
.match("any(identity.groups.name[*] in {\"Developers\"})")
.switchLocked(true)
.build());
var exampleDeviceSettingsPolicySplitTunnelExclude = new SplitTunnel("exampleDeviceSettingsPolicySplitTunnelExclude", SplitTunnelArgs.builder()
.accountId("f037e56e89293a057740de681ac9abbe")
.policyId(developerWarpPolicy.id())
.mode("exclude")
.tunnels(SplitTunnelTunnelArgs.builder()
.host("*.example.com")
.description("example domain")
.build())
.build());
var exampleSplitTunnelIncludeIndex_splitTunnelSplitTunnel = new SplitTunnel("exampleSplitTunnelIncludeIndex/splitTunnelSplitTunnel", SplitTunnelArgs.builder()
.accountId("f037e56e89293a057740de681ac9abbe")
.policyId(cloudflare_device_policy.developer_warp_policy().id())
.mode("include")
.tunnels(SplitTunnelTunnelArgs.builder()
.host("*.example.com")
.description("example domain")
.build())
.build());
}
}
Content copied to clipboard
Import
Split Tunnels for default device policies must use "default" as the policy ID.
$ pulumi import cloudflare:index/splitTunnel:SplitTunnel example <account_id>/<policy_id>/<mode>
Content copied to clipboard