@pulumi/spotinst 3.76.0-alpha.1713904914 → 3.76.0
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/azure/index.d.ts +0 -3
- package/azure/index.js +1 -6
- package/azure/index.js.map +1 -1
- package/azure/oceanNp.d.ts +233 -0
- package/azure/oceanNp.js +26 -0
- package/azure/oceanNp.js.map +1 -1
- package/azure/oceanNpVirtualNodeGroup.d.ts +265 -0
- package/azure/oceanNpVirtualNodeGroup.js +85 -0
- package/azure/oceanNpVirtualNodeGroup.js.map +1 -1
- package/package.json +1 -1
- package/types/input.d.ts +153 -145
- package/types/output.d.ts +153 -145
- package/azure/elastigroup.d.ts +0 -269
- package/azure/elastigroup.js +0 -202
- package/azure/elastigroup.js.map +0 -1
package/azure/index.d.ts
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
export { ElastigroupArgs, ElastigroupState } from "./elastigroup";
|
|
2
|
-
export type Elastigroup = import("./elastigroup").Elastigroup;
|
|
3
|
-
export declare const Elastigroup: typeof import("./elastigroup").Elastigroup;
|
|
4
1
|
export { OceanArgs, OceanState } from "./ocean";
|
|
5
2
|
export type Ocean = import("./ocean").Ocean;
|
|
6
3
|
export declare const Ocean: typeof import("./ocean").Ocean;
|
package/azure/index.js
CHANGED
|
@@ -2,11 +2,9 @@
|
|
|
2
2
|
// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
|
|
3
3
|
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
-
exports.OceanVirtualNodeGroup = exports.OceanNpVirtualNodeGroup = exports.OceanNp = exports.Ocean =
|
|
5
|
+
exports.OceanVirtualNodeGroup = exports.OceanNpVirtualNodeGroup = exports.OceanNp = exports.Ocean = void 0;
|
|
6
6
|
const pulumi = require("@pulumi/pulumi");
|
|
7
7
|
const utilities = require("../utilities");
|
|
8
|
-
exports.Elastigroup = null;
|
|
9
|
-
utilities.lazyLoad(exports, ["Elastigroup"], () => require("./elastigroup"));
|
|
10
8
|
exports.Ocean = null;
|
|
11
9
|
utilities.lazyLoad(exports, ["Ocean"], () => require("./ocean"));
|
|
12
10
|
exports.OceanNp = null;
|
|
@@ -19,8 +17,6 @@ const _module = {
|
|
|
19
17
|
version: utilities.getVersion(),
|
|
20
18
|
construct: (name, type, urn) => {
|
|
21
19
|
switch (type) {
|
|
22
|
-
case "spotinst:azure/elastigroup:Elastigroup":
|
|
23
|
-
return new exports.Elastigroup(name, undefined, { urn });
|
|
24
20
|
case "spotinst:azure/ocean:Ocean":
|
|
25
21
|
return new exports.Ocean(name, undefined, { urn });
|
|
26
22
|
case "spotinst:azure/oceanNp:OceanNp":
|
|
@@ -34,7 +30,6 @@ const _module = {
|
|
|
34
30
|
}
|
|
35
31
|
},
|
|
36
32
|
};
|
|
37
|
-
pulumi.runtime.registerResourceModule("spotinst", "azure/elastigroup", _module);
|
|
38
33
|
pulumi.runtime.registerResourceModule("spotinst", "azure/ocean", _module);
|
|
39
34
|
pulumi.runtime.registerResourceModule("spotinst", "azure/oceanNp", _module);
|
|
40
35
|
pulumi.runtime.registerResourceModule("spotinst", "azure/oceanNpVirtualNodeGroup", _module);
|
package/azure/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../azure/index.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;;AAEjF,yCAAyC;AACzC,0CAA0C;AAK7B,QAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../azure/index.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;;AAEjF,yCAAyC;AACzC,0CAA0C;AAK7B,QAAA,KAAK,GAAmC,IAAW,CAAC;AACjE,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;AAIpD,QAAA,OAAO,GAAuC,IAAW,CAAC;AACvE,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;AAIxD,QAAA,uBAAuB,GAAuE,IAAW,CAAC;AACvH,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,yBAAyB,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC,CAAC;AAIxF,QAAA,qBAAqB,GAAmE,IAAW,CAAC;AACjH,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,uBAAuB,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC,CAAC;AAGjG,MAAM,OAAO,GAAG;IACZ,OAAO,EAAE,SAAS,CAAC,UAAU,EAAE;IAC/B,SAAS,EAAE,CAAC,IAAY,EAAE,IAAY,EAAE,GAAW,EAAmB,EAAE;QACpE,QAAQ,IAAI,EAAE;YACV,KAAK,4BAA4B;gBAC7B,OAAO,IAAI,aAAK,CAAC,IAAI,EAAO,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;YACnD,KAAK,gCAAgC;gBACjC,OAAO,IAAI,eAAO,CAAC,IAAI,EAAO,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;YACrD,KAAK,gEAAgE;gBACjE,OAAO,IAAI,+BAAuB,CAAC,IAAI,EAAO,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;YACrE,KAAK,4DAA4D;gBAC7D,OAAO,IAAI,6BAAqB,CAAC,IAAI,EAAO,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;YACnE;gBACI,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;SACxD;IACL,CAAC;CACJ,CAAC;AACF,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,UAAU,EAAE,aAAa,EAAE,OAAO,CAAC,CAAA;AACzE,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,UAAU,EAAE,eAAe,EAAE,OAAO,CAAC,CAAA;AAC3E,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,UAAU,EAAE,+BAA+B,EAAE,OAAO,CAAC,CAAA;AAC3F,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,UAAU,EAAE,6BAA6B,EAAE,OAAO,CAAC,CAAA"}
|
package/azure/oceanNp.d.ts
CHANGED
|
@@ -1,6 +1,32 @@
|
|
|
1
1
|
import * as pulumi from "@pulumi/pulumi";
|
|
2
2
|
import * as inputs from "../types/input";
|
|
3
3
|
import * as outputs from "../types/output";
|
|
4
|
+
/**
|
|
5
|
+
* Manages a Spotinst Ocean AKS resource.
|
|
6
|
+
*
|
|
7
|
+
* ## Basic Ocean Cluster Creation Usage Example - using minimum configuration with only required parameters
|
|
8
|
+
*
|
|
9
|
+
* ```typescript
|
|
10
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
11
|
+
* import * as spotinst from "@pulumi/spotinst";
|
|
12
|
+
*
|
|
13
|
+
* const example = new spotinst.azure.OceanNp("example", {
|
|
14
|
+
* name: "test",
|
|
15
|
+
* aksRegion: "eastus",
|
|
16
|
+
* aksClusterName: "test-cluster",
|
|
17
|
+
* aksInfrastructureResourceGroupName: "MC_TestResourceGroup_test-cluster_eastus",
|
|
18
|
+
* aksResourceGroupName: "TestResourceGroup",
|
|
19
|
+
* controllerClusterId: "test-123124",
|
|
20
|
+
* availabilityZones: [
|
|
21
|
+
* "1",
|
|
22
|
+
* "2",
|
|
23
|
+
* "3",
|
|
24
|
+
* ],
|
|
25
|
+
* });
|
|
26
|
+
* ```
|
|
27
|
+
*
|
|
28
|
+
* ## Detailed Ocean Cluster Creation Usage Example - using all available parameters with sample values
|
|
29
|
+
*/
|
|
4
30
|
export declare class OceanNp extends pulumi.CustomResource {
|
|
5
31
|
/**
|
|
6
32
|
* Get an existing OceanNp resource's state with the given name, ID, and optional extra
|
|
@@ -21,34 +47,103 @@ export declare class OceanNp extends pulumi.CustomResource {
|
|
|
21
47
|
readonly aksInfrastructureResourceGroupName: pulumi.Output<string>;
|
|
22
48
|
readonly aksRegion: pulumi.Output<string>;
|
|
23
49
|
readonly aksResourceGroupName: pulumi.Output<string>;
|
|
50
|
+
/**
|
|
51
|
+
* The Ocean Kubernetes Autoscaler object.
|
|
52
|
+
*/
|
|
24
53
|
readonly autoscaler: pulumi.Output<outputs.azure.OceanNpAutoscaler | undefined>;
|
|
54
|
+
/**
|
|
55
|
+
* An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG.
|
|
56
|
+
*/
|
|
25
57
|
readonly availabilityZones: pulumi.Output<string[]>;
|
|
58
|
+
/**
|
|
59
|
+
* Enter a unique Ocean cluster identifier. Cannot be updated. This needs to match with string that was used to install the controller in the cluster, typically clusterName + 8 digit string.
|
|
60
|
+
*/
|
|
26
61
|
readonly controllerClusterId: pulumi.Output<string>;
|
|
62
|
+
/**
|
|
63
|
+
* Enable node public IP.
|
|
64
|
+
*/
|
|
27
65
|
readonly enableNodePublicIp: pulumi.Output<boolean | undefined>;
|
|
66
|
+
/**
|
|
67
|
+
* If no spot VM markets are available, enable Ocean to launch regular (pay-as-you-go) nodes instead.
|
|
68
|
+
*/
|
|
28
69
|
readonly fallbackToOndemand: pulumi.Output<boolean | undefined>;
|
|
70
|
+
/**
|
|
71
|
+
* Filters for the VM sizes that can be launched from the virtual node group.
|
|
72
|
+
*/
|
|
29
73
|
readonly filters: pulumi.Output<outputs.azure.OceanNpFilters | undefined>;
|
|
74
|
+
/**
|
|
75
|
+
* Specify the custom headroom per VNG. Provide a list of headroom objects.
|
|
76
|
+
*/
|
|
30
77
|
readonly headrooms: pulumi.Output<outputs.azure.OceanNpHeadroom[] | undefined>;
|
|
78
|
+
/**
|
|
79
|
+
* The Ocean AKS Health object.
|
|
80
|
+
*/
|
|
31
81
|
readonly health: pulumi.Output<outputs.azure.OceanNpHealth | undefined>;
|
|
82
|
+
/**
|
|
83
|
+
* The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used.
|
|
84
|
+
*/
|
|
32
85
|
readonly kubernetesVersion: pulumi.Output<string | undefined>;
|
|
86
|
+
/**
|
|
87
|
+
* An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels).
|
|
88
|
+
*/
|
|
33
89
|
readonly labels: pulumi.Output<{
|
|
34
90
|
[key: string]: any;
|
|
35
91
|
} | undefined>;
|
|
92
|
+
/**
|
|
93
|
+
* Maximum node count limit.
|
|
94
|
+
*/
|
|
36
95
|
readonly maxCount: pulumi.Output<number | undefined>;
|
|
96
|
+
/**
|
|
97
|
+
* The maximum number of pods per node in the node pools.
|
|
98
|
+
*/
|
|
37
99
|
readonly maxPodsPerNode: pulumi.Output<number | undefined>;
|
|
100
|
+
/**
|
|
101
|
+
* Minimum node count limit.
|
|
102
|
+
*/
|
|
38
103
|
readonly minCount: pulumi.Output<number | undefined>;
|
|
104
|
+
/**
|
|
105
|
+
* Add a name for the Ocean cluster.
|
|
106
|
+
*/
|
|
39
107
|
readonly name: pulumi.Output<string>;
|
|
108
|
+
/**
|
|
109
|
+
* The size of the OS disk in GB.
|
|
110
|
+
*/
|
|
40
111
|
readonly osDiskSizeGb: pulumi.Output<number | undefined>;
|
|
112
|
+
/**
|
|
113
|
+
* The type of the OS disk.
|
|
114
|
+
*/
|
|
41
115
|
readonly osDiskType: pulumi.Output<string | undefined>;
|
|
116
|
+
/**
|
|
117
|
+
* The OS SKU of the OS type. Must correlate with the os type.
|
|
118
|
+
*/
|
|
42
119
|
readonly osSku: pulumi.Output<string | undefined>;
|
|
120
|
+
/**
|
|
121
|
+
* The OS type of the OS disk. Can't be modified once set.
|
|
122
|
+
*/
|
|
43
123
|
readonly osType: pulumi.Output<string | undefined>;
|
|
124
|
+
/**
|
|
125
|
+
* The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin).
|
|
126
|
+
*/
|
|
44
127
|
readonly podSubnetIds: pulumi.Output<string[] | undefined>;
|
|
128
|
+
/**
|
|
129
|
+
* An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state.
|
|
130
|
+
*/
|
|
45
131
|
readonly scheduling: pulumi.Output<outputs.azure.OceanNpScheduling | undefined>;
|
|
132
|
+
/**
|
|
133
|
+
* Percentage of spot VMs to maintain.
|
|
134
|
+
*/
|
|
46
135
|
readonly spotPercentage: pulumi.Output<number | undefined>;
|
|
47
136
|
readonly tags: pulumi.Output<{
|
|
48
137
|
[key: string]: any;
|
|
49
138
|
} | undefined>;
|
|
139
|
+
/**
|
|
140
|
+
* Add taints to a virtual node group. Only custom user taints are allowed, and not [Kubernetes well-known taints](https://kubernetes.io/docs/reference/labels-annotations-taints/) or Azure AKS [ScaleSetPrioirty (Spot VM) taint](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool). For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To [schedule a pod to run on Spot node](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool#schedule-a-pod-to-run-on-the-spot-node), add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean.
|
|
141
|
+
*/
|
|
50
142
|
readonly taints: pulumi.Output<outputs.azure.OceanNpTaint[] | undefined>;
|
|
51
143
|
readonly updatePolicy: pulumi.Output<outputs.azure.OceanNpUpdatePolicy | undefined>;
|
|
144
|
+
/**
|
|
145
|
+
* The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin).
|
|
146
|
+
*/
|
|
52
147
|
readonly vnetSubnetIds: pulumi.Output<string[] | undefined>;
|
|
53
148
|
/**
|
|
54
149
|
* Create a OceanNp resource with the given unique name, arguments, and options.
|
|
@@ -67,34 +162,103 @@ export interface OceanNpState {
|
|
|
67
162
|
aksInfrastructureResourceGroupName?: pulumi.Input<string>;
|
|
68
163
|
aksRegion?: pulumi.Input<string>;
|
|
69
164
|
aksResourceGroupName?: pulumi.Input<string>;
|
|
165
|
+
/**
|
|
166
|
+
* The Ocean Kubernetes Autoscaler object.
|
|
167
|
+
*/
|
|
70
168
|
autoscaler?: pulumi.Input<inputs.azure.OceanNpAutoscaler>;
|
|
169
|
+
/**
|
|
170
|
+
* An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG.
|
|
171
|
+
*/
|
|
71
172
|
availabilityZones?: pulumi.Input<pulumi.Input<string>[]>;
|
|
173
|
+
/**
|
|
174
|
+
* Enter a unique Ocean cluster identifier. Cannot be updated. This needs to match with string that was used to install the controller in the cluster, typically clusterName + 8 digit string.
|
|
175
|
+
*/
|
|
72
176
|
controllerClusterId?: pulumi.Input<string>;
|
|
177
|
+
/**
|
|
178
|
+
* Enable node public IP.
|
|
179
|
+
*/
|
|
73
180
|
enableNodePublicIp?: pulumi.Input<boolean>;
|
|
181
|
+
/**
|
|
182
|
+
* If no spot VM markets are available, enable Ocean to launch regular (pay-as-you-go) nodes instead.
|
|
183
|
+
*/
|
|
74
184
|
fallbackToOndemand?: pulumi.Input<boolean>;
|
|
185
|
+
/**
|
|
186
|
+
* Filters for the VM sizes that can be launched from the virtual node group.
|
|
187
|
+
*/
|
|
75
188
|
filters?: pulumi.Input<inputs.azure.OceanNpFilters>;
|
|
189
|
+
/**
|
|
190
|
+
* Specify the custom headroom per VNG. Provide a list of headroom objects.
|
|
191
|
+
*/
|
|
76
192
|
headrooms?: pulumi.Input<pulumi.Input<inputs.azure.OceanNpHeadroom>[]>;
|
|
193
|
+
/**
|
|
194
|
+
* The Ocean AKS Health object.
|
|
195
|
+
*/
|
|
77
196
|
health?: pulumi.Input<inputs.azure.OceanNpHealth>;
|
|
197
|
+
/**
|
|
198
|
+
* The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used.
|
|
199
|
+
*/
|
|
78
200
|
kubernetesVersion?: pulumi.Input<string>;
|
|
201
|
+
/**
|
|
202
|
+
* An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels).
|
|
203
|
+
*/
|
|
79
204
|
labels?: pulumi.Input<{
|
|
80
205
|
[key: string]: any;
|
|
81
206
|
}>;
|
|
207
|
+
/**
|
|
208
|
+
* Maximum node count limit.
|
|
209
|
+
*/
|
|
82
210
|
maxCount?: pulumi.Input<number>;
|
|
211
|
+
/**
|
|
212
|
+
* The maximum number of pods per node in the node pools.
|
|
213
|
+
*/
|
|
83
214
|
maxPodsPerNode?: pulumi.Input<number>;
|
|
215
|
+
/**
|
|
216
|
+
* Minimum node count limit.
|
|
217
|
+
*/
|
|
84
218
|
minCount?: pulumi.Input<number>;
|
|
219
|
+
/**
|
|
220
|
+
* Add a name for the Ocean cluster.
|
|
221
|
+
*/
|
|
85
222
|
name?: pulumi.Input<string>;
|
|
223
|
+
/**
|
|
224
|
+
* The size of the OS disk in GB.
|
|
225
|
+
*/
|
|
86
226
|
osDiskSizeGb?: pulumi.Input<number>;
|
|
227
|
+
/**
|
|
228
|
+
* The type of the OS disk.
|
|
229
|
+
*/
|
|
87
230
|
osDiskType?: pulumi.Input<string>;
|
|
231
|
+
/**
|
|
232
|
+
* The OS SKU of the OS type. Must correlate with the os type.
|
|
233
|
+
*/
|
|
88
234
|
osSku?: pulumi.Input<string>;
|
|
235
|
+
/**
|
|
236
|
+
* The OS type of the OS disk. Can't be modified once set.
|
|
237
|
+
*/
|
|
89
238
|
osType?: pulumi.Input<string>;
|
|
239
|
+
/**
|
|
240
|
+
* The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin).
|
|
241
|
+
*/
|
|
90
242
|
podSubnetIds?: pulumi.Input<pulumi.Input<string>[]>;
|
|
243
|
+
/**
|
|
244
|
+
* An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state.
|
|
245
|
+
*/
|
|
91
246
|
scheduling?: pulumi.Input<inputs.azure.OceanNpScheduling>;
|
|
247
|
+
/**
|
|
248
|
+
* Percentage of spot VMs to maintain.
|
|
249
|
+
*/
|
|
92
250
|
spotPercentage?: pulumi.Input<number>;
|
|
93
251
|
tags?: pulumi.Input<{
|
|
94
252
|
[key: string]: any;
|
|
95
253
|
}>;
|
|
254
|
+
/**
|
|
255
|
+
* Add taints to a virtual node group. Only custom user taints are allowed, and not [Kubernetes well-known taints](https://kubernetes.io/docs/reference/labels-annotations-taints/) or Azure AKS [ScaleSetPrioirty (Spot VM) taint](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool). For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To [schedule a pod to run on Spot node](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool#schedule-a-pod-to-run-on-the-spot-node), add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean.
|
|
256
|
+
*/
|
|
96
257
|
taints?: pulumi.Input<pulumi.Input<inputs.azure.OceanNpTaint>[]>;
|
|
97
258
|
updatePolicy?: pulumi.Input<inputs.azure.OceanNpUpdatePolicy>;
|
|
259
|
+
/**
|
|
260
|
+
* The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin).
|
|
261
|
+
*/
|
|
98
262
|
vnetSubnetIds?: pulumi.Input<pulumi.Input<string>[]>;
|
|
99
263
|
}
|
|
100
264
|
/**
|
|
@@ -105,33 +269,102 @@ export interface OceanNpArgs {
|
|
|
105
269
|
aksInfrastructureResourceGroupName: pulumi.Input<string>;
|
|
106
270
|
aksRegion: pulumi.Input<string>;
|
|
107
271
|
aksResourceGroupName: pulumi.Input<string>;
|
|
272
|
+
/**
|
|
273
|
+
* The Ocean Kubernetes Autoscaler object.
|
|
274
|
+
*/
|
|
108
275
|
autoscaler?: pulumi.Input<inputs.azure.OceanNpAutoscaler>;
|
|
276
|
+
/**
|
|
277
|
+
* An Array holding Availability Zones, this configures the availability zones the Ocean may launch instances in per VNG.
|
|
278
|
+
*/
|
|
109
279
|
availabilityZones: pulumi.Input<pulumi.Input<string>[]>;
|
|
280
|
+
/**
|
|
281
|
+
* Enter a unique Ocean cluster identifier. Cannot be updated. This needs to match with string that was used to install the controller in the cluster, typically clusterName + 8 digit string.
|
|
282
|
+
*/
|
|
110
283
|
controllerClusterId: pulumi.Input<string>;
|
|
284
|
+
/**
|
|
285
|
+
* Enable node public IP.
|
|
286
|
+
*/
|
|
111
287
|
enableNodePublicIp?: pulumi.Input<boolean>;
|
|
288
|
+
/**
|
|
289
|
+
* If no spot VM markets are available, enable Ocean to launch regular (pay-as-you-go) nodes instead.
|
|
290
|
+
*/
|
|
112
291
|
fallbackToOndemand?: pulumi.Input<boolean>;
|
|
292
|
+
/**
|
|
293
|
+
* Filters for the VM sizes that can be launched from the virtual node group.
|
|
294
|
+
*/
|
|
113
295
|
filters?: pulumi.Input<inputs.azure.OceanNpFilters>;
|
|
296
|
+
/**
|
|
297
|
+
* Specify the custom headroom per VNG. Provide a list of headroom objects.
|
|
298
|
+
*/
|
|
114
299
|
headrooms?: pulumi.Input<pulumi.Input<inputs.azure.OceanNpHeadroom>[]>;
|
|
300
|
+
/**
|
|
301
|
+
* The Ocean AKS Health object.
|
|
302
|
+
*/
|
|
115
303
|
health?: pulumi.Input<inputs.azure.OceanNpHealth>;
|
|
304
|
+
/**
|
|
305
|
+
* The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used.
|
|
306
|
+
*/
|
|
116
307
|
kubernetesVersion?: pulumi.Input<string>;
|
|
308
|
+
/**
|
|
309
|
+
* An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels).
|
|
310
|
+
*/
|
|
117
311
|
labels?: pulumi.Input<{
|
|
118
312
|
[key: string]: any;
|
|
119
313
|
}>;
|
|
314
|
+
/**
|
|
315
|
+
* Maximum node count limit.
|
|
316
|
+
*/
|
|
120
317
|
maxCount?: pulumi.Input<number>;
|
|
318
|
+
/**
|
|
319
|
+
* The maximum number of pods per node in the node pools.
|
|
320
|
+
*/
|
|
121
321
|
maxPodsPerNode?: pulumi.Input<number>;
|
|
322
|
+
/**
|
|
323
|
+
* Minimum node count limit.
|
|
324
|
+
*/
|
|
122
325
|
minCount?: pulumi.Input<number>;
|
|
326
|
+
/**
|
|
327
|
+
* Add a name for the Ocean cluster.
|
|
328
|
+
*/
|
|
123
329
|
name?: pulumi.Input<string>;
|
|
330
|
+
/**
|
|
331
|
+
* The size of the OS disk in GB.
|
|
332
|
+
*/
|
|
124
333
|
osDiskSizeGb?: pulumi.Input<number>;
|
|
334
|
+
/**
|
|
335
|
+
* The type of the OS disk.
|
|
336
|
+
*/
|
|
125
337
|
osDiskType?: pulumi.Input<string>;
|
|
338
|
+
/**
|
|
339
|
+
* The OS SKU of the OS type. Must correlate with the os type.
|
|
340
|
+
*/
|
|
126
341
|
osSku?: pulumi.Input<string>;
|
|
342
|
+
/**
|
|
343
|
+
* The OS type of the OS disk. Can't be modified once set.
|
|
344
|
+
*/
|
|
127
345
|
osType?: pulumi.Input<string>;
|
|
346
|
+
/**
|
|
347
|
+
* The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin).
|
|
348
|
+
*/
|
|
128
349
|
podSubnetIds?: pulumi.Input<pulumi.Input<string>[]>;
|
|
350
|
+
/**
|
|
351
|
+
* An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state.
|
|
352
|
+
*/
|
|
129
353
|
scheduling?: pulumi.Input<inputs.azure.OceanNpScheduling>;
|
|
354
|
+
/**
|
|
355
|
+
* Percentage of spot VMs to maintain.
|
|
356
|
+
*/
|
|
130
357
|
spotPercentage?: pulumi.Input<number>;
|
|
131
358
|
tags?: pulumi.Input<{
|
|
132
359
|
[key: string]: any;
|
|
133
360
|
}>;
|
|
361
|
+
/**
|
|
362
|
+
* Add taints to a virtual node group. Only custom user taints are allowed, and not [Kubernetes well-known taints](https://kubernetes.io/docs/reference/labels-annotations-taints/) or Azure AKS [ScaleSetPrioirty (Spot VM) taint](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool). For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To [schedule a pod to run on Spot node](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool#schedule-a-pod-to-run-on-the-spot-node), add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean.
|
|
363
|
+
*/
|
|
134
364
|
taints?: pulumi.Input<pulumi.Input<inputs.azure.OceanNpTaint>[]>;
|
|
135
365
|
updatePolicy?: pulumi.Input<inputs.azure.OceanNpUpdatePolicy>;
|
|
366
|
+
/**
|
|
367
|
+
* The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin).
|
|
368
|
+
*/
|
|
136
369
|
vnetSubnetIds?: pulumi.Input<pulumi.Input<string>[]>;
|
|
137
370
|
}
|
package/azure/oceanNp.js
CHANGED
|
@@ -5,6 +5,32 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
5
5
|
exports.OceanNp = void 0;
|
|
6
6
|
const pulumi = require("@pulumi/pulumi");
|
|
7
7
|
const utilities = require("../utilities");
|
|
8
|
+
/**
|
|
9
|
+
* Manages a Spotinst Ocean AKS resource.
|
|
10
|
+
*
|
|
11
|
+
* ## Basic Ocean Cluster Creation Usage Example - using minimum configuration with only required parameters
|
|
12
|
+
*
|
|
13
|
+
* ```typescript
|
|
14
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
15
|
+
* import * as spotinst from "@pulumi/spotinst";
|
|
16
|
+
*
|
|
17
|
+
* const example = new spotinst.azure.OceanNp("example", {
|
|
18
|
+
* name: "test",
|
|
19
|
+
* aksRegion: "eastus",
|
|
20
|
+
* aksClusterName: "test-cluster",
|
|
21
|
+
* aksInfrastructureResourceGroupName: "MC_TestResourceGroup_test-cluster_eastus",
|
|
22
|
+
* aksResourceGroupName: "TestResourceGroup",
|
|
23
|
+
* controllerClusterId: "test-123124",
|
|
24
|
+
* availabilityZones: [
|
|
25
|
+
* "1",
|
|
26
|
+
* "2",
|
|
27
|
+
* "3",
|
|
28
|
+
* ],
|
|
29
|
+
* });
|
|
30
|
+
* ```
|
|
31
|
+
*
|
|
32
|
+
* ## Detailed Ocean Cluster Creation Usage Example - using all available parameters with sample values
|
|
33
|
+
*/
|
|
8
34
|
class OceanNp extends pulumi.CustomResource {
|
|
9
35
|
/**
|
|
10
36
|
* Get an existing OceanNp resource's state with the given name, ID, and optional extra
|
package/azure/oceanNp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oceanNp.js","sourceRoot":"","sources":["../../azure/oceanNp.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;;AAEjF,yCAAyC;AAGzC,0CAA0C;AAE1C,MAAa,OAAQ,SAAQ,MAAM,CAAC,cAAc;IAC9C;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAAoB,EAAE,IAAmC;QAClH,OAAO,IAAI,OAAO,CAAC,IAAI,EAAO,KAAK,kCAAO,IAAI,KAAE,EAAE,EAAE,EAAE,IAAG,CAAC;IAC9D,CAAC;IAKD;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,GAAQ;QAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;YACnC,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,OAAO,CAAC,YAAY,CAAC;IACxD,CAAC;
|
|
1
|
+
{"version":3,"file":"oceanNp.js","sourceRoot":"","sources":["../../azure/oceanNp.ts"],"names":[],"mappings":"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"}
|