Route Entry Args
data class RouteEntryArgs(val cidrBlock: Output<String>? = null, val instanceId: Output<String>? = null, val routeTableId: Output<String>? = null) : ConvertibleToJava<RouteEntryArgs>
Provides a CEN route entry resource. Cloud Enterprise Network (CEN) supports publishing and withdrawing route entries of attached networks. You can publish a route entry of an attached VPC or VBR to a CEN instance, then other attached networks can learn the route if there is no route conflict. You can withdraw a published route entry when CEN does not need it any more. For information about CEN route entries publishment and how to use it, see Manage network routes.
Example Usage
Basic Usage
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.alicloud.Provider;
import com.pulumi.alicloud.ProviderArgs;
import com.pulumi.alicloud.AlicloudFunctions;
import com.pulumi.alicloud.inputs.GetZonesArgs;
import com.pulumi.alicloud.ecs.EcsFunctions;
import com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;
import com.pulumi.alicloud.ecs.inputs.GetImagesArgs;
import com.pulumi.alicloud.vpc.Network;
import com.pulumi.alicloud.vpc.NetworkArgs;
import com.pulumi.alicloud.vpc.Switch;
import com.pulumi.alicloud.vpc.SwitchArgs;
import com.pulumi.alicloud.ecs.SecurityGroup;
import com.pulumi.alicloud.ecs.SecurityGroupArgs;
import com.pulumi.alicloud.ecs.Instance;
import com.pulumi.alicloud.ecs.InstanceArgs;
import com.pulumi.alicloud.cen.Instance;
import com.pulumi.alicloud.cen.InstanceAttachment;
import com.pulumi.alicloud.cen.InstanceAttachmentArgs;
import com.pulumi.alicloud.vpc.RouteEntry;
import com.pulumi.alicloud.vpc.RouteEntryArgs;
import com.pulumi.alicloud.cen.RouteEntry;
import com.pulumi.alicloud.cen.RouteEntryArgs;
import com.pulumi.resources.CustomResourceOptions;
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) {
final var config = ctx.config();
var hz = new Provider("hz", ProviderArgs.builder()
.region("cn-hangzhou")
.build());
final var name = config.get("name").orElse("tf-testAccCenRouteEntryConfig");
final var defaultZones = AlicloudFunctions.getZones(GetZonesArgs.builder()
.availableDiskCategory("cloud_efficiency")
.availableResourceCreation("VSwitch")
.build());
final var defaultInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()
.availabilityZone(defaultZones.applyValue(getZonesResult -> getZonesResult.zones()[0].id()))
.cpuCoreCount(1)
.memorySize(2)
.build());
final var defaultImages = EcsFunctions.getImages(GetImagesArgs.builder()
.nameRegex("^ubuntu_18.*64")
.mostRecent(true)
.owners("system")
.build());
var vpc = new Network("vpc", NetworkArgs.builder()
.vpcName(name)
.cidrBlock("172.16.0.0/12")
.build(), CustomResourceOptions.builder()
.provider(alicloud.hz())
.build());
var defaultSwitch = new Switch("defaultSwitch", SwitchArgs.builder()
.vpcId(vpc.id())
.cidrBlock("172.16.0.0/21")
.zoneId(defaultZones.applyValue(getZonesResult -> getZonesResult.zones()[0].id()))
.vswitchName(name)
.build(), CustomResourceOptions.builder()
.provider(alicloud.hz())
.build());
var defaultSecurityGroup = new SecurityGroup("defaultSecurityGroup", SecurityGroupArgs.builder()
.description("foo")
.vpcId(vpc.id())
.build(), CustomResourceOptions.builder()
.provider(alicloud.hz())
.build());
var defaultInstance = new Instance("defaultInstance", InstanceArgs.builder()
.vswitchId(defaultSwitch.id())
.imageId(defaultImages.applyValue(getImagesResult -> getImagesResult.images()[0].id()))
.instanceType(defaultInstanceTypes.applyValue(getInstanceTypesResult -> getInstanceTypesResult.instanceTypes()[0].id()))
.systemDiskCategory("cloud_efficiency")
.internetChargeType("PayByTraffic")
.internetMaxBandwidthOut(5)
.securityGroups(defaultSecurityGroup.id())
.instanceName(name)
.build(), CustomResourceOptions.builder()
.provider(alicloud.hz())
.build());
var cen = new Instance("cen");
var attach = new InstanceAttachment("attach", InstanceAttachmentArgs.builder()
.instanceId(cen.id())
.childInstanceId(vpc.id())
.childInstanceType("VPC")
.childInstanceRegionId("cn-hangzhou")
.build(), CustomResourceOptions.builder()
.dependsOn(defaultSwitch)
.build());
var route = new RouteEntry("route", RouteEntryArgs.builder()
.routeTableId(vpc.routeTableId())
.destinationCidrblock("11.0.0.0/16")
.nexthopType("Instance")
.nexthopId(defaultInstance.id())
.build(), CustomResourceOptions.builder()
.provider(alicloud.hz())
.build());
var foo = new RouteEntry("foo", RouteEntryArgs.builder()
.instanceId(cen.id())
.routeTableId(vpc.routeTableId())
.cidrBlock(route.destinationCidrblock())
.build(), CustomResourceOptions.builder()
.provider(alicloud.hz())
.dependsOn(attach)
.build());
}
}
Content copied to clipboard
Import
CEN instance can be imported using the id, e.g.
$ pulumi import alicloud:cen/routeEntry:RouteEntry example cen-abc123456:vtb-abc123:192.168.0.0/24
Content copied to clipboard
Constructors
Link copied to clipboard
fun RouteEntryArgs(cidrBlock: Output<String>? = null, instanceId: Output<String>? = null, routeTableId: Output<String>? = null)