@huaweicloudos/pulumi
Version:
A Pulumi package for creating and managing Huaweicloud cloud resources.
545 lines (544 loc) • 20.7 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
import { input as inputs, output as outputs } from "../types";
/**
* Add a node from an existing ECS server to a CCE cluster.
*
* ## Basic Usage
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as pulumi from "@huaweicloudos/pulumi";
*
* const config = new pulumi.Config();
* const clusterId = config.requireObject("clusterId");
* const serverId = config.requireObject("serverId");
* const keypairName = config.requireObject("keypairName");
* const test = new huaweicloud.cce.NodeAttach("test", {
* clusterId: clusterId,
* serverId: serverId,
* keyPair: keypairName,
* os: "EulerOS 2.5",
* tags: {
* foo: "bar",
* key: "value",
* },
* });
* ```
*/
export declare class NodeAttach extends pulumi.CustomResource {
/**
* Get an existing NodeAttach 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?: NodeAttachState, opts?: pulumi.CustomResourceOptions): NodeAttach;
/**
* Returns true if the given object is an instance of NodeAttach. 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 NodeAttach;
/**
* The name of the available partition (AZ).
*/
readonly availabilityZone: pulumi.Output<string>;
/**
* The charging mode of the CCE node. Valid values are *prePaid* and *postPaid*.
*/
readonly chargingMode: pulumi.Output<string>;
/**
* Specifies the ID of the cluster. Changing this parameter will create a new
* resource.
*/
readonly clusterId: pulumi.Output<string>;
/**
* The configurations of the data disk.
*/
readonly dataVolumes: pulumi.Output<outputs.Cce.NodeAttachDataVolume[]>;
/**
* Specifies the available disk space of a single docker container on the
* node in device mapper mode. Changing this parameter will reset the node.
*/
readonly dockerBaseSize: pulumi.Output<number | undefined>;
/**
* The Ecs group ID.
*/
readonly ecsGroupId: pulumi.Output<string>;
/**
* The enterprise project ID of the CCE node.
*/
readonly enterpriseProjectId: pulumi.Output<string>;
/**
* The extension NICs of the node.
* The object structure is documented below.
*/
readonly extensionNics: pulumi.Output<outputs.Cce.NodeAttachExtensionNic[]>;
/**
* The flavor ID of the CCE node.
*/
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.
* Changing this parameter will create a new resource.
*/
readonly hostnameConfig: pulumi.Output<outputs.Cce.NodeAttachHostnameConfig>;
/**
* schema: Internal
*/
readonly imageId: pulumi.Output<string | undefined>;
/**
* Specifies the custom initialization flags.
* Changing this parameter will reset the node.
*/
readonly initializedConditions: pulumi.Output<string[]>;
/**
* 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.
* Changing this parameter will reset the node.
*/
readonly labels: pulumi.Output<{
[key: string]: string;
} | undefined>;
/**
* Specifies the docker data disk configurations.
* This parameter is alternative to `storage`, and it's recommended to use `storage`.
* The following is an
* example:
*/
readonly lvmConfig: pulumi.Output<string | undefined>;
/**
* Specifies the the maximum number of instances a node is allowed to create.
* Changing this parameter will reset the node.
*/
readonly maxPods: pulumi.Output<number | undefined>;
/**
* Specifies the virtual space name. Currently, only **kubernetes**, **runtime**,
* and **user** are supported. Changing this parameter will reset the node.
*/
readonly name: pulumi.Output<string>;
/**
* schema: Internal
*/
readonly nicMultiQueue: pulumi.Output<string | undefined>;
/**
* schema: Internal
*/
readonly nicThreshold: pulumi.Output<string | undefined>;
/**
* Specifies the operating System of the node. Changing this parameter will reset 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).
*/
readonly os: pulumi.Output<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`.
*/
readonly password: pulumi.Output<string | undefined>;
/**
* Specifies the script required after installation. The input value can be
* a Base64 encoded string or not. Changing this parameter will reset the node.
*/
readonly postinstall: pulumi.Output<string | undefined>;
/**
* Specifies the script required before installation. The input value can be
* a Base64 encoded string or not. Changing this parameter will reset the node.
*/
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>;
/**
* Public IP of the CCE node.
*/
readonly publicIp: pulumi.Output<string>;
/**
* The region in which to create the CCE node attach resource. If omitted, the
* provider-level region will be used. Changing this creates a new CCE node attach resource.
*/
readonly region: pulumi.Output<string>;
/**
* The configuration of the system disk.
*/
readonly rootVolumes: pulumi.Output<outputs.Cce.NodeAttachRootVolume[]>;
/**
* Specifies the runtime of the CCE node. Valid values are *docker* and
* *containerd*. Changing this parameter will reset the node.
*/
readonly runtime: pulumi.Output<string>;
/**
* Specifies the ecs server ID. Changing this parameter will create a new
* resource.
*/
readonly serverId: pulumi.Output<string>;
/**
* Node status information.
*/
readonly status: pulumi.Output<string>;
/**
* Specifies the disk initialization management parameter.
* This parameter is alternative to `lvmConfig` and supported for clusters of v1.15.11 and later.
* Changing this parameter will reset the node.
*/
readonly storage: pulumi.Output<outputs.Cce.NodeAttachStorage | undefined>;
/**
* The ID of the subnet to which the NIC belongs.
*/
readonly subnetId: pulumi.Output<string>;
/**
* Specifies the KMS key ID. This is used to encrypt the root volume.
* Changing this parameter will reset the node.
*/
readonly systemDiskKmsKeyId: pulumi.Output<string | undefined>;
/**
* 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.
* Changing this parameter will reset the node. Each taint contains the following parameters:
*/
readonly taints: pulumi.Output<outputs.Cce.NodeAttachTaint[] | undefined>;
/**
* Create a NodeAttach 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: NodeAttachArgs, opts?: pulumi.CustomResourceOptions);
}
/**
* Input properties used for looking up and filtering NodeAttach resources.
*/
export interface NodeAttachState {
/**
* The name of the available partition (AZ).
*/
availabilityZone?: pulumi.Input<string>;
/**
* The charging mode of the CCE node. Valid values are *prePaid* and *postPaid*.
*/
chargingMode?: pulumi.Input<string>;
/**
* Specifies the ID of the cluster. Changing this parameter will create a new
* resource.
*/
clusterId?: pulumi.Input<string>;
/**
* The configurations of the data disk.
*/
dataVolumes?: pulumi.Input<pulumi.Input<inputs.Cce.NodeAttachDataVolume>[]>;
/**
* Specifies the available disk space of a single docker container on the
* node in device mapper mode. Changing this parameter will reset the node.
*/
dockerBaseSize?: pulumi.Input<number>;
/**
* The Ecs group ID.
*/
ecsGroupId?: pulumi.Input<string>;
/**
* The enterprise project ID of the CCE node.
*/
enterpriseProjectId?: pulumi.Input<string>;
/**
* The extension NICs of the node.
* The object structure is documented below.
*/
extensionNics?: pulumi.Input<pulumi.Input<inputs.Cce.NodeAttachExtensionNic>[]>;
/**
* The flavor ID of the CCE node.
*/
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.
* Changing this parameter will create a new resource.
*/
hostnameConfig?: pulumi.Input<inputs.Cce.NodeAttachHostnameConfig>;
/**
* schema: Internal
*/
imageId?: pulumi.Input<string>;
/**
* Specifies the custom initialization flags.
* Changing this parameter will reset the node.
*/
initializedConditions?: pulumi.Input<pulumi.Input<string>[]>;
/**
* 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.
* Changing this parameter will reset the node.
*/
labels?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* Specifies the docker data disk configurations.
* This parameter is alternative to `storage`, and it's recommended to use `storage`.
* The following is an
* example:
*/
lvmConfig?: pulumi.Input<string>;
/**
* Specifies the the maximum number of instances a node is allowed to create.
* Changing this parameter will reset the node.
*/
maxPods?: pulumi.Input<number>;
/**
* Specifies the virtual space name. Currently, only **kubernetes**, **runtime**,
* and **user** are supported. Changing this parameter will reset the node.
*/
name?: pulumi.Input<string>;
/**
* schema: Internal
*/
nicMultiQueue?: pulumi.Input<string>;
/**
* schema: Internal
*/
nicThreshold?: pulumi.Input<string>;
/**
* Specifies the operating System of the node. Changing this parameter will reset 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).
*/
os?: 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 script required after installation. The input value can be
* a Base64 encoded string or not. Changing this parameter will reset the node.
*/
postinstall?: pulumi.Input<string>;
/**
* Specifies the script required before installation. The input value can be
* a Base64 encoded string or not. Changing this parameter will reset the node.
*/
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>;
/**
* Public IP of the CCE node.
*/
publicIp?: pulumi.Input<string>;
/**
* The region in which to create the CCE node attach resource. If omitted, the
* provider-level region will be used. Changing this creates a new CCE node attach resource.
*/
region?: pulumi.Input<string>;
/**
* The configuration of the system disk.
*/
rootVolumes?: pulumi.Input<pulumi.Input<inputs.Cce.NodeAttachRootVolume>[]>;
/**
* Specifies the runtime of the CCE node. Valid values are *docker* and
* *containerd*. Changing this parameter will reset the node.
*/
runtime?: pulumi.Input<string>;
/**
* Specifies the ecs server ID. Changing this parameter will create a new
* resource.
*/
serverId?: pulumi.Input<string>;
/**
* Node status information.
*/
status?: pulumi.Input<string>;
/**
* Specifies the disk initialization management parameter.
* This parameter is alternative to `lvmConfig` and supported for clusters of v1.15.11 and later.
* Changing this parameter will reset the node.
*/
storage?: pulumi.Input<inputs.Cce.NodeAttachStorage>;
/**
* The ID of the subnet to which the NIC belongs.
*/
subnetId?: pulumi.Input<string>;
/**
* Specifies the KMS key ID. This is used to encrypt the root volume.
* Changing this parameter will reset the node.
*/
systemDiskKmsKeyId?: 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.
* Changing this parameter will reset the node. Each taint contains the following parameters:
*/
taints?: pulumi.Input<pulumi.Input<inputs.Cce.NodeAttachTaint>[]>;
}
/**
* The set of arguments for constructing a NodeAttach resource.
*/
export interface NodeAttachArgs {
/**
* Specifies the ID of the cluster. Changing this parameter will create a new
* resource.
*/
clusterId: pulumi.Input<string>;
/**
* Specifies the available disk space of a single docker container on the
* node in device mapper mode. Changing this parameter will reset the node.
*/
dockerBaseSize?: pulumi.Input<number>;
/**
* 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.
* Changing this parameter will create a new resource.
*/
hostnameConfig?: pulumi.Input<inputs.Cce.NodeAttachHostnameConfig>;
/**
* schema: Internal
*/
imageId?: pulumi.Input<string>;
/**
* Specifies the custom initialization flags.
* Changing this parameter will reset the node.
*/
initializedConditions?: pulumi.Input<pulumi.Input<string>[]>;
/**
* 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.
* Changing this parameter will reset the node.
*/
labels?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* Specifies the docker data disk configurations.
* This parameter is alternative to `storage`, and it's recommended to use `storage`.
* The following is an
* example:
*/
lvmConfig?: pulumi.Input<string>;
/**
* Specifies the the maximum number of instances a node is allowed to create.
* Changing this parameter will reset the node.
*/
maxPods?: pulumi.Input<number>;
/**
* Specifies the virtual space name. Currently, only **kubernetes**, **runtime**,
* and **user** are supported. Changing this parameter will reset the node.
*/
name?: pulumi.Input<string>;
/**
* schema: Internal
*/
nicMultiQueue?: pulumi.Input<string>;
/**
* schema: Internal
*/
nicThreshold?: pulumi.Input<string>;
/**
* Specifies the operating System of the node. Changing this parameter will reset 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).
*/
os: 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 script required after installation. The input value can be
* a Base64 encoded string or not. Changing this parameter will reset the node.
*/
postinstall?: pulumi.Input<string>;
/**
* Specifies the script required before installation. The input value can be
* a Base64 encoded string or not. Changing this parameter will reset the node.
*/
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>;
/**
* The region in which to create the CCE node attach resource. If omitted, the
* provider-level region will be used. Changing this creates a new CCE node attach resource.
*/
region?: pulumi.Input<string>;
/**
* Specifies the runtime of the CCE node. Valid values are *docker* and
* *containerd*. Changing this parameter will reset the node.
*/
runtime?: pulumi.Input<string>;
/**
* Specifies the ecs server ID. Changing this parameter will create a new
* resource.
*/
serverId: pulumi.Input<string>;
/**
* Specifies the disk initialization management parameter.
* This parameter is alternative to `lvmConfig` and supported for clusters of v1.15.11 and later.
* Changing this parameter will reset the node.
*/
storage?: pulumi.Input<inputs.Cce.NodeAttachStorage>;
/**
* Specifies the KMS key ID. This is used to encrypt the root volume.
* Changing this parameter will reset the node.
*/
systemDiskKmsKeyId?: 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.
* Changing this parameter will reset the node. Each taint contains the following parameters:
*/
taints?: pulumi.Input<pulumi.Input<inputs.Cce.NodeAttachTaint>[]>;
}