import * as pulumi from "@pulumi/pulumi"; import * as inputs from "./types/input"; import * as outputs from "./types/output"; /** * Provides a Nutanix Karbon Cluster resource to Create a k8s cluster. * * **Note:** Minimum tested version is Karbon 2.2 * * **Note:** Kubernetes and Node OS upgrades are not supported using this provider. * * ## Example Usage * * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as nutanix from "@pierskarsenbarg/nutanix"; * * const exampleCluster = new nutanix.KarbonCluster("example_cluster", { * name: "example_cluster", * version: "1.18.15-1", * storageClassConfig: { * reclaimPolicy: "Delete", * volumesConfig: { * fileSystem: "ext4", * flashMode: false, * password: "my_pe_pw", * prismElementClusterUuid: "my_pe_cluster_uuid", * storageContainer: "my_storage_container_name", * username: "my_pe_username", * }, * }, * cniConfig: { * nodeCidrMaskSize: 24, * podIpv4Cidr: "172.20.0.0/16", * serviceIpv4Cidr: "172.19.0.0/16", * }, * workerNodePool: { * nodeOsVersion: "ntnx-1.0", * numInstances: 1, * ahvConfig: { * networkUuid: "my_subnet_id", * prismElementClusterUuid: "my_pe_cluster_uuid", * }, * }, * etcdNodePool: { * nodeOsVersion: "ntnx-1.0", * numInstances: 1, * ahvConfig: { * networkUuid: "my_subnet_id", * prismElementClusterUuid: "my_pe_cluster_uuid", * }, * }, * masterNodePool: { * nodeOsVersion: "ntnx-1.0", * numInstances: 1, * ahvConfig: { * networkUuid: "my_subnet_id", * prismElementClusterUuid: "my_pe_cluster_uuid", * }, * }, * }); * ``` * * * ### resource to create karbon cluster with timeouts * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as nutanix from "@pierskarsenbarg/nutanix"; * * const exampleCluster = new nutanix.KarbonCluster("example_cluster", { * name: "example_cluster", * version: "1.18.15-1", * storageClassConfig: { * reclaimPolicy: "Delete", * volumesConfig: { * fileSystem: "ext4", * flashMode: false, * password: "my_pe_pw", * prismElementClusterUuid: "my_pe_cluster_uuid", * storageContainer: "my_storage_container_name", * username: "my_pe_username", * }, * }, * cniConfig: { * nodeCidrMaskSize: 24, * podIpv4Cidr: "172.20.0.0/16", * serviceIpv4Cidr: "172.19.0.0/16", * }, * workerNodePool: { * nodeOsVersion: "ntnx-1.0", * numInstances: 1, * ahvConfig: { * networkUuid: "my_subnet_id", * prismElementClusterUuid: "my_pe_cluster_uuid", * }, * }, * etcdNodePool: { * nodeOsVersion: "ntnx-1.0", * numInstances: 1, * ahvConfig: { * networkUuid: "my_subnet_id", * prismElementClusterUuid: "my_pe_cluster_uuid", * }, * }, * masterNodePool: { * nodeOsVersion: "ntnx-1.0", * numInstances: 1, * ahvConfig: { * networkUuid: "my_subnet_id", * prismElementClusterUuid: "my_pe_cluster_uuid", * }, * }, * }); * ``` * */ export declare class KarbonCluster extends pulumi.CustomResource { /** * Get an existing KarbonCluster 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, state?: KarbonClusterState, opts?: pulumi.CustomResourceOptions): KarbonCluster; /** * Returns true if the given object is an instance of KarbonCluster. 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 KarbonCluster; /** * - (Optional) The active passive mode uses the Virtual Router Redundancy Protocol (VRRP) protocol to provide high availability of the master. **Note:** Updates to this attribute forces new resource creation. */ readonly activePassiveConfig: pulumi.Output; /** * - (Required) K8s cluster networking configuration. The flannel or the calico configuration needs to be provided. **Note:** Updates to this attribute forces new resource creation. */ readonly cniConfig: pulumi.Output; readonly deploymentType: pulumi.Output; /** * - (Required) Configuration of the node pools that the nodes in the etcd cluster belong to. The etcd nodes require a minimum of 8,192 MiB memory and 409,60 MiB disk space. */ readonly etcdNodePool: pulumi.Output; /** * - (Optional) The external load balancer configuration in the case of a multi-master-external-load-balancer type master deployment. **Note:** Updates to this attribute forces new resource creation. */ readonly externalLbConfig: pulumi.Output; readonly kubeapiServerIpv4Address: pulumi.Output; /** * - (Required) Configuration of the master node pools. */ readonly masterNodePool: pulumi.Output; /** * - (Required) The name for the k8s cluster. **Note:** Updates to this attribute forces new resource creation. */ readonly name: pulumi.Output; /** * - (Optional) Allows the Karbon cluster to pull images of a list of private registries. */ readonly privateRegistries: pulumi.Output; /** * - (Optional) Configuration of a single master node. **Note:** Updates to this attribute forces new resource creation. */ readonly singleMasterConfig: pulumi.Output; readonly status: pulumi.Output; /** * - (Required) Storage class configuration attribute for defining the persistent volume attributes. **Note:** Updates to this attribute forces new resource creation. */ readonly storageClassConfig: pulumi.Output; /** * - (Required) K8s version of the cluster. **Note:** Updates to this attribute forces new resource creation. */ readonly version: pulumi.Output; /** * - (Optional) Maximum wait time for the Karbon cluster to provision. * * @deprecated use timeouts instead */ readonly waitTimeoutMinutes: pulumi.Output; readonly workerNodePool: pulumi.Output; /** * Create a KarbonCluster 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: KarbonClusterArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering KarbonCluster resources. */ export interface KarbonClusterState { /** * - (Optional) The active passive mode uses the Virtual Router Redundancy Protocol (VRRP) protocol to provide high availability of the master. **Note:** Updates to this attribute forces new resource creation. */ activePassiveConfig?: pulumi.Input; /** * - (Required) K8s cluster networking configuration. The flannel or the calico configuration needs to be provided. **Note:** Updates to this attribute forces new resource creation. */ cniConfig?: pulumi.Input; deploymentType?: pulumi.Input; /** * - (Required) Configuration of the node pools that the nodes in the etcd cluster belong to. The etcd nodes require a minimum of 8,192 MiB memory and 409,60 MiB disk space. */ etcdNodePool?: pulumi.Input; /** * - (Optional) The external load balancer configuration in the case of a multi-master-external-load-balancer type master deployment. **Note:** Updates to this attribute forces new resource creation. */ externalLbConfig?: pulumi.Input; kubeapiServerIpv4Address?: pulumi.Input; /** * - (Required) Configuration of the master node pools. */ masterNodePool?: pulumi.Input; /** * - (Required) The name for the k8s cluster. **Note:** Updates to this attribute forces new resource creation. */ name?: pulumi.Input; /** * - (Optional) Allows the Karbon cluster to pull images of a list of private registries. */ privateRegistries?: pulumi.Input[] | undefined>; /** * - (Optional) Configuration of a single master node. **Note:** Updates to this attribute forces new resource creation. */ singleMasterConfig?: pulumi.Input; status?: pulumi.Input; /** * - (Required) Storage class configuration attribute for defining the persistent volume attributes. **Note:** Updates to this attribute forces new resource creation. */ storageClassConfig?: pulumi.Input; /** * - (Required) K8s version of the cluster. **Note:** Updates to this attribute forces new resource creation. */ version?: pulumi.Input; /** * - (Optional) Maximum wait time for the Karbon cluster to provision. * * @deprecated use timeouts instead */ waitTimeoutMinutes?: pulumi.Input; workerNodePool?: pulumi.Input; } /** * The set of arguments for constructing a KarbonCluster resource. */ export interface KarbonClusterArgs { /** * - (Optional) The active passive mode uses the Virtual Router Redundancy Protocol (VRRP) protocol to provide high availability of the master. **Note:** Updates to this attribute forces new resource creation. */ activePassiveConfig?: pulumi.Input; /** * - (Required) K8s cluster networking configuration. The flannel or the calico configuration needs to be provided. **Note:** Updates to this attribute forces new resource creation. */ cniConfig: pulumi.Input; /** * - (Required) Configuration of the node pools that the nodes in the etcd cluster belong to. The etcd nodes require a minimum of 8,192 MiB memory and 409,60 MiB disk space. */ etcdNodePool: pulumi.Input; /** * - (Optional) The external load balancer configuration in the case of a multi-master-external-load-balancer type master deployment. **Note:** Updates to this attribute forces new resource creation. */ externalLbConfig?: pulumi.Input; /** * - (Required) Configuration of the master node pools. */ masterNodePool: pulumi.Input; /** * - (Required) The name for the k8s cluster. **Note:** Updates to this attribute forces new resource creation. */ name?: pulumi.Input; /** * - (Optional) Allows the Karbon cluster to pull images of a list of private registries. */ privateRegistries?: pulumi.Input[] | undefined>; /** * - (Optional) Configuration of a single master node. **Note:** Updates to this attribute forces new resource creation. */ singleMasterConfig?: pulumi.Input; /** * - (Required) Storage class configuration attribute for defining the persistent volume attributes. **Note:** Updates to this attribute forces new resource creation. */ storageClassConfig: pulumi.Input; /** * - (Required) K8s version of the cluster. **Note:** Updates to this attribute forces new resource creation. */ version: pulumi.Input; /** * - (Optional) Maximum wait time for the Karbon cluster to provision. * * @deprecated use timeouts instead */ waitTimeoutMinutes?: pulumi.Input; workerNodePool: pulumi.Input; } //# sourceMappingURL=karbonCluster.d.ts.map