@huaweicloudos/pulumi
Version:
A Pulumi package for creating and managing Huaweicloud cloud resources.
1,020 lines (1,019 loc) • 37 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
import { input as inputs, output as outputs } from "../types";
/**
* Add a node to a CCE cluster.
*
* ## Basic Usage
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as huaweicloud from "@pulumi/huaweicloud";
* import * as pulumi from "@huaweicloudos/pulumi";
*
* const config = new pulumi.Config();
* const clusterId = config.requireObject("clusterId");
* const nodeName = config.requireObject("nodeName");
* const keypairName = config.requireObject("keypairName");
* const myaz = huaweicloud.getAvailabilityZones({});
* const myflavors = myaz.then(myaz => huaweicloud.Ecs.getFlavors({
* availabilityZone: myaz.names?[0],
* performanceType: "normal",
* cpuCoreCount: 2,
* memorySize: 4,
* }));
* const mykp = new huaweicloud.dew.Keypair("mykp", {publicKey: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAjpC1hwiOCCmKEWxJ4qzTTsJbKzndLo1BCz5PcwtUnflmU+gHJtWMZKpuEGVi29h0A/+ydKek1O18k10Ff+4tyFjiHDQAT9+OfgWf7+b1yK+qDip3X1C0UPMbwHlTfSGWLGZquwhvEFx9k3h/M+VtMvwR1lJ9LUyTAImnNjWG7TAIPmui30HvM2UiFEmqkr4ijq45MyX2+fLIePLRIFuu1p4whjHAQYufqyno3BS48icQb4p6iVEZPo4AE2o9oIyQvj2mx4dk5Y8CgSETOZTYDOR3rU2fZTRDRgPJDH9FWvQjF5tA0p3d9CoWWd2s6GKKbfoUIi8R/Db1BSPJwkqB jrp-hp-pc"});
* const node = new huaweicloud.cce.Node("node", {
* clusterId: clusterId,
* flavorId: myflavors.then(myflavors => myflavors.ids?[0]),
* availabilityZone: myaz.then(myaz => myaz.names?[0]),
* keyPair: mykp.name,
* rootVolume: {
* size: 40,
* volumetype: "SATA",
* },
* dataVolumes: [{
* size: 100,
* volumetype: "SATA",
* }],
* });
* ```
*
* ## Node with Eip
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as huaweicloud from "@pulumi/huaweicloud";
* import * as pulumi from "@huaweicloudos/pulumi";
*
* const config = new pulumi.Config();
* const clusterId = config.requireObject("clusterId");
* const nodeName = config.requireObject("nodeName");
* const keypairName = config.requireObject("keypairName");
* const myaz = huaweicloud.getAvailabilityZones({});
* const test = myaz.then(myaz => huaweicloud.Ecs.getFlavors({
* availabilityZone: myaz.names?[0],
* performanceType: "normal",
* cpuCoreCount: 2,
* memorySize: 4,
* }));
* const mykp = new huaweicloud.dew.Keypair("mykp", {publicKey: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAjpC1hwiOCCmKEWxJ4qzTTsJbKzndLo1BCz5PcwtUnflmU+gHJtWMZKpuEGVi29h0A/+ydKek1O18k10Ff+4tyFjiHDQAT9+OfgWf7+b1yK+qDip3X1C0UPMbwHlTfSGWLGZquwhvEFx9k3h/M+VtMvwR1lJ9LUyTAImnNjWG7TAIPmui30HvM2UiFEmqkr4ijq45MyX2+fLIePLRIFuu1p4whjHAQYufqyno3BS48icQb4p6iVEZPo4AE2o9oIyQvj2mx4dk5Y8CgSETOZTYDOR3rU2fZTRDRgPJDH9FWvQjF5tA0p3d9CoWWd2s6GKKbfoUIi8R/Db1BSPJwkqB jrp-hp-pc"});
* const mynode = new huaweicloud.cce.Node("mynode", {
* clusterId: clusterId,
* flavorId: data.huaweicloud_compute_flavors.myflavors.ids[0],
* availabilityZone: myaz.then(myaz => myaz.names?[0]),
* keyPair: mykp.name,
* rootVolume: {
* size: 40,
* volumetype: "SATA",
* },
* dataVolumes: [{
* size: 100,
* volumetype: "SATA",
* }],
* iptype: "5_bgp",
* bandwidthChargeMode: "traffic",
* sharetype: "PER",
* bandwidthSize: 100,
* });
* ```
*
* ## Node with Existing Eip
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as huaweicloud from "@pulumi/huaweicloud";
* import * as pulumi from "@huaweicloudos/pulumi";
*
* const config = new pulumi.Config();
* const clusterId = config.requireObject("clusterId");
* const nodeName = config.requireObject("nodeName");
* const keypairName = config.requireObject("keypairName");
* const myaz = huaweicloud.getAvailabilityZones({});
* const test = myaz.then(myaz => huaweicloud.Ecs.getFlavors({
* availabilityZone: myaz.names?[0],
* performanceType: "normal",
* cpuCoreCount: 2,
* memorySize: 4,
* }));
* const mykp = new huaweicloud.dew.Keypair("mykp", {publicKey: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAjpC1hwiOCCmKEWxJ4qzTTsJbKzndLo1BCz5PcwtUnflmU+gHJtWMZKpuEGVi29h0A/+ydKek1O18k10Ff+4tyFjiHDQAT9+OfgWf7+b1yK+qDip3X1C0UPMbwHlTfSGWLGZquwhvEFx9k3h/M+VtMvwR1lJ9LUyTAImnNjWG7TAIPmui30HvM2UiFEmqkr4ijq45MyX2+fLIePLRIFuu1p4whjHAQYufqyno3BS48icQb4p6iVEZPo4AE2o9oIyQvj2mx4dk5Y8CgSETOZTYDOR3rU2fZTRDRgPJDH9FWvQjF5tA0p3d9CoWWd2s6GKKbfoUIi8R/Db1BSPJwkqB jrp-hp-pc"});
* const myeip = new huaweicloud.vpc.Eip("myeip", {
* publicip: {
* type: "5_bgp",
* },
* bandwidth: {
* name: "test",
* size: 8,
* shareType: "PER",
* chargeMode: "traffic",
* },
* });
* const mynode = new huaweicloud.cce.Node("mynode", {
* clusterId: clusterId,
* flavorId: data.huaweicloud_compute_flavors.myflavors.ids[0],
* availabilityZone: myaz.then(myaz => myaz.names?[0]),
* keyPair: mykp.name,
* rootVolume: {
* size: 40,
* volumetype: "SATA",
* },
* dataVolumes: [{
* size: 100,
* volumetype: "SATA",
* }],
* eipId: myeip.id,
* });
* ```
*
* ## Node with storage configuration
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as huaweicloud from "@pulumi/huaweicloud";
* import * as pulumi from "@huaweicloudos/pulumi";
*
* const config = new pulumi.Config();
* const clusterId = config.requireObject("clusterId");
* const nodeName = config.requireObject("nodeName");
* const keypairName = config.requireObject("keypairName");
* const kmsKeyName = config.requireObject("kmsKeyName");
* const myaz = huaweicloud.getAvailabilityZones({});
* const test = myaz.then(myaz => huaweicloud.Ecs.getFlavors({
* availabilityZone: myaz.names?[0],
* performanceType: "normal",
* cpuCoreCount: 2,
* memorySize: 4,
* }));
* const mykp = new huaweicloud.dew.Keypair("mykp", {publicKey: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAjpC1hwiOCCmKEWxJ4qzTTsJbKzndLo1BCz5PcwtUnflmU+gHJtWMZKpuEGVi29h0A/+ydKek1O18k10Ff+4tyFjiHDQAT9+OfgWf7+b1yK+qDip3X1C0UPMbwHlTfSGWLGZquwhvEFx9k3h/M+VtMvwR1lJ9LUyTAImnNjWG7TAIPmui30HvM2UiFEmqkr4ijq45MyX2+fLIePLRIFuu1p4whjHAQYufqyno3BS48icQb4p6iVEZPo4AE2o9oIyQvj2mx4dk5Y8CgSETOZTYDOR3rU2fZTRDRgPJDH9FWvQjF5tA0p3d9CoWWd2s6GKKbfoUIi8R/Db1BSPJwkqB jrp-hp-pc"});
* const mykey = new huaweicloud.dew.Key("mykey", {
* keyAlias: kmsKeyName,
* pendingDays: "7",
* });
* const mynode = new huaweicloud.cce.Node("mynode", {
* clusterId: clusterId,
* flavorId: data.huaweicloud_compute_flavors.myflavors.ids[0],
* availabilityZone: myaz.then(myaz => myaz.names?[0]),
* keyPair: mykp.name,
* rootVolume: {
* size: 40,
* volumetype: "SSD",
* },
* dataVolumes: [
* {
* size: 100,
* volumetype: "SSD",
* },
* {
* size: 100,
* volumetype: "SSD",
* kmsKeyId: mykey.id,
* },
* ],
* storage: {
* selectors: [
* {
* name: "cceUse",
* type: "evs",
* matchLabelSize: "100",
* matchLabelCount: "1",
* },
* {
* name: "user",
* type: "evs",
* matchLabelSize: "100",
* matchLabelMetadataEncrypted: "1",
* matchLabelMetadataCmkid: mykey.id,
* matchLabelCount: "1",
* },
* ],
* groups: [
* {
* name: "vgpaas",
* selectorNames: ["cceUse"],
* cceManaged: true,
* virtualSpaces: [
* {
* name: "kubernetes",
* size: `10%`,
* lvmLvType: "linear",
* },
* {
* name: "runtime",
* size: `90%`,
* },
* ],
* },
* {
* name: "vguser",
* selectorNames: ["user"],
* virtualSpaces: [{
* name: "user",
* size: `100%`,
* lvmLvType: "linear",
* lvmPath: "/workspace",
* }],
* },
* ],
* },
* });
* ```
*
* ## Import
*
* CCE node can be imported using the cluster ID and node ID separated by a slash, e.g.bash
*
* ```sh
* $ pulumi import huaweicloud:Cce/node:Node my_node 5c20fdad-7288-11eb-b817-0255ac10158b/e9287dff-7288-11eb-b817-0255ac10158b
* ```
*
* Note that the imported state may not be identical to your resource definition, due to some attributes missing from the API response, security or some other reason. The missing attributes include`password`, `private_key`, `storage`, `fixed_ip`, `extension_nics`, `eip_id`, `iptype`, `bandwidth_charge_mode`, `bandwidth_size`, `share_type`, `extend_params`, `dedicated_host_id`, `initialized_conditions`, `labels`, `taints` and arguments for pre-paid. It is generally recommended running `terraform plan` after importing a node. You can then decide if changes should be applied to the node, or the resource definition should be updated to align with the node. Also you can ignore changes as below. hcl resource "huaweicloud_cce_node" "my_node" {
*
* ...
*
* lifecycle {
*
* ignore_changes = [
*
* extend_params, labels,
*
* ]
*
* } }
*/
export declare class Node extends pulumi.CustomResource {
/**
* Get an existing Node resource's state with the given name, ID, and optional extra
* properties used to qualify the lookup.
*
* @param name The _unique_ name of the resulting resource.
* @param id The _unique_ provider ID of the resource to lookup.
* @param state Any extra arguments used during the lookup.
* @param opts Optional settings to control the behavior of the CustomResource.
*/
static get(name: string, id: pulumi.Input<pulumi.ID>, state?: NodeState, opts?: pulumi.CustomResourceOptions): Node;
/**
* Returns true if the given object is an instance of Node. This is designed to work even
* when multiple copies of the Pulumi SDK have been loaded into the same process.
*/
static isInstance(obj: any): obj is Node;
/**
* schema: Internal
*/
readonly annotations: pulumi.Output<{
[key: string]: string;
} | undefined>;
/**
* @deprecated Deprecated
*/
readonly autoPay: pulumi.Output<string | undefined>;
/**
* Specifies whether auto renew is enabled. Valid values are "true" and "false".
*/
readonly autoRenew: pulumi.Output<string | undefined>;
/**
* Specifies the name of the available partition (AZ).
*/
readonly availabilityZone: pulumi.Output<string>;
/**
* Specifies the bandwidth billing type.
*/
readonly bandwidthChargeMode: pulumi.Output<string | undefined>;
/**
* Specifies the bandwidth size.
*/
readonly bandwidthSize: pulumi.Output<number | undefined>;
/**
* @deprecated use charging_mode instead
*/
readonly billingMode: pulumi.Output<number>;
/**
* Specifies the charging mode of the CCE node. Valid values are *prePaid*
* and *postPaid*, defaults to *postPaid*.
*/
readonly chargingMode: pulumi.Output<string>;
/**
* Specifies the ID of the cluster.
*/
readonly clusterId: pulumi.Output<string>;
/**
* Specifies the configurations of the data disk.
*/
readonly dataVolumes: pulumi.Output<outputs.Cce.NodeDataVolume[]>;
/**
* Specifies the ID of the DeH to which the node is scheduled.
*/
readonly dedicatedHostId: pulumi.Output<string | undefined>;
/**
* Specifies the ECS group ID. If specified, the node will be created under
* the cloud server group.
*/
readonly ecsGroupId: pulumi.Output<string | undefined>;
/**
* schema: Deprecated
*/
readonly ecsPerformanceType: pulumi.Output<string | undefined>;
/**
* Specifies the ID of the EIP.
*/
readonly eipId: pulumi.Output<string | undefined>;
/**
* @deprecated use eip_id instead
*/
readonly eipIds: pulumi.Output<string[] | undefined>;
readonly enableForceNew: pulumi.Output<string | undefined>;
/**
* Specifies the enterprise project ID of the CCE node.
*/
readonly enterpriseProjectId: pulumi.Output<string>;
/**
* schema: Deprecated
*/
readonly extendParam: pulumi.Output<{
[key: string]: string;
} | undefined>;
/**
* @deprecated use charging_mode instead
*/
readonly extendParamChargingMode: pulumi.Output<number | undefined>;
/**
* Specifies the extended parameters.
* The object structure is documented below.
*/
readonly extendParams: pulumi.Output<outputs.Cce.NodeExtendParams | undefined>;
/**
* Specifies extension NICs of the node.
* The object structure is documented below.
*/
readonly extensionNics: pulumi.Output<outputs.Cce.NodeExtensionNic[] | undefined>;
/**
* Specifies the fixed IP of the NIC.
*/
readonly fixedIp: pulumi.Output<string | undefined>;
/**
* Specifies the flavor ID.
* resource.
*/
readonly flavorId: pulumi.Output<string>;
/**
* Specifies the hostname config of the kubernetes node,
* which is supported by clusters of v1.23.6-r0 to v1.25 or clusters of v1.25.2-r0 or later versions.
* The object structure is documented below.
*/
readonly hostnameConfig: pulumi.Output<outputs.Cce.NodeHostnameConfig>;
/**
* Specifies the custom initialization flags.
*/
readonly initializedConditions: pulumi.Output<string[]>;
/**
* Specifies the elastic IP type.
*/
readonly iptype: pulumi.Output<string | undefined>;
/**
* schema: Internal
*/
readonly keepEcs: pulumi.Output<boolean | undefined>;
/**
* Specifies the key pair name when logging in to select the key pair mode.
* This parameter and `password` are alternative.
*/
readonly keyPair: pulumi.Output<string | undefined>;
/**
* Specifies the tags of a Kubernetes node, key/value pair format.
*/
readonly labels: pulumi.Output<{
[key: string]: string;
} | undefined>;
/**
* Specifies the maximum number of instances a node is allowed to create.
*/
readonly maxPods: pulumi.Output<number | undefined>;
/**
* Specifies the virtual space name. Currently, only **kubernetes**, **runtime**,
* and **user** are supported.
*/
readonly name: pulumi.Output<string>;
/**
* @deprecated will be removed after v1.26.0
*/
readonly orderId: pulumi.Output<string | undefined>;
/**
* Specifies the operating system of the node.
* The value can be **EulerOS 2.9** and **CentOS 7.6** e.g. For more details,
* please see [documentation](https://support.huaweicloud.com/intl/en-us/api-cce/node-os.html).
* This parameter is required when the `nodeImageId` in `extendParams` is not specified.
*/
readonly os: pulumi.Output<string>;
/**
* schema: Internal
*/
readonly partition: pulumi.Output<string | undefined>;
/**
* Specifies the root password when logging in to select the password mode.
* The password consists of 8 to 26 characters and must contain at least three of following: uppercase letters,
* lowercase letters, digits, special characters(!@$%^-_=+[{}]:,./?~#*).
* This parameter can be plain or salted and is alternative to `keyPair`.
*/
readonly password: pulumi.Output<string | undefined>;
/**
* Specifies the charging period of the CCE node. If `periodUnit` is set to *month*
* , the value ranges from 1 to 9. If `periodUnit` is set to *year*, the value ranges from 1 to 3. This parameter is
* mandatory if `chargingMode` is set to *prePaid*.
*/
readonly period: pulumi.Output<number | undefined>;
/**
* Specifies the charging period unit of the CCE node.
* Valid values are *month* and *year*. This parameter is mandatory if `chargingMode` is set to *prePaid*.
*/
readonly periodUnit: pulumi.Output<string | undefined>;
/**
* Specifies the script to be executed after installation.
* The input value can be a Base64 encoded string or not.
*/
readonly postinstall: pulumi.Output<string | undefined>;
/**
* Specifies the script to be executed before installation.
* The input value can be a Base64 encoded string or not.
*/
readonly preinstall: pulumi.Output<string | undefined>;
/**
* Private IP of the CCE node.
*/
readonly privateIp: pulumi.Output<string>;
/**
* Specifies the private key of the in used `keyPair`. This parameter is mandatory
* when replacing or unbinding a keypair if the CCE node is in **Active** state.
*/
readonly privateKey: pulumi.Output<string | undefined>;
/**
* schema: Deprecated
*/
readonly productId: pulumi.Output<string | undefined>;
/**
* Public IP of the CCE node.
*/
readonly publicIp: pulumi.Output<string>;
/**
* schema: Deprecated
*/
readonly publicKey: pulumi.Output<string | undefined>;
/**
* Specifies the region in which to create the CCE node resource.
* If omitted, the provider-level region will be used. Changing this creates a new CCE node resource.
*/
readonly region: pulumi.Output<string>;
/**
* Specifies the configuration of the system disk.
*/
readonly rootVolume: pulumi.Output<outputs.Cce.NodeRootVolume>;
/**
* Specifies the runtime of the CCE node. Valid values are *docker* and
* *containerd*.
*/
readonly runtime: pulumi.Output<string>;
/**
* ID of the ECS instance associated with the node.
*/
readonly serverId: pulumi.Output<string>;
/**
* Specifies the bandwidth sharing type.
*/
readonly sharetype: pulumi.Output<string | undefined>;
/**
* The status of the CCE node.
*/
readonly status: pulumi.Output<string>;
/**
* Specifies the disk initialization management parameter.
* If omitted, disks are managed based on the DockerLVMConfigOverride parameter in extendParam.
* This parameter is supported for clusters of v1.15.11 and later.
* If the node has both local and EVS disks attached,
* this parameter must be specified, or it may result in unexpected disk partitions.
* If you want to change the value range of a data disk to **20** to **32768**, this parameter must be specified.
* If you want to use the shared disk space (with the runtime and Kubernetes partitions cancelled),
* this parameter must be specified.
* If you want to store system components in the system disk, this parameter must be specified.
*/
readonly storage: pulumi.Output<outputs.Cce.NodeStorage | undefined>;
/**
* Specifies the ID of the subnet to which the NIC belongs.
*/
readonly subnetId: pulumi.Output<string>;
/**
* Specifies the tags of a VM node, key/value pair format.
*/
readonly tags: pulumi.Output<{
[key: string]: string;
} | undefined>;
/**
* Specifies the taints configuration of the nodes to set anti-affinity.
* Each taint contains the following parameters:
*/
readonly taints: pulumi.Output<outputs.Cce.NodeTaint[] | undefined>;
/**
* Create a Node resource with the given unique name, arguments, and options.
*
* @param name The _unique_ name of the resource.
* @param args The arguments to use to populate this resource's properties.
* @param opts A bag of options that control this resource's behavior.
*/
constructor(name: string, args: NodeArgs, opts?: pulumi.CustomResourceOptions);
}
/**
* Input properties used for looking up and filtering Node resources.
*/
export interface NodeState {
/**
* schema: Internal
*/
annotations?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* @deprecated Deprecated
*/
autoPay?: pulumi.Input<string>;
/**
* Specifies whether auto renew is enabled. Valid values are "true" and "false".
*/
autoRenew?: pulumi.Input<string>;
/**
* Specifies the name of the available partition (AZ).
*/
availabilityZone?: pulumi.Input<string>;
/**
* Specifies the bandwidth billing type.
*/
bandwidthChargeMode?: pulumi.Input<string>;
/**
* Specifies the bandwidth size.
*/
bandwidthSize?: pulumi.Input<number>;
/**
* @deprecated use charging_mode instead
*/
billingMode?: pulumi.Input<number>;
/**
* Specifies the charging mode of the CCE node. Valid values are *prePaid*
* and *postPaid*, defaults to *postPaid*.
*/
chargingMode?: pulumi.Input<string>;
/**
* Specifies the ID of the cluster.
*/
clusterId?: pulumi.Input<string>;
/**
* Specifies the configurations of the data disk.
*/
dataVolumes?: pulumi.Input<pulumi.Input<inputs.Cce.NodeDataVolume>[]>;
/**
* Specifies the ID of the DeH to which the node is scheduled.
*/
dedicatedHostId?: pulumi.Input<string>;
/**
* Specifies the ECS group ID. If specified, the node will be created under
* the cloud server group.
*/
ecsGroupId?: pulumi.Input<string>;
/**
* schema: Deprecated
*/
ecsPerformanceType?: pulumi.Input<string>;
/**
* Specifies the ID of the EIP.
*/
eipId?: pulumi.Input<string>;
/**
* @deprecated use eip_id instead
*/
eipIds?: pulumi.Input<pulumi.Input<string>[]>;
enableForceNew?: pulumi.Input<string>;
/**
* Specifies the enterprise project ID of the CCE node.
*/
enterpriseProjectId?: pulumi.Input<string>;
/**
* schema: Deprecated
*/
extendParam?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* @deprecated use charging_mode instead
*/
extendParamChargingMode?: pulumi.Input<number>;
/**
* Specifies the extended parameters.
* The object structure is documented below.
*/
extendParams?: pulumi.Input<inputs.Cce.NodeExtendParams>;
/**
* Specifies extension NICs of the node.
* The object structure is documented below.
*/
extensionNics?: pulumi.Input<pulumi.Input<inputs.Cce.NodeExtensionNic>[]>;
/**
* Specifies the fixed IP of the NIC.
*/
fixedIp?: pulumi.Input<string>;
/**
* Specifies the flavor ID.
* resource.
*/
flavorId?: pulumi.Input<string>;
/**
* Specifies the hostname config of the kubernetes node,
* which is supported by clusters of v1.23.6-r0 to v1.25 or clusters of v1.25.2-r0 or later versions.
* The object structure is documented below.
*/
hostnameConfig?: pulumi.Input<inputs.Cce.NodeHostnameConfig>;
/**
* Specifies the custom initialization flags.
*/
initializedConditions?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Specifies the elastic IP type.
*/
iptype?: pulumi.Input<string>;
/**
* schema: Internal
*/
keepEcs?: pulumi.Input<boolean>;
/**
* Specifies the key pair name when logging in to select the key pair mode.
* This parameter and `password` are alternative.
*/
keyPair?: pulumi.Input<string>;
/**
* Specifies the tags of a Kubernetes node, key/value pair format.
*/
labels?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* Specifies the maximum number of instances a node is allowed to create.
*/
maxPods?: pulumi.Input<number>;
/**
* Specifies the virtual space name. Currently, only **kubernetes**, **runtime**,
* and **user** are supported.
*/
name?: pulumi.Input<string>;
/**
* @deprecated will be removed after v1.26.0
*/
orderId?: pulumi.Input<string>;
/**
* Specifies the operating system of the node.
* The value can be **EulerOS 2.9** and **CentOS 7.6** e.g. For more details,
* please see [documentation](https://support.huaweicloud.com/intl/en-us/api-cce/node-os.html).
* This parameter is required when the `nodeImageId` in `extendParams` is not specified.
*/
os?: pulumi.Input<string>;
/**
* schema: Internal
*/
partition?: pulumi.Input<string>;
/**
* Specifies the root password when logging in to select the password mode.
* The password consists of 8 to 26 characters and must contain at least three of following: uppercase letters,
* lowercase letters, digits, special characters(!@$%^-_=+[{}]:,./?~#*).
* This parameter can be plain or salted and is alternative to `keyPair`.
*/
password?: pulumi.Input<string>;
/**
* Specifies the charging period of the CCE node. If `periodUnit` is set to *month*
* , the value ranges from 1 to 9. If `periodUnit` is set to *year*, the value ranges from 1 to 3. This parameter is
* mandatory if `chargingMode` is set to *prePaid*.
*/
period?: pulumi.Input<number>;
/**
* Specifies the charging period unit of the CCE node.
* Valid values are *month* and *year*. This parameter is mandatory if `chargingMode` is set to *prePaid*.
*/
periodUnit?: pulumi.Input<string>;
/**
* Specifies the script to be executed after installation.
* The input value can be a Base64 encoded string or not.
*/
postinstall?: pulumi.Input<string>;
/**
* Specifies the script to be executed before installation.
* The input value can be a Base64 encoded string or not.
*/
preinstall?: pulumi.Input<string>;
/**
* Private IP of the CCE node.
*/
privateIp?: pulumi.Input<string>;
/**
* Specifies the private key of the in used `keyPair`. This parameter is mandatory
* when replacing or unbinding a keypair if the CCE node is in **Active** state.
*/
privateKey?: pulumi.Input<string>;
/**
* schema: Deprecated
*/
productId?: pulumi.Input<string>;
/**
* Public IP of the CCE node.
*/
publicIp?: pulumi.Input<string>;
/**
* schema: Deprecated
*/
publicKey?: pulumi.Input<string>;
/**
* Specifies the region in which to create the CCE node resource.
* If omitted, the provider-level region will be used. Changing this creates a new CCE node resource.
*/
region?: pulumi.Input<string>;
/**
* Specifies the configuration of the system disk.
*/
rootVolume?: pulumi.Input<inputs.Cce.NodeRootVolume>;
/**
* Specifies the runtime of the CCE node. Valid values are *docker* and
* *containerd*.
*/
runtime?: pulumi.Input<string>;
/**
* ID of the ECS instance associated with the node.
*/
serverId?: pulumi.Input<string>;
/**
* Specifies the bandwidth sharing type.
*/
sharetype?: pulumi.Input<string>;
/**
* The status of the CCE node.
*/
status?: pulumi.Input<string>;
/**
* Specifies the disk initialization management parameter.
* If omitted, disks are managed based on the DockerLVMConfigOverride parameter in extendParam.
* This parameter is supported for clusters of v1.15.11 and later.
* If the node has both local and EVS disks attached,
* this parameter must be specified, or it may result in unexpected disk partitions.
* If you want to change the value range of a data disk to **20** to **32768**, this parameter must be specified.
* If you want to use the shared disk space (with the runtime and Kubernetes partitions cancelled),
* this parameter must be specified.
* If you want to store system components in the system disk, this parameter must be specified.
*/
storage?: pulumi.Input<inputs.Cce.NodeStorage>;
/**
* Specifies the ID of the subnet to which the NIC belongs.
*/
subnetId?: pulumi.Input<string>;
/**
* Specifies the tags of a VM node, key/value pair format.
*/
tags?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* Specifies the taints configuration of the nodes to set anti-affinity.
* Each taint contains the following parameters:
*/
taints?: pulumi.Input<pulumi.Input<inputs.Cce.NodeTaint>[]>;
}
/**
* The set of arguments for constructing a Node resource.
*/
export interface NodeArgs {
/**
* schema: Internal
*/
annotations?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* @deprecated Deprecated
*/
autoPay?: pulumi.Input<string>;
/**
* Specifies whether auto renew is enabled. Valid values are "true" and "false".
*/
autoRenew?: pulumi.Input<string>;
/**
* Specifies the name of the available partition (AZ).
*/
availabilityZone: pulumi.Input<string>;
/**
* Specifies the bandwidth billing type.
*/
bandwidthChargeMode?: pulumi.Input<string>;
/**
* Specifies the bandwidth size.
*/
bandwidthSize?: pulumi.Input<number>;
/**
* @deprecated use charging_mode instead
*/
billingMode?: pulumi.Input<number>;
/**
* Specifies the charging mode of the CCE node. Valid values are *prePaid*
* and *postPaid*, defaults to *postPaid*.
*/
chargingMode?: pulumi.Input<string>;
/**
* Specifies the ID of the cluster.
*/
clusterId: pulumi.Input<string>;
/**
* Specifies the configurations of the data disk.
*/
dataVolumes?: pulumi.Input<pulumi.Input<inputs.Cce.NodeDataVolume>[]>;
/**
* Specifies the ID of the DeH to which the node is scheduled.
*/
dedicatedHostId?: pulumi.Input<string>;
/**
* Specifies the ECS group ID. If specified, the node will be created under
* the cloud server group.
*/
ecsGroupId?: pulumi.Input<string>;
/**
* schema: Deprecated
*/
ecsPerformanceType?: pulumi.Input<string>;
/**
* Specifies the ID of the EIP.
*/
eipId?: pulumi.Input<string>;
/**
* @deprecated use eip_id instead
*/
eipIds?: pulumi.Input<pulumi.Input<string>[]>;
enableForceNew?: pulumi.Input<string>;
/**
* Specifies the enterprise project ID of the CCE node.
*/
enterpriseProjectId?: pulumi.Input<string>;
/**
* schema: Deprecated
*/
extendParam?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* @deprecated use charging_mode instead
*/
extendParamChargingMode?: pulumi.Input<number>;
/**
* Specifies the extended parameters.
* The object structure is documented below.
*/
extendParams?: pulumi.Input<inputs.Cce.NodeExtendParams>;
/**
* Specifies extension NICs of the node.
* The object structure is documented below.
*/
extensionNics?: pulumi.Input<pulumi.Input<inputs.Cce.NodeExtensionNic>[]>;
/**
* Specifies the fixed IP of the NIC.
*/
fixedIp?: pulumi.Input<string>;
/**
* Specifies the flavor ID.
* resource.
*/
flavorId: pulumi.Input<string>;
/**
* Specifies the hostname config of the kubernetes node,
* which is supported by clusters of v1.23.6-r0 to v1.25 or clusters of v1.25.2-r0 or later versions.
* The object structure is documented below.
*/
hostnameConfig?: pulumi.Input<inputs.Cce.NodeHostnameConfig>;
/**
* Specifies the custom initialization flags.
*/
initializedConditions?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Specifies the elastic IP type.
*/
iptype?: pulumi.Input<string>;
/**
* schema: Internal
*/
keepEcs?: pulumi.Input<boolean>;
/**
* Specifies the key pair name when logging in to select the key pair mode.
* This parameter and `password` are alternative.
*/
keyPair?: pulumi.Input<string>;
/**
* Specifies the tags of a Kubernetes node, key/value pair format.
*/
labels?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* Specifies the maximum number of instances a node is allowed to create.
*/
maxPods?: pulumi.Input<number>;
/**
* Specifies the virtual space name. Currently, only **kubernetes**, **runtime**,
* and **user** are supported.
*/
name?: pulumi.Input<string>;
/**
* @deprecated will be removed after v1.26.0
*/
orderId?: pulumi.Input<string>;
/**
* Specifies the operating system of the node.
* The value can be **EulerOS 2.9** and **CentOS 7.6** e.g. For more details,
* please see [documentation](https://support.huaweicloud.com/intl/en-us/api-cce/node-os.html).
* This parameter is required when the `nodeImageId` in `extendParams` is not specified.
*/
os?: pulumi.Input<string>;
/**
* schema: Internal
*/
partition?: pulumi.Input<string>;
/**
* Specifies the root password when logging in to select the password mode.
* The password consists of 8 to 26 characters and must contain at least three of following: uppercase letters,
* lowercase letters, digits, special characters(!@$%^-_=+[{}]:,./?~#*).
* This parameter can be plain or salted and is alternative to `keyPair`.
*/
password?: pulumi.Input<string>;
/**
* Specifies the charging period of the CCE node. If `periodUnit` is set to *month*
* , the value ranges from 1 to 9. If `periodUnit` is set to *year*, the value ranges from 1 to 3. This parameter is
* mandatory if `chargingMode` is set to *prePaid*.
*/
period?: pulumi.Input<number>;
/**
* Specifies the charging period unit of the CCE node.
* Valid values are *month* and *year*. This parameter is mandatory if `chargingMode` is set to *prePaid*.
*/
periodUnit?: pulumi.Input<string>;
/**
* Specifies the script to be executed after installation.
* The input value can be a Base64 encoded string or not.
*/
postinstall?: pulumi.Input<string>;
/**
* Specifies the script to be executed before installation.
* The input value can be a Base64 encoded string or not.
*/
preinstall?: pulumi.Input<string>;
/**
* Specifies the private key of the in used `keyPair`. This parameter is mandatory
* when replacing or unbinding a keypair if the CCE node is in **Active** state.
*/
privateKey?: pulumi.Input<string>;
/**
* schema: Deprecated
*/
productId?: pulumi.Input<string>;
/**
* schema: Deprecated
*/
publicKey?: pulumi.Input<string>;
/**
* Specifies the region in which to create the CCE node resource.
* If omitted, the provider-level region will be used. Changing this creates a new CCE node resource.
*/
region?: pulumi.Input<string>;
/**
* Specifies the configuration of the system disk.
*/
rootVolume: pulumi.Input<inputs.Cce.NodeRootVolume>;
/**
* Specifies the runtime of the CCE node. Valid values are *docker* and
* *containerd*.
*/
runtime?: pulumi.Input<string>;
/**
* Specifies the bandwidth sharing type.
*/
sharetype?: pulumi.Input<string>;
/**
* Specifies the disk initialization management parameter.
* If omitted, disks are managed based on the DockerLVMConfigOverride parameter in extendParam.
* This parameter is supported for clusters of v1.15.11 and later.
* If the node has both local and EVS disks attached,
* this parameter must be specified, or it may result in unexpected disk partitions.
* If you want to change the value range of a data disk to **20** to **32768**, this parameter must be specified.
* If you want to use the shared disk space (with the runtime and Kubernetes partitions cancelled),
* this parameter must be specified.
* If you want to store system components in the system disk, this parameter must be specified.
*/
storage?: pulumi.Input<inputs.Cce.NodeStorage>;
/**
* Specifies the ID of the subnet to which the NIC belongs.
*/
subnetId?: pulumi.Input<string>;
/**
* Specifies the tags of a VM node, key/value pair format.
*/
tags?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* Specifies the taints configuration of the nodes to set anti-affinity.
* Each taint contains the following parameters:
*/
taints?: pulumi.Input<pulumi.Input<inputs.Cce.NodeTaint>[]>;
}