@lbrlabs/pulumi-scaleway
Version:
A Pulumi package for creating and managing scaleway cloud resources.
360 lines (359 loc) • 13.7 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
import * as inputs from "./types/input";
import * as outputs from "./types/output";
/**
* ## Import
*
* Kubernetes pools can be imported using the `{region}/{id}`, e.g. bash
*
* ```sh
* $ pulumi import scaleway:index/kubernetesNodePool:KubernetesNodePool mypool fr-par/11111111-1111-1111-1111-111111111111
* ```
*/
export declare class KubernetesNodePool extends pulumi.CustomResource {
/**
* Get an existing KubernetesNodePool 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?: KubernetesNodePoolState, opts?: pulumi.CustomResourceOptions): KubernetesNodePool;
/**
* Returns true if the given object is an instance of KubernetesNodePool. 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 KubernetesNodePool;
/**
* Enables the autohealing feature for this pool.
*/
readonly autohealing: pulumi.Output<boolean | undefined>;
/**
* Enables the autoscaling feature for this pool.
* > **Important:** When enabled, an update of the `size` will not be taken into account.
*/
readonly autoscaling: pulumi.Output<boolean | undefined>;
/**
* The ID of the Kubernetes cluster on which this pool will be created.
*/
readonly clusterId: pulumi.Output<string>;
/**
* The container runtime of the pool.
* > **Important:** Updates to this field will recreate a new resource.
*/
readonly containerRuntime: pulumi.Output<string | undefined>;
/**
* The creation date of the pool.
*/
readonly createdAt: pulumi.Output<string>;
/**
* The actual size of the pool
*/
readonly currentSize: pulumi.Output<number>;
/**
* The Kubelet arguments to be used by this pool
*/
readonly kubeletArgs: pulumi.Output<{
[key: string]: string;
} | undefined>;
/**
* The maximum size of the pool, used by the autoscaling feature.
*/
readonly maxSize: pulumi.Output<number>;
/**
* The minimum size of the pool, used by the autoscaling feature.
*/
readonly minSize: pulumi.Output<number | undefined>;
/**
* The name for the pool.
* > **Important:** Updates to this field will recreate a new resource.
*/
readonly name: pulumi.Output<string>;
/**
* The commercial type of the pool instances. Instances with insufficient memory are not eligible (DEV1-S, PLAY2-PICO, STARDUST). `external` is a special node type used to provision from other Cloud providers.
*
* > **Important:** Updates to this field will recreate a new resource.
*/
readonly nodeType: pulumi.Output<string>;
/**
* (List of) The nodes in the default pool.
*/
readonly nodes: pulumi.Output<outputs.KubernetesNodePoolNode[]>;
/**
* The [placement group](https://developers.scaleway.com/en/products/instance/api/#placement-groups-d8f653) the nodes of the pool will be attached to.
* > **Important:** Updates to this field will recreate a new resource.
*/
readonly placementGroupId: pulumi.Output<string | undefined>;
/**
* Defines if the public IP should be removed from Nodes. To use this feature, your Cluster must have an attached Private Network set up with a Public Gateway.
* > **Important:** Updates to this field will recreate a new resource.
*/
readonly publicIpDisabled: pulumi.Output<boolean | undefined>;
/**
* `region`) The region in which the pool should be created.
*/
readonly region: pulumi.Output<string>;
/**
* The size of the system volume of the nodes in gigabyte
*/
readonly rootVolumeSizeInGb: pulumi.Output<number | undefined>;
/**
* System volume type of the nodes composing the pool
*/
readonly rootVolumeType: pulumi.Output<string | undefined>;
/**
* The size of the pool.
* > **Important:** This field will only be used at creation if autoscaling is enabled.
*/
readonly size: pulumi.Output<number>;
/**
* The status of the node.
*/
readonly status: pulumi.Output<string>;
/**
* The tags associated with the pool.
* > Note: As mentionned in [this document](https://github.com/scaleway/scaleway-cloud-controller-manager/blob/master/docs/tags.md#taints), taints of a pool's nodes are applied using tags. (Example: "taint=taintName=taineValue:Effect")
*/
readonly tags: pulumi.Output<string[] | undefined>;
/**
* The last update date of the pool.
*/
readonly updatedAt: pulumi.Output<string>;
/**
* The Pool upgrade policy
*/
readonly upgradePolicy: pulumi.Output<outputs.KubernetesNodePoolUpgradePolicy>;
/**
* The version of the pool.
*/
readonly version: pulumi.Output<string>;
/**
* Whether to wait for the pool to be ready.
*/
readonly waitForPoolReady: pulumi.Output<boolean | undefined>;
/**
* `zone`) The zone in which the pool should be created.
* > **Important:** Updates to this field will recreate a new resource.
*/
readonly zone: pulumi.Output<string>;
/**
* Create a KubernetesNodePool 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: KubernetesNodePoolArgs, opts?: pulumi.CustomResourceOptions);
}
/**
* Input properties used for looking up and filtering KubernetesNodePool resources.
*/
export interface KubernetesNodePoolState {
/**
* Enables the autohealing feature for this pool.
*/
autohealing?: pulumi.Input<boolean>;
/**
* Enables the autoscaling feature for this pool.
* > **Important:** When enabled, an update of the `size` will not be taken into account.
*/
autoscaling?: pulumi.Input<boolean>;
/**
* The ID of the Kubernetes cluster on which this pool will be created.
*/
clusterId?: pulumi.Input<string>;
/**
* The container runtime of the pool.
* > **Important:** Updates to this field will recreate a new resource.
*/
containerRuntime?: pulumi.Input<string>;
/**
* The creation date of the pool.
*/
createdAt?: pulumi.Input<string>;
/**
* The actual size of the pool
*/
currentSize?: pulumi.Input<number>;
/**
* The Kubelet arguments to be used by this pool
*/
kubeletArgs?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* The maximum size of the pool, used by the autoscaling feature.
*/
maxSize?: pulumi.Input<number>;
/**
* The minimum size of the pool, used by the autoscaling feature.
*/
minSize?: pulumi.Input<number>;
/**
* The name for the pool.
* > **Important:** Updates to this field will recreate a new resource.
*/
name?: pulumi.Input<string>;
/**
* The commercial type of the pool instances. Instances with insufficient memory are not eligible (DEV1-S, PLAY2-PICO, STARDUST). `external` is a special node type used to provision from other Cloud providers.
*
* > **Important:** Updates to this field will recreate a new resource.
*/
nodeType?: pulumi.Input<string>;
/**
* (List of) The nodes in the default pool.
*/
nodes?: pulumi.Input<pulumi.Input<inputs.KubernetesNodePoolNode>[]>;
/**
* The [placement group](https://developers.scaleway.com/en/products/instance/api/#placement-groups-d8f653) the nodes of the pool will be attached to.
* > **Important:** Updates to this field will recreate a new resource.
*/
placementGroupId?: pulumi.Input<string>;
/**
* Defines if the public IP should be removed from Nodes. To use this feature, your Cluster must have an attached Private Network set up with a Public Gateway.
* > **Important:** Updates to this field will recreate a new resource.
*/
publicIpDisabled?: pulumi.Input<boolean>;
/**
* `region`) The region in which the pool should be created.
*/
region?: pulumi.Input<string>;
/**
* The size of the system volume of the nodes in gigabyte
*/
rootVolumeSizeInGb?: pulumi.Input<number>;
/**
* System volume type of the nodes composing the pool
*/
rootVolumeType?: pulumi.Input<string>;
/**
* The size of the pool.
* > **Important:** This field will only be used at creation if autoscaling is enabled.
*/
size?: pulumi.Input<number>;
/**
* The status of the node.
*/
status?: pulumi.Input<string>;
/**
* The tags associated with the pool.
* > Note: As mentionned in [this document](https://github.com/scaleway/scaleway-cloud-controller-manager/blob/master/docs/tags.md#taints), taints of a pool's nodes are applied using tags. (Example: "taint=taintName=taineValue:Effect")
*/
tags?: pulumi.Input<pulumi.Input<string>[]>;
/**
* The last update date of the pool.
*/
updatedAt?: pulumi.Input<string>;
/**
* The Pool upgrade policy
*/
upgradePolicy?: pulumi.Input<inputs.KubernetesNodePoolUpgradePolicy>;
/**
* The version of the pool.
*/
version?: pulumi.Input<string>;
/**
* Whether to wait for the pool to be ready.
*/
waitForPoolReady?: pulumi.Input<boolean>;
/**
* `zone`) The zone in which the pool should be created.
* > **Important:** Updates to this field will recreate a new resource.
*/
zone?: pulumi.Input<string>;
}
/**
* The set of arguments for constructing a KubernetesNodePool resource.
*/
export interface KubernetesNodePoolArgs {
/**
* Enables the autohealing feature for this pool.
*/
autohealing?: pulumi.Input<boolean>;
/**
* Enables the autoscaling feature for this pool.
* > **Important:** When enabled, an update of the `size` will not be taken into account.
*/
autoscaling?: pulumi.Input<boolean>;
/**
* The ID of the Kubernetes cluster on which this pool will be created.
*/
clusterId: pulumi.Input<string>;
/**
* The container runtime of the pool.
* > **Important:** Updates to this field will recreate a new resource.
*/
containerRuntime?: pulumi.Input<string>;
/**
* The Kubelet arguments to be used by this pool
*/
kubeletArgs?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* The maximum size of the pool, used by the autoscaling feature.
*/
maxSize?: pulumi.Input<number>;
/**
* The minimum size of the pool, used by the autoscaling feature.
*/
minSize?: pulumi.Input<number>;
/**
* The name for the pool.
* > **Important:** Updates to this field will recreate a new resource.
*/
name?: pulumi.Input<string>;
/**
* The commercial type of the pool instances. Instances with insufficient memory are not eligible (DEV1-S, PLAY2-PICO, STARDUST). `external` is a special node type used to provision from other Cloud providers.
*
* > **Important:** Updates to this field will recreate a new resource.
*/
nodeType: pulumi.Input<string>;
/**
* The [placement group](https://developers.scaleway.com/en/products/instance/api/#placement-groups-d8f653) the nodes of the pool will be attached to.
* > **Important:** Updates to this field will recreate a new resource.
*/
placementGroupId?: pulumi.Input<string>;
/**
* Defines if the public IP should be removed from Nodes. To use this feature, your Cluster must have an attached Private Network set up with a Public Gateway.
* > **Important:** Updates to this field will recreate a new resource.
*/
publicIpDisabled?: pulumi.Input<boolean>;
/**
* `region`) The region in which the pool should be created.
*/
region?: pulumi.Input<string>;
/**
* The size of the system volume of the nodes in gigabyte
*/
rootVolumeSizeInGb?: pulumi.Input<number>;
/**
* System volume type of the nodes composing the pool
*/
rootVolumeType?: pulumi.Input<string>;
/**
* The size of the pool.
* > **Important:** This field will only be used at creation if autoscaling is enabled.
*/
size: pulumi.Input<number>;
/**
* The tags associated with the pool.
* > Note: As mentionned in [this document](https://github.com/scaleway/scaleway-cloud-controller-manager/blob/master/docs/tags.md#taints), taints of a pool's nodes are applied using tags. (Example: "taint=taintName=taineValue:Effect")
*/
tags?: pulumi.Input<pulumi.Input<string>[]>;
/**
* The Pool upgrade policy
*/
upgradePolicy?: pulumi.Input<inputs.KubernetesNodePoolUpgradePolicy>;
/**
* Whether to wait for the pool to be ready.
*/
waitForPoolReady?: pulumi.Input<boolean>;
/**
* `zone`) The zone in which the pool should be created.
* > **Important:** Updates to this field will recreate a new resource.
*/
zone?: pulumi.Input<string>;
}