import * as pulumi from "@pulumi/pulumi"; import * as inputs from "./types/input"; import * as outputs from "./types/output"; /** * > **A note on the naming of this resource:** VMware refers to clusters of * hosts in the UI and documentation as _clusters_, _HA clusters_, or _DRS * clusters_. All of these refer to the same kind of resource (with the latter two * referring to specific features of clustering). We use * `vsphere.ComputeCluster` to differentiate host clusters from _datastore * clusters_, which are clusters of datastores that can be used to distribute load * and ensure fault tolerance via distribution of virtual machines. Datastore * clusters can also be managed through the provider, via the * `vsphere.DatastoreCluster` resource. * * The `vsphere.ComputeCluster` resource can be used to create and manage * clusters of hosts allowing for resource control of compute resources, load * balancing through DRS, and high availability through vSphere HA. * * For more information on vSphere clusters and DRS, see [this * page][ref-vsphere-drs-clusters]. For more information on vSphere HA, see [this * page][ref-vsphere-ha-clusters]. * * [ref-vsphere-drs-clusters]: https://techdocs.broadcom.com/us/en/vmware-cis/vsphere/vsphere/8-0/vsphere-resource-management-8-0/creating-a-drs-cluster.html * [ref-vsphere-ha-clusters]: https://techdocs.broadcom.com/us/en/vmware-cis/vsphere/vsphere/8-0/vsphere-availability.html * * > **NOTE:** This resource requires vCenter and is not available on * direct ESXi connections. * * ## Import * * An existing cluster can be imported into this resource via the * * path to the cluster, via the following command: * * [docs-import]: https://developer.hashicorp.com/terraform/cli/import * * hcl * * variable "datacenter" { * * default = "dc-01" * * } * * data "vsphere_datacenter" "datacenter" { * * name = var.datacenter * * } * * resource "vsphere_compute_cluster" "compute_cluster" { * * name = "cluster-01" * * datacenter_id = data.vsphere_datacenter.datacenter.id * * } * * hcl * * resource "vsphere_compute_cluster" "compute_cluster" { * * name = "cluster-01" * * datacenter_id = data.vsphere_datacenter.datacenter.id * * vsan_enabled = true * * vsan_performance_enabled = true * * host_system_ids = [for host in data.vsphere_host.host : host.id] * * dpm_automation_level = "automated" * * drs_automation_level = "fullyAutomated" * * drs_enabled = true * * ha_datastore_apd_response = "restartConservative" * * ha_datastore_pdl_response = "restartAggressive" * * } * * ```sh * $ pulumi import vsphere:index/computeCluster:ComputeCluster compute_cluster /dc-01/host/cluster-01 * ``` * * The above would import the cluster named `cluster-01` that is located in * * the `dc-01` datacenter. */ export declare class ComputeCluster extends pulumi.CustomResource { /** * Get an existing ComputeCluster 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?: ComputeClusterState, opts?: pulumi.CustomResourceOptions): ComputeCluster; /** * Returns true if the given object is an instance of ComputeCluster. 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 ComputeCluster; /** * A map of custom attribute ids to attribute * value strings to set for the datastore cluster. * * > **NOTE:** Custom attributes are unsupported on direct ESXi connections * and require vCenter Server. */ readonly customAttributes: pulumi.Output<{ [key: string]: string; } | undefined>; /** * The managed object ID of * the datacenter to create the cluster in. Forces a new resource if changed. */ readonly datacenterId: pulumi.Output; /** * The automation level for host power operations in this cluster. Can be one of manual or automated. */ readonly dpmAutomationLevel: pulumi.Output; /** * Enable DPM support for DRS. This allows you to dynamically control the power of hosts depending on the needs of virtual * machines in the cluster. Requires that DRS be enabled. */ readonly dpmEnabled: pulumi.Output; /** * A value between 1 and 5 indicating the threshold of load within the cluster that influences host power operations. This * affects both power on and power off operations - a lower setting will tolerate more of a surplus/deficit than a higher * setting. */ readonly dpmThreshold: pulumi.Output; /** * Advanced configuration options for DRS and DPM. */ readonly drsAdvancedOptions: pulumi.Output<{ [key: string]: string; } | undefined>; /** * The default automation level for all virtual machines in this cluster. Can be one of manual, partiallyAutomated, or * fullyAutomated. */ readonly drsAutomationLevel: pulumi.Output; /** * When true, enables DRS to use data from vRealize Operations Manager to make proactive DRS recommendations. */ readonly drsEnablePredictiveDrs: pulumi.Output; /** * When true, allows individual VM overrides within this cluster to be set. */ readonly drsEnableVmOverrides: pulumi.Output; /** * Enable DRS for this cluster. */ readonly drsEnabled: pulumi.Output; /** * A value between 1 and 5 indicating the threshold of imbalance tolerated between hosts. A lower setting will tolerate * more imbalance while a higher setting will tolerate less. */ readonly drsMigrationThreshold: pulumi.Output; /** * Enable scalable shares for all descendants of this cluster. */ readonly drsScaleDescendantsShares: pulumi.Output; /** * The relative path to a folder to put this cluster in. * This is a path relative to the datacenter you are deploying the cluster to. * Example: for the `dc1` datacenter, and a provided `folder` of `foo/bar`, * The provider will place a cluster named `compute-cluster-test` in a * host folder located at `/dc1/host/foo/bar`, with the final inventory path * being `/dc1/host/foo/bar/datastore-cluster-test`. */ readonly folder: pulumi.Output; /** * Force removal of all hosts in the cluster during destroy and make them standalone hosts. Use of this flag mainly exists * for testing and is not recommended in normal use. */ readonly forceEvacuateOnDestroy: pulumi.Output; /** * When haAdmissionControlPolicy is failoverHosts, this defines the managed object IDs of hosts to use as dedicated * failover hosts. These hosts are kept as available as possible - admission control will block access to the host, and DRS * will ignore the host when making recommendations. */ readonly haAdmissionControlFailoverHostSystemIds: pulumi.Output; /** * The maximum number of failed hosts that admission control tolerates when making decisions on whether to permit virtual * machine operations. The maximum is one less than the number of hosts in the cluster. */ readonly haAdmissionControlHostFailureTolerance: pulumi.Output; /** * The percentage of resource reduction that a cluster of VMs can tolerate in case of a failover. A value of 0 produces * warnings only, whereas a value of 100 disables the setting. */ readonly haAdmissionControlPerformanceTolerance: pulumi.Output; /** * The type of admission control policy to use with vSphere HA, which controls whether or not specific VM operations are * permitted in the cluster in order to protect the reliability of the cluster. Can be one of resourcePercentage, * slotPolicy, failoverHosts, or disabled. Note that disabling admission control is not recommended and can lead to service * issues. */ readonly haAdmissionControlPolicy: pulumi.Output; /** * When haAdmissionControlPolicy is resourcePercentage, automatically determine available resource percentages by * subtracting the average number of host resources represented by the haAdmissionControlHostFailureTolerance setting from * the total amount of resources in the cluster. Disable to supply user-defined values. */ readonly haAdmissionControlResourcePercentageAutoCompute: pulumi.Output; /** * When haAdmissionControlPolicy is resourcePercentage, this controls the user-defined percentage of CPU resources in the * cluster to reserve for failover. */ readonly haAdmissionControlResourcePercentageCpu: pulumi.Output; /** * When haAdmissionControlPolicy is resourcePercentage, this controls the user-defined percentage of memory resources in * the cluster to reserve for failover. */ readonly haAdmissionControlResourcePercentageMemory: pulumi.Output; /** * When haAdmissionControlPolicy is slotPolicy, this controls the user-defined CPU slot size, in MHz. */ readonly haAdmissionControlSlotPolicyExplicitCpu: pulumi.Output; /** * When haAdmissionControlPolicy is slotPolicy, this controls the user-defined memory slot size, in MB. */ readonly haAdmissionControlSlotPolicyExplicitMemory: pulumi.Output; /** * When haAdmissionControlPolicy is slotPolicy, this setting controls whether or not you wish to supply explicit values to * CPU and memory slot sizes. The default is to gather a automatic average based on all powered-on virtual machines * currently in the cluster. */ readonly haAdmissionControlSlotPolicyUseExplicitSize: pulumi.Output; /** * Advanced configuration options for vSphere HA. */ readonly haAdvancedOptions: pulumi.Output<{ [key: string]: string; } | undefined>; /** * When haVmComponentProtection is enabled, controls the action to take on virtual machines if an APD status on an affected * datastore clears in the middle of an APD event. Can be one of none or reset. */ readonly haDatastoreApdRecoveryAction: pulumi.Output; /** * When haVmComponentProtection is enabled, controls the action to take on virtual machines when the cluster has detected * loss to all paths to a relevant datastore. Can be one of disabled, warning, restartConservative, or restartAggressive. */ readonly haDatastoreApdResponse: pulumi.Output; /** * When haVmComponentProtection is enabled, controls the delay in seconds to wait after an APD timeout event to execute the * response action defined in ha_datastore_apd_response. */ readonly haDatastoreApdResponseDelay: pulumi.Output; /** * When haVmComponentProtection is enabled, controls the action to take on virtual machines when the cluster has detected a * permanent device loss to a relevant datastore. Can be one of disabled, warning, or restartAggressive. */ readonly haDatastorePdlResponse: pulumi.Output; /** * Enable vSphere HA for this cluster. */ readonly haEnabled: pulumi.Output; /** * The list of managed object IDs for preferred datastores to use for HA heartbeating. This setting is only useful when * haHeartbeatDatastorePolicy is set to either userSelectedDs or allFeasibleDsWithUserPreference. */ readonly haHeartbeatDatastoreIds: pulumi.Output; /** * The selection policy for HA heartbeat datastores. Can be one of allFeasibleDs, userSelectedDs, or * allFeasibleDsWithUserPreference. */ readonly haHeartbeatDatastorePolicy: pulumi.Output; /** * The action to take on virtual machines when a host has detected that it has been isolated from the rest of the cluster. * Can be one of none, powerOff, or shutdown. */ readonly haHostIsolationResponse: pulumi.Output; /** * Global setting that controls whether vSphere HA remediates VMs on host failure. Can be one of enabled or disabled. */ readonly haHostMonitoring: pulumi.Output; /** * Controls vSphere VM component protection for virtual machines in this cluster. This allows vSphere HA to react to * failures between hosts and specific virtual machine components, such as datastores. Can be one of enabled or disabled. */ readonly haVmComponentProtection: pulumi.Output; /** * The condition used to determine whether or not VMs in a certain restart priority class are online, allowing HA to move * on to restarting VMs on the next priority. Can be one of none, poweredOn, guestHbStatusGreen, or appHbStatusGreen. */ readonly haVmDependencyRestartCondition: pulumi.Output; /** * If a heartbeat from a virtual machine is not received within this configured interval, the virtual machine is marked as * failed. The value is in seconds. */ readonly haVmFailureInterval: pulumi.Output; /** * The length of the reset window in which haVmMaximumResets can operate. When this window expires, no more resets are * attempted regardless of the setting configured in ha_vm_maximum_resets. -1 means no window, meaning an unlimited reset * time is allotted. */ readonly haVmMaximumFailureWindow: pulumi.Output; /** * The maximum number of resets that HA will perform to a virtual machine when responding to a failure event. */ readonly haVmMaximumResets: pulumi.Output; /** * The time, in seconds, that HA waits after powering on a virtual machine before monitoring for heartbeats. */ readonly haVmMinimumUptime: pulumi.Output; /** * The type of virtual machine monitoring to use when HA is enabled in the cluster. Can be one of vmMonitoringDisabled, * vmMonitoringOnly, or vmAndAppMonitoring. */ readonly haVmMonitoring: pulumi.Output; /** * Additional delay in seconds after ready condition is met. A VM is considered ready at this point. */ readonly haVmRestartAdditionalDelay: pulumi.Output; /** * The default restart priority for affected VMs when vSphere detects a host failure. Can be one of lowest, low, medium, * high, or highest. */ readonly haVmRestartPriority: pulumi.Output; /** * The maximum time, in seconds, that vSphere HA will wait for virtual machines in one priority to be ready before * proceeding with the next priority. */ readonly haVmRestartTimeout: pulumi.Output; /** * The timeout for each host maintenance mode operation when removing hosts from a cluster. */ readonly hostClusterExitTimeout: pulumi.Output; /** * Details about the host image which should be applied to the cluster. */ readonly hostImage: pulumi.Output; /** * Must be set if cluster enrollment is managed from host resource. */ readonly hostManaged: pulumi.Output; /** * The managed object IDs of the hosts to put in the cluster. */ readonly hostSystemIds: pulumi.Output; /** * The name of the cluster. */ readonly name: pulumi.Output; /** * The DRS behavior for proactive HA recommendations. Can be one of Automated or Manual. */ readonly proactiveHaAutomationLevel: pulumi.Output; /** * Enables proactive HA, allowing for vSphere to get HA data from external providers and use DRS to perform remediation. */ readonly proactiveHaEnabled: pulumi.Output; /** * The configured remediation for moderately degraded hosts. Can be one of MaintenanceMode or QuarantineMode. Note that * this cannot be set to MaintenanceMode when proactiveHaSevereRemediation is set to QuarantineMode. */ readonly proactiveHaModerateRemediation: pulumi.Output; /** * The list of IDs for health update providers configured for this cluster. */ readonly proactiveHaProviderIds: pulumi.Output; /** * The configured remediation for severely degraded hosts. Can be one of MaintenanceMode or QuarantineMode. Note that this * cannot be set to QuarantineMode when proactiveHaModerateRemediation is set to MaintenanceMode. */ readonly proactiveHaSevereRemediation: pulumi.Output; /** * The managed object ID of the primary * resource pool for this cluster. This can be passed directly to the * `resourcePoolId` * attribute of the * `vsphere.VirtualMachine` resource. */ readonly resourcePoolId: pulumi.Output; /** * The IDs of any tags to attach to this resource. */ readonly tags: pulumi.Output; /** * Whether the vSAN compression service is enabled for the cluster. */ readonly vsanCompressionEnabled: pulumi.Output; /** * Whether the vSAN deduplication service is enabled for the cluster. */ readonly vsanDedupEnabled: pulumi.Output; /** * A list of disk UUIDs to add to the vSAN cluster. */ readonly vsanDiskGroups: pulumi.Output; /** * Whether the vSAN data-in-transit encryption is enabled for the cluster. */ readonly vsanDitEncryptionEnabled: pulumi.Output; /** * When vsanDitEncryptionEnabled is enabled, sets the rekey interval of data-in-transit encryption (in minutes). */ readonly vsanDitRekeyInterval: pulumi.Output; /** * Whether the vSAN service is enabled for the cluster. */ readonly vsanEnabled: pulumi.Output; /** * Whether the vSAN ESA service is enabled for the cluster. */ readonly vsanEsaEnabled: pulumi.Output; /** * The configuration for vSAN fault domains. */ readonly vsanFaultDomains: pulumi.Output; /** * Whether the vSAN network diagnostic mode is enabled for the cluster. */ readonly vsanNetworkDiagnosticModeEnabled: pulumi.Output; /** * Whether the vSAN performance service is enabled for the cluster. */ readonly vsanPerformanceEnabled: pulumi.Output; /** * The managed object IDs of the vSAN datastore to be mounted on the cluster. */ readonly vsanRemoteDatastoreIds: pulumi.Output; /** * The configuration for stretched cluster. */ readonly vsanStretchedCluster: pulumi.Output; /** * Whether the vSAN unmap service is enabled for the cluster. */ readonly vsanUnmapEnabled: pulumi.Output; /** * Whether the vSAN verbose mode is enabled for the cluster. */ readonly vsanVerboseModeEnabled: pulumi.Output; /** * Create a ComputeCluster 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: ComputeClusterArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering ComputeCluster resources. */ export interface ComputeClusterState { /** * A map of custom attribute ids to attribute * value strings to set for the datastore cluster. * * > **NOTE:** Custom attributes are unsupported on direct ESXi connections * and require vCenter Server. */ customAttributes?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * The managed object ID of * the datacenter to create the cluster in. Forces a new resource if changed. */ datacenterId?: pulumi.Input; /** * The automation level for host power operations in this cluster. Can be one of manual or automated. */ dpmAutomationLevel?: pulumi.Input; /** * Enable DPM support for DRS. This allows you to dynamically control the power of hosts depending on the needs of virtual * machines in the cluster. Requires that DRS be enabled. */ dpmEnabled?: pulumi.Input; /** * A value between 1 and 5 indicating the threshold of load within the cluster that influences host power operations. This * affects both power on and power off operations - a lower setting will tolerate more of a surplus/deficit than a higher * setting. */ dpmThreshold?: pulumi.Input; /** * Advanced configuration options for DRS and DPM. */ drsAdvancedOptions?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * The default automation level for all virtual machines in this cluster. Can be one of manual, partiallyAutomated, or * fullyAutomated. */ drsAutomationLevel?: pulumi.Input; /** * When true, enables DRS to use data from vRealize Operations Manager to make proactive DRS recommendations. */ drsEnablePredictiveDrs?: pulumi.Input; /** * When true, allows individual VM overrides within this cluster to be set. */ drsEnableVmOverrides?: pulumi.Input; /** * Enable DRS for this cluster. */ drsEnabled?: pulumi.Input; /** * A value between 1 and 5 indicating the threshold of imbalance tolerated between hosts. A lower setting will tolerate * more imbalance while a higher setting will tolerate less. */ drsMigrationThreshold?: pulumi.Input; /** * Enable scalable shares for all descendants of this cluster. */ drsScaleDescendantsShares?: pulumi.Input; /** * The relative path to a folder to put this cluster in. * This is a path relative to the datacenter you are deploying the cluster to. * Example: for the `dc1` datacenter, and a provided `folder` of `foo/bar`, * The provider will place a cluster named `compute-cluster-test` in a * host folder located at `/dc1/host/foo/bar`, with the final inventory path * being `/dc1/host/foo/bar/datastore-cluster-test`. */ folder?: pulumi.Input; /** * Force removal of all hosts in the cluster during destroy and make them standalone hosts. Use of this flag mainly exists * for testing and is not recommended in normal use. */ forceEvacuateOnDestroy?: pulumi.Input; /** * When haAdmissionControlPolicy is failoverHosts, this defines the managed object IDs of hosts to use as dedicated * failover hosts. These hosts are kept as available as possible - admission control will block access to the host, and DRS * will ignore the host when making recommendations. */ haAdmissionControlFailoverHostSystemIds?: pulumi.Input[]>; /** * The maximum number of failed hosts that admission control tolerates when making decisions on whether to permit virtual * machine operations. The maximum is one less than the number of hosts in the cluster. */ haAdmissionControlHostFailureTolerance?: pulumi.Input; /** * The percentage of resource reduction that a cluster of VMs can tolerate in case of a failover. A value of 0 produces * warnings only, whereas a value of 100 disables the setting. */ haAdmissionControlPerformanceTolerance?: pulumi.Input; /** * The type of admission control policy to use with vSphere HA, which controls whether or not specific VM operations are * permitted in the cluster in order to protect the reliability of the cluster. Can be one of resourcePercentage, * slotPolicy, failoverHosts, or disabled. Note that disabling admission control is not recommended and can lead to service * issues. */ haAdmissionControlPolicy?: pulumi.Input; /** * When haAdmissionControlPolicy is resourcePercentage, automatically determine available resource percentages by * subtracting the average number of host resources represented by the haAdmissionControlHostFailureTolerance setting from * the total amount of resources in the cluster. Disable to supply user-defined values. */ haAdmissionControlResourcePercentageAutoCompute?: pulumi.Input; /** * When haAdmissionControlPolicy is resourcePercentage, this controls the user-defined percentage of CPU resources in the * cluster to reserve for failover. */ haAdmissionControlResourcePercentageCpu?: pulumi.Input; /** * When haAdmissionControlPolicy is resourcePercentage, this controls the user-defined percentage of memory resources in * the cluster to reserve for failover. */ haAdmissionControlResourcePercentageMemory?: pulumi.Input; /** * When haAdmissionControlPolicy is slotPolicy, this controls the user-defined CPU slot size, in MHz. */ haAdmissionControlSlotPolicyExplicitCpu?: pulumi.Input; /** * When haAdmissionControlPolicy is slotPolicy, this controls the user-defined memory slot size, in MB. */ haAdmissionControlSlotPolicyExplicitMemory?: pulumi.Input; /** * When haAdmissionControlPolicy is slotPolicy, this setting controls whether or not you wish to supply explicit values to * CPU and memory slot sizes. The default is to gather a automatic average based on all powered-on virtual machines * currently in the cluster. */ haAdmissionControlSlotPolicyUseExplicitSize?: pulumi.Input; /** * Advanced configuration options for vSphere HA. */ haAdvancedOptions?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * When haVmComponentProtection is enabled, controls the action to take on virtual machines if an APD status on an affected * datastore clears in the middle of an APD event. Can be one of none or reset. */ haDatastoreApdRecoveryAction?: pulumi.Input; /** * When haVmComponentProtection is enabled, controls the action to take on virtual machines when the cluster has detected * loss to all paths to a relevant datastore. Can be one of disabled, warning, restartConservative, or restartAggressive. */ haDatastoreApdResponse?: pulumi.Input; /** * When haVmComponentProtection is enabled, controls the delay in seconds to wait after an APD timeout event to execute the * response action defined in ha_datastore_apd_response. */ haDatastoreApdResponseDelay?: pulumi.Input; /** * When haVmComponentProtection is enabled, controls the action to take on virtual machines when the cluster has detected a * permanent device loss to a relevant datastore. Can be one of disabled, warning, or restartAggressive. */ haDatastorePdlResponse?: pulumi.Input; /** * Enable vSphere HA for this cluster. */ haEnabled?: pulumi.Input; /** * The list of managed object IDs for preferred datastores to use for HA heartbeating. This setting is only useful when * haHeartbeatDatastorePolicy is set to either userSelectedDs or allFeasibleDsWithUserPreference. */ haHeartbeatDatastoreIds?: pulumi.Input[]>; /** * The selection policy for HA heartbeat datastores. Can be one of allFeasibleDs, userSelectedDs, or * allFeasibleDsWithUserPreference. */ haHeartbeatDatastorePolicy?: pulumi.Input; /** * The action to take on virtual machines when a host has detected that it has been isolated from the rest of the cluster. * Can be one of none, powerOff, or shutdown. */ haHostIsolationResponse?: pulumi.Input; /** * Global setting that controls whether vSphere HA remediates VMs on host failure. Can be one of enabled or disabled. */ haHostMonitoring?: pulumi.Input; /** * Controls vSphere VM component protection for virtual machines in this cluster. This allows vSphere HA to react to * failures between hosts and specific virtual machine components, such as datastores. Can be one of enabled or disabled. */ haVmComponentProtection?: pulumi.Input; /** * The condition used to determine whether or not VMs in a certain restart priority class are online, allowing HA to move * on to restarting VMs on the next priority. Can be one of none, poweredOn, guestHbStatusGreen, or appHbStatusGreen. */ haVmDependencyRestartCondition?: pulumi.Input; /** * If a heartbeat from a virtual machine is not received within this configured interval, the virtual machine is marked as * failed. The value is in seconds. */ haVmFailureInterval?: pulumi.Input; /** * The length of the reset window in which haVmMaximumResets can operate. When this window expires, no more resets are * attempted regardless of the setting configured in ha_vm_maximum_resets. -1 means no window, meaning an unlimited reset * time is allotted. */ haVmMaximumFailureWindow?: pulumi.Input; /** * The maximum number of resets that HA will perform to a virtual machine when responding to a failure event. */ haVmMaximumResets?: pulumi.Input; /** * The time, in seconds, that HA waits after powering on a virtual machine before monitoring for heartbeats. */ haVmMinimumUptime?: pulumi.Input; /** * The type of virtual machine monitoring to use when HA is enabled in the cluster. Can be one of vmMonitoringDisabled, * vmMonitoringOnly, or vmAndAppMonitoring. */ haVmMonitoring?: pulumi.Input; /** * Additional delay in seconds after ready condition is met. A VM is considered ready at this point. */ haVmRestartAdditionalDelay?: pulumi.Input; /** * The default restart priority for affected VMs when vSphere detects a host failure. Can be one of lowest, low, medium, * high, or highest. */ haVmRestartPriority?: pulumi.Input; /** * The maximum time, in seconds, that vSphere HA will wait for virtual machines in one priority to be ready before * proceeding with the next priority. */ haVmRestartTimeout?: pulumi.Input; /** * The timeout for each host maintenance mode operation when removing hosts from a cluster. */ hostClusterExitTimeout?: pulumi.Input; /** * Details about the host image which should be applied to the cluster. */ hostImage?: pulumi.Input; /** * Must be set if cluster enrollment is managed from host resource. */ hostManaged?: pulumi.Input; /** * The managed object IDs of the hosts to put in the cluster. */ hostSystemIds?: pulumi.Input[]>; /** * The name of the cluster. */ name?: pulumi.Input; /** * The DRS behavior for proactive HA recommendations. Can be one of Automated or Manual. */ proactiveHaAutomationLevel?: pulumi.Input; /** * Enables proactive HA, allowing for vSphere to get HA data from external providers and use DRS to perform remediation. */ proactiveHaEnabled?: pulumi.Input; /** * The configured remediation for moderately degraded hosts. Can be one of MaintenanceMode or QuarantineMode. Note that * this cannot be set to MaintenanceMode when proactiveHaSevereRemediation is set to QuarantineMode. */ proactiveHaModerateRemediation?: pulumi.Input; /** * The list of IDs for health update providers configured for this cluster. */ proactiveHaProviderIds?: pulumi.Input[]>; /** * The configured remediation for severely degraded hosts. Can be one of MaintenanceMode or QuarantineMode. Note that this * cannot be set to QuarantineMode when proactiveHaModerateRemediation is set to MaintenanceMode. */ proactiveHaSevereRemediation?: pulumi.Input; /** * The managed object ID of the primary * resource pool for this cluster. This can be passed directly to the * `resourcePoolId` * attribute of the * `vsphere.VirtualMachine` resource. */ resourcePoolId?: pulumi.Input; /** * The IDs of any tags to attach to this resource. */ tags?: pulumi.Input[]>; /** * Whether the vSAN compression service is enabled for the cluster. */ vsanCompressionEnabled?: pulumi.Input; /** * Whether the vSAN deduplication service is enabled for the cluster. */ vsanDedupEnabled?: pulumi.Input; /** * A list of disk UUIDs to add to the vSAN cluster. */ vsanDiskGroups?: pulumi.Input[]>; /** * Whether the vSAN data-in-transit encryption is enabled for the cluster. */ vsanDitEncryptionEnabled?: pulumi.Input; /** * When vsanDitEncryptionEnabled is enabled, sets the rekey interval of data-in-transit encryption (in minutes). */ vsanDitRekeyInterval?: pulumi.Input; /** * Whether the vSAN service is enabled for the cluster. */ vsanEnabled?: pulumi.Input; /** * Whether the vSAN ESA service is enabled for the cluster. */ vsanEsaEnabled?: pulumi.Input; /** * The configuration for vSAN fault domains. */ vsanFaultDomains?: pulumi.Input[]>; /** * Whether the vSAN network diagnostic mode is enabled for the cluster. */ vsanNetworkDiagnosticModeEnabled?: pulumi.Input; /** * Whether the vSAN performance service is enabled for the cluster. */ vsanPerformanceEnabled?: pulumi.Input; /** * The managed object IDs of the vSAN datastore to be mounted on the cluster. */ vsanRemoteDatastoreIds?: pulumi.Input[]>; /** * The configuration for stretched cluster. */ vsanStretchedCluster?: pulumi.Input; /** * Whether the vSAN unmap service is enabled for the cluster. */ vsanUnmapEnabled?: pulumi.Input; /** * Whether the vSAN verbose mode is enabled for the cluster. */ vsanVerboseModeEnabled?: pulumi.Input; } /** * The set of arguments for constructing a ComputeCluster resource. */ export interface ComputeClusterArgs { /** * A map of custom attribute ids to attribute * value strings to set for the datastore cluster. * * > **NOTE:** Custom attributes are unsupported on direct ESXi connections * and require vCenter Server. */ customAttributes?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * The managed object ID of * the datacenter to create the cluster in. Forces a new resource if changed. */ datacenterId: pulumi.Input; /** * The automation level for host power operations in this cluster. Can be one of manual or automated. */ dpmAutomationLevel?: pulumi.Input; /** * Enable DPM support for DRS. This allows you to dynamically control the power of hosts depending on the needs of virtual * machines in the cluster. Requires that DRS be enabled. */ dpmEnabled?: pulumi.Input; /** * A value between 1 and 5 indicating the threshold of load within the cluster that influences host power operations. This * affects both power on and power off operations - a lower setting will tolerate more of a surplus/deficit than a higher * setting. */ dpmThreshold?: pulumi.Input; /** * Advanced configuration options for DRS and DPM. */ drsAdvancedOptions?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * The default automation level for all virtual machines in this cluster. Can be one of manual, partiallyAutomated, or * fullyAutomated. */ drsAutomationLevel?: pulumi.Input; /** * When true, enables DRS to use data from vRealize Operations Manager to make proactive DRS recommendations. */ drsEnablePredictiveDrs?: pulumi.Input; /** * When true, allows individual VM overrides within this cluster to be set. */ drsEnableVmOverrides?: pulumi.Input; /** * Enable DRS for this cluster. */ drsEnabled?: pulumi.Input; /** * A value between 1 and 5 indicating the threshold of imbalance tolerated between hosts. A lower setting will tolerate * more imbalance while a higher setting will tolerate less. */ drsMigrationThreshold?: pulumi.Input; /** * Enable scalable shares for all descendants of this cluster. */ drsScaleDescendantsShares?: pulumi.Input; /** * The relative path to a folder to put this cluster in. * This is a path relative to the datacenter you are deploying the cluster to. * Example: for the `dc1` datacenter, and a provided `folder` of `foo/bar`, * The provider will place a cluster named `compute-cluster-test` in a * host folder located at `/dc1/host/foo/bar`, with the final inventory path * being `/dc1/host/foo/bar/datastore-cluster-test`. */ folder?: pulumi.Input; /** * Force removal of all hosts in the cluster during destroy and make them standalone hosts. Use of this flag mainly exists * for testing and is not recommended in normal use. */ forceEvacuateOnDestroy?: pulumi.Input; /** * When haAdmissionControlPolicy is failoverHosts, this defines the managed object IDs of hosts to use as dedicated * failover hosts. These hosts are kept as available as possible - admission control will block access to the host, and DRS * will ignore the host when making recommendations. */ haAdmissionControlFailoverHostSystemIds?: pulumi.Input[]>; /** * The maximum number of failed hosts that admission control tolerates when making decisions on whether to permit virtual * machine operations. The maximum is one less than the number of hosts in the cluster. */ haAdmissionControlHostFailureTolerance?: pulumi.Input; /** * The percentage of resource reduction that a cluster of VMs can tolerate in case of a failover. A value of 0 produces * warnings only, whereas a value of 100 disables the setting. */ haAdmissionControlPerformanceTolerance?: pulumi.Input; /** * The type of admission control policy to use with vSphere HA, which controls whether or not specific VM operations are * permitted in the cluster in order to protect the reliability of the cluster. Can be one of resourcePercentage, * slotPolicy, failoverHosts, or disabled. Note that disabling admission control is not recommended and can lead to service * issues. */ haAdmissionControlPolicy?: pulumi.Input; /** * When haAdmissionControlPolicy is resourcePercentage, automatically determine available resource percentages by * subtracting the average number of host resources represented by the haAdmissionControlHostFailureTolerance setting from * the total amount of resources in the cluster. Disable to supply user-defined values. */ haAdmissionControlResourcePercentageAutoCompute?: pulumi.Input; /** * When haAdmissionControlPolicy is resourcePercentage, this controls the user-defined percentage of CPU resources in the * cluster to reserve for failover. */ haAdmissionControlResourcePercentageCpu?: pulumi.Input; /** * When haAdmissionControlPolicy is resourcePercentage, this controls the user-defined percentage of memory resources in * the cluster to reserve for failover. */ haAdmissionControlResourcePercentageMemory?: pulumi.Input; /** * When haAdmissionControlPolicy is slotPolicy, this controls the user-defined CPU slot size, in MHz. */ haAdmissionControlSlotPolicyExplicitCpu?: pulumi.Input; /** * When haAdmissionControlPolicy is slotPolicy, this controls the user-defined memory slot size, in MB. */ haAdmissionControlSlotPolicyExplicitMemory?: pulumi.Input; /** * When haAdmissionControlPolicy is slotPolicy, this setting controls whether or not you wish to supply explicit values to * CPU and memory slot sizes. The default is to gather a automatic average based on all powered-on virtual machines * currently in the cluster. */ haAdmissionControlSlotPolicyUseExplicitSize?: pulumi.Input; /** * Advanced configuration options for vSphere HA. */ haAdvancedOptions?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * When haVmComponentProtection is enabled, controls the action to take on virtual machines if an APD status on an affected * datastore clears in the middle of an APD event. Can be one of none or reset. */ haDatastoreApdRecoveryAction?: pulumi.Input; /** * When haVmComponentProtection is enabled, controls the action to take on virtual machines when the cluster has detected * loss to all paths to a relevant datastore. Can be one of disabled, warning, restartConservative, or restartAggressive. */ haDatastoreApdResponse?: pulumi.Input; /** * When haVmComponentProtection is enabled, controls the delay in seconds to wait after an APD timeout event to execute the * response action defined in ha_datastore_apd_response. */ haDatastoreApdResponseDelay?: pulumi.Input; /** * When haVmComponentProtection is enabled, controls the action to take on virtual machines when the cluster has detected a * permanent device loss to a relevant datastore. Can be one of disabled, warning, or restartAggressive. */ haDatastorePdlResponse?: pulumi.Input; /** * Enable vSphere HA for this cluster. */ haEnabled?: pulumi.Input; /** * The list of managed object IDs for preferred datastores to use for HA heartbeating. This setting is only useful when * haHeartbeatDatastorePolicy is set to either userSelectedDs or allFeasibleDsWithUserPreference. */ haHeartbeatDatastoreIds?: pulumi.Input[]>; /** * The selection policy for HA heartbeat datastores. Can be one of allFeasibleDs, userSelectedDs, or * allFeasibleDsWithUserPreference. */ haHeartbeatDatastorePolicy?: pulumi.Input; /** * The action to take on virtual machines when a host has detected that it has been isolated from the rest of the cluster. * Can be one of none, powerOff, or shutdown. */ haHostIsolationResponse?: pulumi.Input; /** * Global setting that controls whether vSphere HA remediates VMs on host failure. Can be one of enabled or disabled. */ haHostMonitoring?: pulumi.Input; /** * Controls vSphere VM component protection for virtual machines in this cluster. This allows vSphere HA to react to * failures between hosts and specific virtual machine components, such as datastores. Can be one of enabled or disabled. */ haVmComponentProtection?: pulumi.Input; /** * The condition used to determine whether or not VMs in a certain restart priority class are online, allowing HA to move * on to restarting VMs on the next priority. Can be one of none, poweredOn, guestHbStatusGreen, or appHbStatusGreen. */ haVmDependencyRestartCondition?: pulumi.Input; /** * If a heartbeat from a virtual machine is not received within this configured interval, the virtual machine is marked as * failed. The value is in seconds. */ haVmFailureInterval?: pulumi.Input; /** * The length of the reset window in which haVmMaximumResets can operate. When this window expires, no more resets are * attempted regardless of the setting configured in ha_vm_maximum_resets. -1 means no window, meaning an unlimited reset * time is allotted. */ haVmMaximumFailureWindow?: pulumi.Input; /** * The maximum number of resets that HA will perform to a virtual machine when responding to a failure event. */ haVmMaximumResets?: pulumi.Input; /** * The time, in seconds, that HA waits after powering on a virtual machine before monitoring for heartbeats. */ haVmMinimumUptime?: pulumi.Input; /** * The type of virtual machine monitoring to use when HA is enabled in the cluster. Can be one of vmMonitoringDisabled, * vmMonitoringOnly, or vmAndAppMonitoring. */ haVmMonitoring?: pulumi.Input; /** * Additional delay in seconds after ready condition is met. A VM is considered ready at this point. */ haVmRestartAdditionalDelay?: pulumi.Input; /** * The default restart priority for affected VMs when vSphere detects a host failure. Can be one of lowest, low, medium, * high, or highest. */ haVmRestartPriority?: pulumi.Input; /** * The maximum time, in seconds, that vSphere HA will wait for virtual machines in one priority to be ready before * proceeding with the next priority. */ haVmRestartTimeout?: pulumi.Input; /** * The timeout for each host maintenance mode operation when removing hosts from a cluster. */ hostClusterExitTimeout?: pulumi.Input; /** * Details about the host image which should be applied to the cluster. */ hostImage?: pulumi.Input; /** * Must be set if cluster enrollment is managed from host resource. */ hostManaged?: pulumi.Input; /** * The managed object IDs of the hosts to put in the cluster. */ hostSystemIds?: pulumi.Input[]>; /** * The name of the cluster. */ name?: pulumi.Input; /** * The DRS behavior for proactive HA recommendations. Can be one of Automated or Manual. */ proactiveHaAutomationLevel?: pulumi.Input; /** * Enables proactive HA, allowing for vSphere to get HA data from external providers and use DRS to perform remediation. */ proactiveHaEnabled?: pulumi.Input; /** * The configured remediation for moderately degraded hosts. Can be one of MaintenanceMode or QuarantineMode. Note that * this cannot be set to MaintenanceMode when proactiveHaSevereRemediation is set to QuarantineMode. */ proactiveHaModerateRemediation?: pulumi.Input; /** * The list of IDs for health update providers configured for this cluster. */ proactiveHaProviderIds?: pulumi.Input[]>; /** * The configured remediation for severely degraded hosts. Can be one of MaintenanceMode or QuarantineMode. Note that this * cannot be set to QuarantineMode when proactiveHaModerateRemediation is set to MaintenanceMode. */ proactiveHaSevereRemediation?: pulumi.Input; /** * The IDs of any tags to attach to this resource. */ tags?: pulumi.Input[]>; /** * Whether the vSAN compression service is enabled for the cluster. */ vsanCompressionEnabled?: pulumi.Input; /** * Whether the vSAN deduplication service is enabled for the cluster. */ vsanDedupEnabled?: pulumi.Input; /** * A list of disk UUIDs to add to the vSAN cluster. */ vsanDiskGroups?: pulumi.Input[]>; /** * Whether the vSAN data-in-transit encryption is enabled for the cluster. */ vsanDitEncryptionEnabled?: pulumi.Input; /** * When vsanDitEncryptionEnabled is enabled, sets the rekey interval of data-in-transit encryption (in minutes). */ vsanDitRekeyInterval?: pulumi.Input; /** * Whether the vSAN service is enabled for the cluster. */ vsanEnabled?: pulumi.Input; /** * Whether the vSAN ESA service is enabled for the cluster. */ vsanEsaEnabled?: pulumi.Input; /** * The configuration for vSAN fault domains. */ vsanFaultDomains?: pulumi.Input[]>; /** * Whether the vSAN network diagnostic mode is enabled for the cluster. */ vsanNetworkDiagnosticModeEnabled?: pulumi.Input; /** * Whether the vSAN performance service is enabled for the cluster. */ vsanPerformanceEnabled?: pulumi.Input; /** * The managed object IDs of the vSAN datastore to be mounted on the cluster. */ vsanRemoteDatastoreIds?: pulumi.Input[]>; /** * The configuration for stretched cluster. */ vsanStretchedCluster?: pulumi.Input; /** * Whether the vSAN unmap service is enabled for the cluster. */ vsanUnmapEnabled?: pulumi.Input; /** * Whether the vSAN verbose mode is enabled for the cluster. */ vsanVerboseModeEnabled?: pulumi.Input; }