@pulumi/vsphere 4.16.2 → 4.16.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/computeCluster.d.ts +137 -67
- package/computeCluster.js +92 -46
- package/computeCluster.js.map +1 -1
- package/computeClusterHostGroup.d.ts +45 -25
- package/computeClusterHostGroup.js +21 -13
- package/computeClusterHostGroup.js.map +1 -1
- package/computeClusterVmAffinityRule.d.ts +32 -20
- package/computeClusterVmAffinityRule.js +20 -14
- package/computeClusterVmAffinityRule.js.map +1 -1
- package/computeClusterVmAntiAffinityRule.d.ts +40 -13
- package/computeClusterVmAntiAffinityRule.js +28 -7
- package/computeClusterVmAntiAffinityRule.js.map +1 -1
- package/computeClusterVmDependencyRule.d.ts +32 -24
- package/computeClusterVmDependencyRule.js +20 -18
- package/computeClusterVmDependencyRule.js.map +1 -1
- package/computeClusterVmGroup.d.ts +32 -23
- package/computeClusterVmGroup.js +8 -11
- package/computeClusterVmGroup.js.map +1 -1
- package/computeClusterVmHostRule.d.ts +36 -26
- package/computeClusterVmHostRule.js +24 -20
- package/computeClusterVmHostRule.js.map +1 -1
- package/configurationProfile.d.ts +88 -0
- package/configurationProfile.js +88 -0
- package/configurationProfile.js.map +1 -1
- package/contentLibrary.d.ts +6 -4
- package/contentLibrary.js +3 -1
- package/contentLibrary.js.map +1 -1
- package/contentLibraryItem.d.ts +3 -2
- package/contentLibraryItem.js +3 -2
- package/contentLibraryItem.js.map +1 -1
- package/customAttribute.d.ts +2 -3
- package/customAttribute.js +2 -3
- package/customAttribute.js.map +1 -1
- package/datacenter.d.ts +18 -8
- package/datacenter.js +4 -3
- package/datacenter.js.map +1 -1
- package/datastoreCluster.d.ts +37 -25
- package/datastoreCluster.js +10 -10
- package/datastoreCluster.js.map +1 -1
- package/datastoreClusterVmAntiAffinityRule.d.ts +37 -22
- package/datastoreClusterVmAntiAffinityRule.js +13 -13
- package/datastoreClusterVmAntiAffinityRule.js.map +1 -1
- package/distributedPortGroup.d.ts +19 -9
- package/distributedPortGroup.js +7 -6
- package/distributedPortGroup.js.map +1 -1
- package/distributedVirtualSwitch.d.ts +27 -10
- package/distributedVirtualSwitch.js +3 -4
- package/distributedVirtualSwitch.js.map +1 -1
- package/dpmHostOverride.d.ts +21 -16
- package/dpmHostOverride.js +9 -10
- package/dpmHostOverride.js.map +1 -1
- package/drsVmOverride.d.ts +22 -17
- package/drsVmOverride.js +10 -11
- package/drsVmOverride.js.map +1 -1
- package/entityPermissions.d.ts +58 -0
- package/entityPermissions.js +58 -0
- package/entityPermissions.js.map +1 -1
- package/file.d.ts +15 -0
- package/file.js +15 -0
- package/file.js.map +1 -1
- package/folder.d.ts +37 -19
- package/folder.js +7 -10
- package/folder.js.map +1 -1
- package/getComputeCluster.d.ts +35 -19
- package/getComputeCluster.js +24 -10
- package/getComputeCluster.js.map +1 -1
- package/getCustomAttribute.d.ts +10 -6
- package/getCustomAttribute.js +10 -6
- package/getCustomAttribute.js.map +1 -1
- package/getDatacenter.d.ts +10 -6
- package/getDatacenter.js +10 -6
- package/getDatacenter.js.map +1 -1
- package/getDatastore.d.ts +22 -16
- package/getDatastore.js +12 -8
- package/getDatastore.js.map +1 -1
- package/getDatastoreCluster.d.ts +24 -10
- package/getDatastoreCluster.js +20 -6
- package/getDatastoreCluster.js.map +1 -1
- package/getDistributedVirtualSwitch.d.ts +25 -19
- package/getDistributedVirtualSwitch.js +12 -8
- package/getDistributedVirtualSwitch.js.map +1 -1
- package/getHost.d.ts +23 -13
- package/getHost.js +8 -4
- package/getHost.js.map +1 -1
- package/getNetwork.d.ts +12 -8
- package/getNetwork.js.map +1 -1
- package/getOvfVmTemplate.d.ts +276 -0
- package/getOvfVmTemplate.js +276 -0
- package/getOvfVmTemplate.js.map +1 -1
- package/getResourcePool.d.ts +38 -26
- package/getResourcePool.js +16 -8
- package/getResourcePool.js.map +1 -1
- package/getTag.d.ts +14 -10
- package/getTag.js +14 -10
- package/getTag.js.map +1 -1
- package/getTagCategory.d.ts +8 -4
- package/getTagCategory.js +8 -4
- package/getTagCategory.js.map +1 -1
- package/getVappContainer.d.ts +16 -6
- package/getVappContainer.js +6 -2
- package/getVappContainer.js.map +1 -1
- package/getVirtualMachine.d.ts +58 -36
- package/getVirtualMachine.js +10 -6
- package/getVirtualMachine.js.map +1 -1
- package/getVmfsDisks.d.ts +12 -4
- package/getVmfsDisks.js +6 -2
- package/getVmfsDisks.js.map +1 -1
- package/haVmOverride.d.ts +8 -10
- package/haVmOverride.js +8 -10
- package/haVmOverride.js.map +1 -1
- package/host.d.ts +54 -80
- package/host.js +54 -80
- package/host.js.map +1 -1
- package/hostPortGroup.d.ts +21 -11
- package/hostPortGroup.js +8 -4
- package/hostPortGroup.js.map +1 -1
- package/hostVirtualSwitch.d.ts +21 -17
- package/hostVirtualSwitch.js +9 -11
- package/hostVirtualSwitch.js.map +1 -1
- package/nasDatastore.d.ts +48 -35
- package/nasDatastore.js +9 -8
- package/nasDatastore.js.map +1 -1
- package/package.json +2 -2
- package/resourcePool.d.ts +31 -7
- package/resourcePool.js +13 -1
- package/resourcePool.js.map +1 -1
- package/role.d.ts +31 -2
- package/role.js +31 -2
- package/role.js.map +1 -1
- package/storageDrsVmOverride.d.ts +40 -17
- package/storageDrsVmOverride.js +19 -8
- package/storageDrsVmOverride.js.map +1 -1
- package/tag.d.ts +16 -15
- package/tag.js +16 -15
- package/tag.js.map +1 -1
- package/tagCategory.d.ts +2 -3
- package/tagCategory.js +2 -3
- package/tagCategory.js.map +1 -1
- package/types/input.d.ts +5 -3
- package/types/output.d.ts +5 -3
- package/vappContainer.d.ts +21 -12
- package/vappContainer.js +0 -3
- package/vappContainer.js.map +1 -1
- package/vappEntity.d.ts +14 -11
- package/vappEntity.js +2 -5
- package/vappEntity.js.map +1 -1
- package/virtualDisk.d.ts +18 -10
- package/virtualDisk.js +9 -7
- package/virtualDisk.js.map +1 -1
- package/virtualMachine.d.ts +1102 -10
- package/virtualMachine.js +1056 -6
- package/virtualMachine.js.map +1 -1
- package/virtualMachineSnapshot.d.ts +2 -1
- package/virtualMachineSnapshot.js +2 -1
- package/virtualMachineSnapshot.js.map +1 -1
- package/vmfsDatastore.d.ts +54 -42
- package/vmfsDatastore.js +12 -15
- package/vmfsDatastore.js.map +1 -1
- package/vnic.d.ts +4 -3
- package/vnic.js +4 -3
- package/vnic.js.map +1 -1
package/computeCluster.d.ts
CHANGED
|
@@ -5,12 +5,14 @@ import * as outputs from "./types/output";
|
|
|
5
5
|
* > **A note on the naming of this resource:** VMware refers to clusters of
|
|
6
6
|
* hosts in the UI and documentation as _clusters_, _HA clusters_, or _DRS
|
|
7
7
|
* clusters_. All of these refer to the same kind of resource (with the latter two
|
|
8
|
-
* referring to specific features of clustering).
|
|
8
|
+
* referring to specific features of clustering). In Terraform, we use
|
|
9
9
|
* `vsphere.ComputeCluster` to differentiate host clusters from _datastore
|
|
10
10
|
* clusters_, which are clusters of datastores that can be used to distribute load
|
|
11
11
|
* and ensure fault tolerance via distribution of virtual machines. Datastore
|
|
12
|
-
* clusters can also be managed through
|
|
13
|
-
* `vsphere.DatastoreCluster` resource.
|
|
12
|
+
* clusters can also be managed through Terraform, via the
|
|
13
|
+
* [`vsphere.DatastoreCluster` resource][docs-r-vsphere-datastore-cluster].
|
|
14
|
+
*
|
|
15
|
+
* [docs-r-vsphere-datastore-cluster]: /docs/providers/vsphere/r/datastore_cluster.html
|
|
14
16
|
*
|
|
15
17
|
* The `vsphere.ComputeCluster` resource can be used to create and manage
|
|
16
18
|
* clusters of hosts allowing for resource control of compute resources, load
|
|
@@ -26,68 +28,112 @@ import * as outputs from "./types/output";
|
|
|
26
28
|
* > **NOTE:** This resource requires vCenter and is not available on
|
|
27
29
|
* direct ESXi connections.
|
|
28
30
|
*
|
|
29
|
-
* ##
|
|
30
|
-
*
|
|
31
|
-
* An existing cluster can be imported into this resource via the
|
|
31
|
+
* ## Example Usage
|
|
32
32
|
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
33
|
+
* The following example sets up a cluster and enables DRS and vSphere HA with the
|
|
34
|
+
* default settings. The hosts have to exist already in vSphere and should not
|
|
35
|
+
* already be members of clusters - it's best to add these as standalone hosts
|
|
36
|
+
* before adding them to a cluster.
|
|
36
37
|
*
|
|
37
|
-
*
|
|
38
|
+
* Note that the following example assumes each host has been configured correctly
|
|
39
|
+
* according to the requirements of vSphere HA. For more information, click
|
|
40
|
+
* [here][ref-vsphere-ha-checklist].
|
|
38
41
|
*
|
|
39
|
-
*
|
|
42
|
+
* [ref-vsphere-ha-checklist]: https://techdocs.broadcom.com/us/en/vmware-cis/vsphere/vsphere/8-0/vsphere-availability.html
|
|
40
43
|
*
|
|
41
|
-
*
|
|
44
|
+
* ```typescript
|
|
45
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
46
|
+
* import * as std from "@pulumi/std";
|
|
47
|
+
* import * as vsphere from "@pulumi/vsphere";
|
|
42
48
|
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
49
|
+
* const config = new pulumi.Config();
|
|
50
|
+
* const datacenter = config.get("datacenter") || "dc-01";
|
|
51
|
+
* const hosts = config.getObject<any>("hosts") || [
|
|
52
|
+
* "esxi-01.example.com",
|
|
53
|
+
* "esxi-02.example.com",
|
|
54
|
+
* "esxi-03.example.com",
|
|
55
|
+
* ];
|
|
56
|
+
* const datacenterGetDatacenter = vsphere.getDatacenter({
|
|
57
|
+
* name: datacenter,
|
|
58
|
+
* });
|
|
59
|
+
* const host = .reduce((__obj, [__key, __value]) => ({ ...__obj, [__key]: vsphere.getHost({
|
|
60
|
+
* name: __value,
|
|
61
|
+
* datacenterId: _arg0_.id,
|
|
62
|
+
* }) }));
|
|
63
|
+
* const computeCluster = new vsphere.ComputeCluster("compute_cluster", {
|
|
64
|
+
* name: "pulumi-compute-cluster-test",
|
|
65
|
+
* datacenterId: datacenterGetDatacenter.then(datacenterGetDatacenter => datacenterGetDatacenter.id),
|
|
66
|
+
* hostSystemIds: Object.values(host).map(host => (host.id)),
|
|
67
|
+
* drsEnabled: true,
|
|
68
|
+
* drsAutomationLevel: "fullyAutomated",
|
|
69
|
+
* haEnabled: true,
|
|
70
|
+
* });
|
|
71
|
+
* ```
|
|
52
72
|
*
|
|
53
|
-
*
|
|
73
|
+
* ## vSphere Version Requirements
|
|
54
74
|
*
|
|
55
|
-
*
|
|
75
|
+
* Some settings in the `vsphere.ComputeCluster` resource may require a
|
|
76
|
+
* specific version of vSphere.
|
|
56
77
|
*
|
|
57
|
-
*
|
|
78
|
+
* ### Settings that Require vSphere 7.0 or higher
|
|
58
79
|
*
|
|
59
|
-
*
|
|
80
|
+
* These settings require vSphere 7.0 or higher:
|
|
60
81
|
*
|
|
61
|
-
*
|
|
82
|
+
* * `drsScaleDescendantsShares`
|
|
62
83
|
*
|
|
63
|
-
*
|
|
84
|
+
* ### Settings that Require vSphere 8.0 or higher
|
|
64
85
|
*
|
|
65
|
-
*
|
|
86
|
+
* These settings require vSphere 8.0 or higher:
|
|
66
87
|
*
|
|
67
|
-
*
|
|
88
|
+
* * `vsanEsaEnabled`
|
|
68
89
|
*
|
|
69
|
-
*
|
|
90
|
+
* ## Import
|
|
70
91
|
*
|
|
71
|
-
*
|
|
92
|
+
* An existing cluster can be imported into this resource via the
|
|
93
|
+
* path to the cluster, via the following command:
|
|
72
94
|
*
|
|
73
|
-
*
|
|
95
|
+
* [docs-import]: https://developer.hashicorp.com/terraform/cli/import
|
|
74
96
|
*
|
|
75
|
-
*
|
|
97
|
+
* ```typescript
|
|
98
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
99
|
+
* import * as vsphere from "@pulumi/vsphere";
|
|
76
100
|
*
|
|
77
|
-
*
|
|
101
|
+
* const config = new pulumi.Config();
|
|
102
|
+
* const datacenter = config.get("datacenter") || "dc-01";
|
|
103
|
+
* const datacenterGetDatacenter = vsphere.getDatacenter({
|
|
104
|
+
* name: datacenter,
|
|
105
|
+
* });
|
|
106
|
+
* const computeCluster = new vsphere.ComputeCluster("compute_cluster", {
|
|
107
|
+
* name: "cluster-01",
|
|
108
|
+
* datacenterId: datacenterGetDatacenter.then(datacenterGetDatacenter => datacenterGetDatacenter.id),
|
|
109
|
+
* });
|
|
110
|
+
* ```
|
|
78
111
|
*
|
|
79
|
-
*
|
|
112
|
+
* > **NOTE:** When you import a cluster, all managed settings are returned. Ensure all settings are set correctly in resource. For example:
|
|
80
113
|
*
|
|
81
|
-
*
|
|
114
|
+
* ```typescript
|
|
115
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
116
|
+
* import * as vsphere from "@pulumi/vsphere";
|
|
82
117
|
*
|
|
83
|
-
*
|
|
118
|
+
* const computeCluster = new vsphere.ComputeCluster("compute_cluster", {
|
|
119
|
+
* name: "cluster-01",
|
|
120
|
+
* datacenterId: datacenter.id,
|
|
121
|
+
* vsanEnabled: true,
|
|
122
|
+
* vsanPerformanceEnabled: true,
|
|
123
|
+
* hostSystemIds: .map(host => (host.id)),
|
|
124
|
+
* dpmAutomationLevel: "automated",
|
|
125
|
+
* drsAutomationLevel: "fullyAutomated",
|
|
126
|
+
* drsEnabled: true,
|
|
127
|
+
* haDatastoreApdResponse: "restartConservative",
|
|
128
|
+
* haDatastorePdlResponse: "restartAggressive",
|
|
129
|
+
* });
|
|
130
|
+
* ```
|
|
84
131
|
*
|
|
85
132
|
* ```sh
|
|
86
133
|
* $ pulumi import vsphere:index/computeCluster:ComputeCluster compute_cluster /dc-01/host/cluster-01
|
|
87
134
|
* ```
|
|
88
135
|
*
|
|
89
136
|
* The above would import the cluster named `cluster-01` that is located in
|
|
90
|
-
*
|
|
91
137
|
* the `dc-01` datacenter.
|
|
92
138
|
*/
|
|
93
139
|
export declare class ComputeCluster extends pulumi.CustomResource {
|
|
@@ -108,16 +154,20 @@ export declare class ComputeCluster extends pulumi.CustomResource {
|
|
|
108
154
|
static isInstance(obj: any): obj is ComputeCluster;
|
|
109
155
|
/**
|
|
110
156
|
* A map of custom attribute ids to attribute
|
|
111
|
-
* value strings to set for the datastore cluster.
|
|
157
|
+
* value strings to set for the datastore cluster. See
|
|
158
|
+
* [here][docs-setting-custom-attributes] for a reference on how to set values
|
|
159
|
+
* for custom attributes.
|
|
112
160
|
*
|
|
113
|
-
*
|
|
114
|
-
*
|
|
161
|
+
* [docs-setting-custom-attributes]: /docs/providers/vsphere/r/custom_attribute.html#using-custom-attributes-in-a-supported-resource
|
|
162
|
+
*
|
|
163
|
+
* > **NOTE:** Custom attributes are not supported on direct ESXi host
|
|
164
|
+
* connections and requires vCenter Server.
|
|
115
165
|
*/
|
|
116
166
|
readonly customAttributes: pulumi.Output<{
|
|
117
167
|
[key: string]: string;
|
|
118
168
|
} | undefined>;
|
|
119
169
|
/**
|
|
120
|
-
* The managed object ID of
|
|
170
|
+
* The [managed object ID][docs-about-morefs] of
|
|
121
171
|
* the datacenter to create the cluster in. Forces a new resource if changed.
|
|
122
172
|
*/
|
|
123
173
|
readonly datacenterId: pulumi.Output<string>;
|
|
@@ -167,9 +217,9 @@ export declare class ComputeCluster extends pulumi.CustomResource {
|
|
|
167
217
|
* The relative path to a folder to put this cluster in.
|
|
168
218
|
* This is a path relative to the datacenter you are deploying the cluster to.
|
|
169
219
|
* Example: for the `dc1` datacenter, and a provided `folder` of `foo/bar`,
|
|
170
|
-
*
|
|
220
|
+
* Terraform will place a cluster named `terraform-compute-cluster-test` in a
|
|
171
221
|
* host folder located at `/dc1/host/foo/bar`, with the final inventory path
|
|
172
|
-
* being `/dc1/host/foo/bar/datastore-cluster-test`.
|
|
222
|
+
* being `/dc1/host/foo/bar/terraform-datastore-cluster-test`.
|
|
173
223
|
*/
|
|
174
224
|
readonly folder: pulumi.Output<string | undefined>;
|
|
175
225
|
/**
|
|
@@ -339,15 +389,19 @@ export declare class ComputeCluster extends pulumi.CustomResource {
|
|
|
339
389
|
*/
|
|
340
390
|
readonly proactiveHaSevereRemediation: pulumi.Output<string | undefined>;
|
|
341
391
|
/**
|
|
342
|
-
* The managed object ID of the primary
|
|
392
|
+
* The [managed object ID][docs-about-morefs] of the primary
|
|
343
393
|
* resource pool for this cluster. This can be passed directly to the
|
|
344
|
-
* `resourcePoolId`
|
|
345
|
-
* attribute of the
|
|
346
|
-
* `vsphere.VirtualMachine` resource.
|
|
394
|
+
* [`resourcePoolId`
|
|
395
|
+
* attribute][docs-r-vsphere-virtual-machine-resource-pool-id] of the
|
|
396
|
+
* [`vsphere.VirtualMachine`][docs-r-vsphere-virtual-machine] resource.
|
|
347
397
|
*/
|
|
348
398
|
readonly resourcePoolId: pulumi.Output<string>;
|
|
349
399
|
/**
|
|
350
|
-
* The IDs of any tags to attach to this resource.
|
|
400
|
+
* The IDs of any tags to attach to this resource. See
|
|
401
|
+
* [here][docs-applying-tags] for a reference on how to apply tags.
|
|
402
|
+
*
|
|
403
|
+
* [docs-about-morefs]: /docs/providers/vsphere/index.html#use-of-managed-object-references-by-the-vsphere-provider
|
|
404
|
+
* [docs-applying-tags]: /docs/providers/vsphere/r/tag.html#using-tags-in-a-supported-resource
|
|
351
405
|
*/
|
|
352
406
|
readonly tags: pulumi.Output<string[] | undefined>;
|
|
353
407
|
/**
|
|
@@ -421,16 +475,20 @@ export declare class ComputeCluster extends pulumi.CustomResource {
|
|
|
421
475
|
export interface ComputeClusterState {
|
|
422
476
|
/**
|
|
423
477
|
* A map of custom attribute ids to attribute
|
|
424
|
-
* value strings to set for the datastore cluster.
|
|
478
|
+
* value strings to set for the datastore cluster. See
|
|
479
|
+
* [here][docs-setting-custom-attributes] for a reference on how to set values
|
|
480
|
+
* for custom attributes.
|
|
481
|
+
*
|
|
482
|
+
* [docs-setting-custom-attributes]: /docs/providers/vsphere/r/custom_attribute.html#using-custom-attributes-in-a-supported-resource
|
|
425
483
|
*
|
|
426
|
-
* > **NOTE:** Custom attributes are
|
|
427
|
-
* and
|
|
484
|
+
* > **NOTE:** Custom attributes are not supported on direct ESXi host
|
|
485
|
+
* connections and requires vCenter Server.
|
|
428
486
|
*/
|
|
429
487
|
customAttributes?: pulumi.Input<{
|
|
430
488
|
[key: string]: pulumi.Input<string>;
|
|
431
489
|
}>;
|
|
432
490
|
/**
|
|
433
|
-
* The managed object ID of
|
|
491
|
+
* The [managed object ID][docs-about-morefs] of
|
|
434
492
|
* the datacenter to create the cluster in. Forces a new resource if changed.
|
|
435
493
|
*/
|
|
436
494
|
datacenterId?: pulumi.Input<string>;
|
|
@@ -480,9 +538,9 @@ export interface ComputeClusterState {
|
|
|
480
538
|
* The relative path to a folder to put this cluster in.
|
|
481
539
|
* This is a path relative to the datacenter you are deploying the cluster to.
|
|
482
540
|
* Example: for the `dc1` datacenter, and a provided `folder` of `foo/bar`,
|
|
483
|
-
*
|
|
541
|
+
* Terraform will place a cluster named `terraform-compute-cluster-test` in a
|
|
484
542
|
* host folder located at `/dc1/host/foo/bar`, with the final inventory path
|
|
485
|
-
* being `/dc1/host/foo/bar/datastore-cluster-test`.
|
|
543
|
+
* being `/dc1/host/foo/bar/terraform-datastore-cluster-test`.
|
|
486
544
|
*/
|
|
487
545
|
folder?: pulumi.Input<string>;
|
|
488
546
|
/**
|
|
@@ -652,15 +710,19 @@ export interface ComputeClusterState {
|
|
|
652
710
|
*/
|
|
653
711
|
proactiveHaSevereRemediation?: pulumi.Input<string>;
|
|
654
712
|
/**
|
|
655
|
-
* The managed object ID of the primary
|
|
713
|
+
* The [managed object ID][docs-about-morefs] of the primary
|
|
656
714
|
* resource pool for this cluster. This can be passed directly to the
|
|
657
|
-
* `resourcePoolId`
|
|
658
|
-
* attribute of the
|
|
659
|
-
* `vsphere.VirtualMachine` resource.
|
|
715
|
+
* [`resourcePoolId`
|
|
716
|
+
* attribute][docs-r-vsphere-virtual-machine-resource-pool-id] of the
|
|
717
|
+
* [`vsphere.VirtualMachine`][docs-r-vsphere-virtual-machine] resource.
|
|
660
718
|
*/
|
|
661
719
|
resourcePoolId?: pulumi.Input<string>;
|
|
662
720
|
/**
|
|
663
|
-
* The IDs of any tags to attach to this resource.
|
|
721
|
+
* The IDs of any tags to attach to this resource. See
|
|
722
|
+
* [here][docs-applying-tags] for a reference on how to apply tags.
|
|
723
|
+
*
|
|
724
|
+
* [docs-about-morefs]: /docs/providers/vsphere/index.html#use-of-managed-object-references-by-the-vsphere-provider
|
|
725
|
+
* [docs-applying-tags]: /docs/providers/vsphere/r/tag.html#using-tags-in-a-supported-resource
|
|
664
726
|
*/
|
|
665
727
|
tags?: pulumi.Input<pulumi.Input<string>[]>;
|
|
666
728
|
/**
|
|
@@ -726,16 +788,20 @@ export interface ComputeClusterState {
|
|
|
726
788
|
export interface ComputeClusterArgs {
|
|
727
789
|
/**
|
|
728
790
|
* A map of custom attribute ids to attribute
|
|
729
|
-
* value strings to set for the datastore cluster.
|
|
791
|
+
* value strings to set for the datastore cluster. See
|
|
792
|
+
* [here][docs-setting-custom-attributes] for a reference on how to set values
|
|
793
|
+
* for custom attributes.
|
|
794
|
+
*
|
|
795
|
+
* [docs-setting-custom-attributes]: /docs/providers/vsphere/r/custom_attribute.html#using-custom-attributes-in-a-supported-resource
|
|
730
796
|
*
|
|
731
|
-
* > **NOTE:** Custom attributes are
|
|
732
|
-
* and
|
|
797
|
+
* > **NOTE:** Custom attributes are not supported on direct ESXi host
|
|
798
|
+
* connections and requires vCenter Server.
|
|
733
799
|
*/
|
|
734
800
|
customAttributes?: pulumi.Input<{
|
|
735
801
|
[key: string]: pulumi.Input<string>;
|
|
736
802
|
}>;
|
|
737
803
|
/**
|
|
738
|
-
* The managed object ID of
|
|
804
|
+
* The [managed object ID][docs-about-morefs] of
|
|
739
805
|
* the datacenter to create the cluster in. Forces a new resource if changed.
|
|
740
806
|
*/
|
|
741
807
|
datacenterId: pulumi.Input<string>;
|
|
@@ -785,9 +851,9 @@ export interface ComputeClusterArgs {
|
|
|
785
851
|
* The relative path to a folder to put this cluster in.
|
|
786
852
|
* This is a path relative to the datacenter you are deploying the cluster to.
|
|
787
853
|
* Example: for the `dc1` datacenter, and a provided `folder` of `foo/bar`,
|
|
788
|
-
*
|
|
854
|
+
* Terraform will place a cluster named `terraform-compute-cluster-test` in a
|
|
789
855
|
* host folder located at `/dc1/host/foo/bar`, with the final inventory path
|
|
790
|
-
* being `/dc1/host/foo/bar/datastore-cluster-test`.
|
|
856
|
+
* being `/dc1/host/foo/bar/terraform-datastore-cluster-test`.
|
|
791
857
|
*/
|
|
792
858
|
folder?: pulumi.Input<string>;
|
|
793
859
|
/**
|
|
@@ -957,7 +1023,11 @@ export interface ComputeClusterArgs {
|
|
|
957
1023
|
*/
|
|
958
1024
|
proactiveHaSevereRemediation?: pulumi.Input<string>;
|
|
959
1025
|
/**
|
|
960
|
-
* The IDs of any tags to attach to this resource.
|
|
1026
|
+
* The IDs of any tags to attach to this resource. See
|
|
1027
|
+
* [here][docs-applying-tags] for a reference on how to apply tags.
|
|
1028
|
+
*
|
|
1029
|
+
* [docs-about-morefs]: /docs/providers/vsphere/index.html#use-of-managed-object-references-by-the-vsphere-provider
|
|
1030
|
+
* [docs-applying-tags]: /docs/providers/vsphere/r/tag.html#using-tags-in-a-supported-resource
|
|
961
1031
|
*/
|
|
962
1032
|
tags?: pulumi.Input<pulumi.Input<string>[]>;
|
|
963
1033
|
/**
|
package/computeCluster.js
CHANGED
|
@@ -9,12 +9,14 @@ const utilities = require("./utilities");
|
|
|
9
9
|
* > **A note on the naming of this resource:** VMware refers to clusters of
|
|
10
10
|
* hosts in the UI and documentation as _clusters_, _HA clusters_, or _DRS
|
|
11
11
|
* clusters_. All of these refer to the same kind of resource (with the latter two
|
|
12
|
-
* referring to specific features of clustering).
|
|
12
|
+
* referring to specific features of clustering). In Terraform, we use
|
|
13
13
|
* `vsphere.ComputeCluster` to differentiate host clusters from _datastore
|
|
14
14
|
* clusters_, which are clusters of datastores that can be used to distribute load
|
|
15
15
|
* and ensure fault tolerance via distribution of virtual machines. Datastore
|
|
16
|
-
* clusters can also be managed through
|
|
17
|
-
* `vsphere.DatastoreCluster` resource.
|
|
16
|
+
* clusters can also be managed through Terraform, via the
|
|
17
|
+
* [`vsphere.DatastoreCluster` resource][docs-r-vsphere-datastore-cluster].
|
|
18
|
+
*
|
|
19
|
+
* [docs-r-vsphere-datastore-cluster]: /docs/providers/vsphere/r/datastore_cluster.html
|
|
18
20
|
*
|
|
19
21
|
* The `vsphere.ComputeCluster` resource can be used to create and manage
|
|
20
22
|
* clusters of hosts allowing for resource control of compute resources, load
|
|
@@ -30,68 +32,112 @@ const utilities = require("./utilities");
|
|
|
30
32
|
* > **NOTE:** This resource requires vCenter and is not available on
|
|
31
33
|
* direct ESXi connections.
|
|
32
34
|
*
|
|
33
|
-
* ##
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
35
|
+
* ## Example Usage
|
|
36
|
+
*
|
|
37
|
+
* The following example sets up a cluster and enables DRS and vSphere HA with the
|
|
38
|
+
* default settings. The hosts have to exist already in vSphere and should not
|
|
39
|
+
* already be members of clusters - it's best to add these as standalone hosts
|
|
40
|
+
* before adding them to a cluster.
|
|
41
|
+
*
|
|
42
|
+
* Note that the following example assumes each host has been configured correctly
|
|
43
|
+
* according to the requirements of vSphere HA. For more information, click
|
|
44
|
+
* [here][ref-vsphere-ha-checklist].
|
|
45
|
+
*
|
|
46
|
+
* [ref-vsphere-ha-checklist]: https://techdocs.broadcom.com/us/en/vmware-cis/vsphere/vsphere/8-0/vsphere-availability.html
|
|
47
|
+
*
|
|
48
|
+
* ```typescript
|
|
49
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
50
|
+
* import * as std from "@pulumi/std";
|
|
51
|
+
* import * as vsphere from "@pulumi/vsphere";
|
|
52
|
+
*
|
|
53
|
+
* const config = new pulumi.Config();
|
|
54
|
+
* const datacenter = config.get("datacenter") || "dc-01";
|
|
55
|
+
* const hosts = config.getObject<any>("hosts") || [
|
|
56
|
+
* "esxi-01.example.com",
|
|
57
|
+
* "esxi-02.example.com",
|
|
58
|
+
* "esxi-03.example.com",
|
|
59
|
+
* ];
|
|
60
|
+
* const datacenterGetDatacenter = vsphere.getDatacenter({
|
|
61
|
+
* name: datacenter,
|
|
62
|
+
* });
|
|
63
|
+
* const host = .reduce((__obj, [__key, __value]) => ({ ...__obj, [__key]: vsphere.getHost({
|
|
64
|
+
* name: __value,
|
|
65
|
+
* datacenterId: _arg0_.id,
|
|
66
|
+
* }) }));
|
|
67
|
+
* const computeCluster = new vsphere.ComputeCluster("compute_cluster", {
|
|
68
|
+
* name: "pulumi-compute-cluster-test",
|
|
69
|
+
* datacenterId: datacenterGetDatacenter.then(datacenterGetDatacenter => datacenterGetDatacenter.id),
|
|
70
|
+
* hostSystemIds: Object.values(host).map(host => (host.id)),
|
|
71
|
+
* drsEnabled: true,
|
|
72
|
+
* drsAutomationLevel: "fullyAutomated",
|
|
73
|
+
* haEnabled: true,
|
|
74
|
+
* });
|
|
75
|
+
* ```
|
|
62
76
|
*
|
|
63
|
-
*
|
|
77
|
+
* ## vSphere Version Requirements
|
|
64
78
|
*
|
|
65
|
-
* resource
|
|
79
|
+
* Some settings in the `vsphere.ComputeCluster` resource may require a
|
|
80
|
+
* specific version of vSphere.
|
|
66
81
|
*
|
|
67
|
-
*
|
|
82
|
+
* ### Settings that Require vSphere 7.0 or higher
|
|
68
83
|
*
|
|
69
|
-
*
|
|
84
|
+
* These settings require vSphere 7.0 or higher:
|
|
70
85
|
*
|
|
71
|
-
*
|
|
86
|
+
* * `drsScaleDescendantsShares`
|
|
72
87
|
*
|
|
73
|
-
*
|
|
88
|
+
* ### Settings that Require vSphere 8.0 or higher
|
|
74
89
|
*
|
|
75
|
-
*
|
|
90
|
+
* These settings require vSphere 8.0 or higher:
|
|
76
91
|
*
|
|
77
|
-
*
|
|
92
|
+
* * `vsanEsaEnabled`
|
|
78
93
|
*
|
|
79
|
-
*
|
|
94
|
+
* ## Import
|
|
80
95
|
*
|
|
81
|
-
*
|
|
96
|
+
* An existing cluster can be imported into this resource via the
|
|
97
|
+
* path to the cluster, via the following command:
|
|
82
98
|
*
|
|
83
|
-
*
|
|
99
|
+
* [docs-import]: https://developer.hashicorp.com/terraform/cli/import
|
|
84
100
|
*
|
|
85
|
-
*
|
|
101
|
+
* ```typescript
|
|
102
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
103
|
+
* import * as vsphere from "@pulumi/vsphere";
|
|
104
|
+
*
|
|
105
|
+
* const config = new pulumi.Config();
|
|
106
|
+
* const datacenter = config.get("datacenter") || "dc-01";
|
|
107
|
+
* const datacenterGetDatacenter = vsphere.getDatacenter({
|
|
108
|
+
* name: datacenter,
|
|
109
|
+
* });
|
|
110
|
+
* const computeCluster = new vsphere.ComputeCluster("compute_cluster", {
|
|
111
|
+
* name: "cluster-01",
|
|
112
|
+
* datacenterId: datacenterGetDatacenter.then(datacenterGetDatacenter => datacenterGetDatacenter.id),
|
|
113
|
+
* });
|
|
114
|
+
* ```
|
|
86
115
|
*
|
|
87
|
-
*
|
|
116
|
+
* > **NOTE:** When you import a cluster, all managed settings are returned. Ensure all settings are set correctly in resource. For example:
|
|
117
|
+
*
|
|
118
|
+
* ```typescript
|
|
119
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
120
|
+
* import * as vsphere from "@pulumi/vsphere";
|
|
121
|
+
*
|
|
122
|
+
* const computeCluster = new vsphere.ComputeCluster("compute_cluster", {
|
|
123
|
+
* name: "cluster-01",
|
|
124
|
+
* datacenterId: datacenter.id,
|
|
125
|
+
* vsanEnabled: true,
|
|
126
|
+
* vsanPerformanceEnabled: true,
|
|
127
|
+
* hostSystemIds: .map(host => (host.id)),
|
|
128
|
+
* dpmAutomationLevel: "automated",
|
|
129
|
+
* drsAutomationLevel: "fullyAutomated",
|
|
130
|
+
* drsEnabled: true,
|
|
131
|
+
* haDatastoreApdResponse: "restartConservative",
|
|
132
|
+
* haDatastorePdlResponse: "restartAggressive",
|
|
133
|
+
* });
|
|
134
|
+
* ```
|
|
88
135
|
*
|
|
89
136
|
* ```sh
|
|
90
137
|
* $ pulumi import vsphere:index/computeCluster:ComputeCluster compute_cluster /dc-01/host/cluster-01
|
|
91
138
|
* ```
|
|
92
139
|
*
|
|
93
140
|
* The above would import the cluster named `cluster-01` that is located in
|
|
94
|
-
*
|
|
95
141
|
* the `dc-01` datacenter.
|
|
96
142
|
*/
|
|
97
143
|
class ComputeCluster extends pulumi.CustomResource {
|
package/computeCluster.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computeCluster.js","sourceRoot":"","sources":["../computeCluster.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AAGzC,yCAAyC;AAEzC
|
|
1
|
+
{"version":3,"file":"computeCluster.js","sourceRoot":"","sources":["../computeCluster.ts"],"names":[],"mappings":"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"}
|