UNPKG

@huaweicloudos/pulumi

Version:

A Pulumi package for creating and managing Huaweicloud cloud resources.

545 lines (544 loc) 20.7 kB
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>[]>; }