VirtualNodeArgs

data class VirtualNodeArgs(val eipInstanceId: Output<String>? = null, val enablePublicNetwork: Output<Boolean>? = null, val kubeConfig: Output<String>? = null, val resourceGroupId: Output<String>? = null, val securityGroupId: Output<String>? = null, val tags: Output<Map<String, Any>>? = null, val taints: Output<List<VirtualNodeTaintArgs>>? = null, val virtualNodeName: Output<String>? = null, val vswitchId: Output<String>? = null, val zoneId: Output<String>? = null) : ConvertibleToJava<VirtualNodeArgs>

Provides a ECI Virtual Node resource. For information about ECI Virtual Node and how to use it, see What is Virtual Node.

NOTE: Available since v1.145.0.

Example Usage

Basic Usage

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.alicloud.eci.EciFunctions;
import com.pulumi.alicloud.eci.inputs.GetZonesArgs;
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.EipAddress;
import com.pulumi.alicloud.ecs.EipAddressArgs;
import com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;
import com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;
import com.pulumi.alicloud.eci.VirtualNode;
import com.pulumi.alicloud.eci.VirtualNodeArgs;
import com.pulumi.alicloud.eci.inputs.VirtualNodeTaintArgs;
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();
final var name = config.get("name").orElse("tf-example");
final var defaultZones = EciFunctions.getZones();
var defaultNetwork = new Network("defaultNetwork", NetworkArgs.builder()
.vpcName(name)
.cidrBlock("10.0.0.0/8")
.build());
var defaultSwitch = new Switch("defaultSwitch", SwitchArgs.builder()
.vswitchName(name)
.cidrBlock("10.1.0.0/16")
.vpcId(defaultNetwork.id())
.zoneId(defaultZones.applyValue(getZonesResult -> getZonesResult.zones()[0].zoneIds()[0]))
.build());
var defaultSecurityGroup = new SecurityGroup("defaultSecurityGroup", SecurityGroupArgs.builder()
.vpcId(defaultNetwork.id())
.build());
var defaultEipAddress = new EipAddress("defaultEipAddress", EipAddressArgs.builder()
.isp("BGP")
.addressName(name)
.netmode("public")
.bandwidth("1")
.securityProtectionTypes("AntiDDoS_Enhanced")
.paymentType("PayAsYouGo")
.build());
final var defaultResourceGroups = ResourcemanagerFunctions.getResourceGroups();
var defaultVirtualNode = new VirtualNode("defaultVirtualNode", VirtualNodeArgs.builder()
.securityGroupId(defaultSecurityGroup.id())
.virtualNodeName(name)
.vswitchId(defaultSwitch.id())
.enablePublicNetwork(false)
.eipInstanceId(defaultEipAddress.id())
.resourceGroupId(defaultResourceGroups.applyValue(getResourceGroupsResult -> getResourceGroupsResult.groups()[0].id()))
.kubeConfig("kube_config")
.tags(Map.of("Created", "TF"))
.taints(VirtualNodeTaintArgs.builder()
.effect("NoSchedule")
.key("TF")
.value("example")
.build())
.build());
}
}

Import

ECI Virtual Node can be imported using the id, e.g.

$ pulumi import alicloud:eci/virtualNode:VirtualNode example <id>

Constructors

Link copied to clipboard
fun VirtualNodeArgs(eipInstanceId: Output<String>? = null, enablePublicNetwork: Output<Boolean>? = null, kubeConfig: Output<String>? = null, resourceGroupId: Output<String>? = null, securityGroupId: Output<String>? = null, tags: Output<Map<String, Any>>? = null, taints: Output<List<VirtualNodeTaintArgs>>? = null, virtualNodeName: Output<String>? = null, vswitchId: Output<String>? = null, zoneId: Output<String>? = null)

Functions

Link copied to clipboard
open override fun toJava(): VirtualNodeArgs

Properties

Link copied to clipboard
val eipInstanceId: Output<String>? = null

The Id of eip.

Link copied to clipboard
val enablePublicNetwork: Output<Boolean>? = null

Whether to enable public network. NOTE: If eip_instance_id is not configured and enable_public_network is true, the system will create an elastic public network IP.

Link copied to clipboard
val kubeConfig: Output<String>? = null

The kube config for the k8s cluster. It needs to be connected after Base64 encoding.

Link copied to clipboard
val resourceGroupId: Output<String>? = null

The resource group ID.

Link copied to clipboard
val securityGroupId: Output<String>? = null

The security group ID.

Link copied to clipboard
val tags: Output<Map<String, Any>>? = null

A mapping of tags to assign to the resource.

Link copied to clipboard
val taints: Output<List<VirtualNodeTaintArgs>>? = null

The taint. See taints below.

Link copied to clipboard
val virtualNodeName: Output<String>? = null

The name of the virtual node. The length of the name is limited to 2 to 128 characters. It can contain uppercase and lowercase letters, Chinese characters, numbers, half-width colon (:), underscores (_), or hyphens (-), and must start with letters.

Link copied to clipboard
val vswitchId: Output<String>? = null

The vswitch id.

Link copied to clipboard
val zoneId: Output<String>? = null

The Zone.