@pulumiverse/scaleway 1.30.0 → 1.31.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/appleSiliconServer.d.ts +12 -0
- package/appleSiliconServer.js +2 -0
- package/appleSiliconServer.js.map +1 -1
- package/applesilicon/server.d.ts +12 -0
- package/applesilicon/server.js +2 -0
- package/applesilicon/server.js.map +1 -1
- package/autoscaling/index.d.ts +9 -0
- package/autoscaling/index.js +32 -0
- package/autoscaling/index.js.map +1 -0
- package/autoscaling/instanceGroup.d.ts +297 -0
- package/autoscaling/instanceGroup.js +217 -0
- package/autoscaling/instanceGroup.js.map +1 -0
- package/autoscaling/instancePolicy.d.ts +201 -0
- package/autoscaling/instancePolicy.js +135 -0
- package/autoscaling/instancePolicy.js.map +1 -0
- package/autoscaling/instanceTemplate.d.ts +260 -0
- package/autoscaling/instanceTemplate.js +124 -0
- package/autoscaling/instanceTemplate.js.map +1 -0
- package/edgeServicesCacheStage.d.ts +12 -0
- package/edgeServicesCacheStage.js +2 -0
- package/edgeServicesCacheStage.js.map +1 -1
- package/getCockpitSource.d.ts +45 -6
- package/getCockpitSource.js +32 -0
- package/getCockpitSource.js.map +1 -1
- package/getKubernetesNodePool.d.ts +1 -0
- package/getKubernetesNodePool.js.map +1 -1
- package/getVpc.d.ts +1 -0
- package/getVpc.js.map +1 -1
- package/getVpcPrivateNetwork.d.ts +1 -0
- package/getVpcPrivateNetwork.js.map +1 -1
- package/index.d.ts +2 -1
- package/index.js +4 -2
- package/index.js.map +1 -1
- package/kubernetes/getPool.d.ts +1 -0
- package/kubernetes/getPool.js.map +1 -1
- package/kubernetes/pool.d.ts +18 -0
- package/kubernetes/pool.js +2 -0
- package/kubernetes/pool.js.map +1 -1
- package/kubernetesNodePool.d.ts +18 -0
- package/kubernetesNodePool.js +2 -0
- package/kubernetesNodePool.js.map +1 -1
- package/loadbalancerAcl.d.ts +3 -3
- package/loadbalancers/acl.d.ts +3 -3
- package/network/getPrivateNetwork.d.ts +1 -0
- package/network/getPrivateNetwork.js.map +1 -1
- package/network/getVpc.d.ts +1 -0
- package/network/getVpc.js.map +1 -1
- package/network/privateNetwork.d.ts +12 -0
- package/network/privateNetwork.js +2 -0
- package/network/privateNetwork.js.map +1 -1
- package/network/vpc.d.ts +12 -0
- package/network/vpc.js +2 -0
- package/network/vpc.js.map +1 -1
- package/object/bucketAcl.d.ts +3 -2
- package/object/bucketAcl.js +3 -2
- package/object/bucketAcl.js.map +1 -1
- package/objectBucketAcl.d.ts +3 -2
- package/objectBucketAcl.js +3 -2
- package/objectBucketAcl.js.map +1 -1
- package/observability/getSource.d.ts +45 -6
- package/observability/getSource.js +32 -0
- package/observability/getSource.js.map +1 -1
- package/package.json +2 -2
- package/types/input.d.ts +142 -12
- package/types/output.d.ts +158 -12
- package/vpc.d.ts +12 -0
- package/vpc.js +2 -0
- package/vpc.js.map +1 -1
- package/vpcPrivateNetwork.d.ts +12 -0
- package/vpcPrivateNetwork.js +2 -0
- package/vpcPrivateNetwork.js.map +1 -1
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *** WARNING: this file was generated by pulumi-language-nodejs. ***
|
|
3
|
+
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.InstanceGroup = void 0;
|
|
6
|
+
const pulumi = require("@pulumi/pulumi");
|
|
7
|
+
const utilities = require("../utilities");
|
|
8
|
+
/**
|
|
9
|
+
* Books and manages Autoscaling Instance groups.
|
|
10
|
+
*
|
|
11
|
+
* ## Example Usage
|
|
12
|
+
*
|
|
13
|
+
* ### Basic
|
|
14
|
+
*
|
|
15
|
+
* ```typescript
|
|
16
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
17
|
+
* import * as scaleway from "@pulumiverse/scaleway";
|
|
18
|
+
*
|
|
19
|
+
* const main = new scaleway.autoscaling.InstanceGroup("main", {
|
|
20
|
+
* name: "asg-group",
|
|
21
|
+
* templateId: mainScalewayAutoscalingInstanceTemplate.id,
|
|
22
|
+
* tags: [
|
|
23
|
+
* "terraform-test",
|
|
24
|
+
* "instance-group",
|
|
25
|
+
* ],
|
|
26
|
+
* capacities: [{
|
|
27
|
+
* maxReplicas: 5,
|
|
28
|
+
* minReplicas: 1,
|
|
29
|
+
* cooldownDelay: 300,
|
|
30
|
+
* }],
|
|
31
|
+
* loadBalancers: [{
|
|
32
|
+
* id: mainScalewayLb.id,
|
|
33
|
+
* backendIds: [mainScalewayLbBackend.id],
|
|
34
|
+
* privateNetworkId: mainScalewayVpcPrivateNetwork.id,
|
|
35
|
+
* }],
|
|
36
|
+
* });
|
|
37
|
+
* ```
|
|
38
|
+
*
|
|
39
|
+
* ### With template and policies
|
|
40
|
+
*
|
|
41
|
+
* ```typescript
|
|
42
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
43
|
+
* import * as scaleway from "@pulumiverse/scaleway";
|
|
44
|
+
*
|
|
45
|
+
* const main = new scaleway.network.Vpc("main", {name: "TestAccAutoscalingVPC"});
|
|
46
|
+
* const mainPrivateNetwork = new scaleway.network.PrivateNetwork("main", {
|
|
47
|
+
* name: "TestAccAutoscalingVPC",
|
|
48
|
+
* vpcId: main.id,
|
|
49
|
+
* });
|
|
50
|
+
* const mainVolume = new scaleway.block.Volume("main", {
|
|
51
|
+
* iops: 5000,
|
|
52
|
+
* sizeInGb: 10,
|
|
53
|
+
* });
|
|
54
|
+
* const mainSnapshot = new scaleway.block.Snapshot("main", {
|
|
55
|
+
* name: "test-ds-block-snapshot-basic",
|
|
56
|
+
* volumeId: mainVolume.id,
|
|
57
|
+
* });
|
|
58
|
+
* const mainIp = new scaleway.loadbalancers.Ip("main", {});
|
|
59
|
+
* const mainLoadBalancer = new scaleway.loadbalancers.LoadBalancer("main", {
|
|
60
|
+
* ipId: mainIp.id,
|
|
61
|
+
* name: "test-lb",
|
|
62
|
+
* type: "lb-s",
|
|
63
|
+
* privateNetworks: [{
|
|
64
|
+
* privateNetworkId: mainPrivateNetwork.id,
|
|
65
|
+
* }],
|
|
66
|
+
* });
|
|
67
|
+
* const mainBackend = new scaleway.loadbalancers.Backend("main", {
|
|
68
|
+
* lbId: mainLoadBalancer.id,
|
|
69
|
+
* forwardProtocol: "tcp",
|
|
70
|
+
* forwardPort: 80,
|
|
71
|
+
* proxyProtocol: "none",
|
|
72
|
+
* });
|
|
73
|
+
* const mainInstanceTemplate = new scaleway.autoscaling.InstanceTemplate("main", {
|
|
74
|
+
* name: "autoscaling-instance-template-basic",
|
|
75
|
+
* commercialType: "PLAY2-MICRO",
|
|
76
|
+
* tags: [
|
|
77
|
+
* "terraform-test",
|
|
78
|
+
* "basic",
|
|
79
|
+
* ],
|
|
80
|
+
* volumes: [{
|
|
81
|
+
* name: "as-volume",
|
|
82
|
+
* volumeType: "sbs",
|
|
83
|
+
* boot: true,
|
|
84
|
+
* fromSnapshot: {
|
|
85
|
+
* snapshotId: mainSnapshot.id,
|
|
86
|
+
* },
|
|
87
|
+
* perfIops: 5000,
|
|
88
|
+
* }],
|
|
89
|
+
* publicIpsV4Count: 1,
|
|
90
|
+
* privateNetworkIds: [mainPrivateNetwork.id],
|
|
91
|
+
* });
|
|
92
|
+
* const mainInstanceGroup = new scaleway.autoscaling.InstanceGroup("main", {
|
|
93
|
+
* name: "autoscaling-instance-group-basic",
|
|
94
|
+
* templateId: mainInstanceTemplate.id,
|
|
95
|
+
* tags: [
|
|
96
|
+
* "terraform-test",
|
|
97
|
+
* "instance-group",
|
|
98
|
+
* ],
|
|
99
|
+
* capacities: [{
|
|
100
|
+
* maxReplicas: 5,
|
|
101
|
+
* minReplicas: 1,
|
|
102
|
+
* cooldownDelay: 300,
|
|
103
|
+
* }],
|
|
104
|
+
* loadBalancers: [{
|
|
105
|
+
* id: mainLoadBalancer.id,
|
|
106
|
+
* backendIds: [mainBackend.id],
|
|
107
|
+
* privateNetworkId: mainPrivateNetwork.id,
|
|
108
|
+
* }],
|
|
109
|
+
* deleteServersOnDestroy: true,
|
|
110
|
+
* });
|
|
111
|
+
* const up = new scaleway.autoscaling.InstancePolicy("up", {
|
|
112
|
+
* instanceGroupId: mainInstanceGroup.id,
|
|
113
|
+
* name: "scale-up-if-cpu-high",
|
|
114
|
+
* action: "scale_up",
|
|
115
|
+
* type: "flat_count",
|
|
116
|
+
* value: 1,
|
|
117
|
+
* priority: 1,
|
|
118
|
+
* metrics: [{
|
|
119
|
+
* name: "cpu scale up",
|
|
120
|
+
* managedMetric: "managed_metric_instance_cpu",
|
|
121
|
+
* operator: "operator_greater_than",
|
|
122
|
+
* aggregate: "aggregate_average",
|
|
123
|
+
* samplingRangeMin: 5,
|
|
124
|
+
* threshold: 70,
|
|
125
|
+
* }],
|
|
126
|
+
* });
|
|
127
|
+
* const down = new scaleway.autoscaling.InstancePolicy("down", {
|
|
128
|
+
* instanceGroupId: mainInstanceGroup.id,
|
|
129
|
+
* name: "scale-down-if-cpu-low",
|
|
130
|
+
* action: "scale_down",
|
|
131
|
+
* type: "flat_count",
|
|
132
|
+
* value: 1,
|
|
133
|
+
* priority: 2,
|
|
134
|
+
* metrics: [{
|
|
135
|
+
* name: "cpu scale down",
|
|
136
|
+
* managedMetric: "managed_metric_instance_cpu",
|
|
137
|
+
* operator: "operator_less_than",
|
|
138
|
+
* aggregate: "aggregate_average",
|
|
139
|
+
* samplingRangeMin: 5,
|
|
140
|
+
* threshold: 40,
|
|
141
|
+
* }],
|
|
142
|
+
* });
|
|
143
|
+
* ```
|
|
144
|
+
*
|
|
145
|
+
* ## Import
|
|
146
|
+
*
|
|
147
|
+
* Autoscaling Instance groups can be imported using `{zone}/{id}`, e.g.
|
|
148
|
+
*
|
|
149
|
+
* bash
|
|
150
|
+
*
|
|
151
|
+
* ```sh
|
|
152
|
+
* $ pulumi import scaleway:autoscaling/instanceGroup:InstanceGroup main fr-par-1/11111111-1111-1111-1111-111111111111
|
|
153
|
+
* ```
|
|
154
|
+
*/
|
|
155
|
+
class InstanceGroup extends pulumi.CustomResource {
|
|
156
|
+
/**
|
|
157
|
+
* Get an existing InstanceGroup resource's state with the given name, ID, and optional extra
|
|
158
|
+
* properties used to qualify the lookup.
|
|
159
|
+
*
|
|
160
|
+
* @param name The _unique_ name of the resulting resource.
|
|
161
|
+
* @param id The _unique_ provider ID of the resource to lookup.
|
|
162
|
+
* @param state Any extra arguments used during the lookup.
|
|
163
|
+
* @param opts Optional settings to control the behavior of the CustomResource.
|
|
164
|
+
*/
|
|
165
|
+
static get(name, id, state, opts) {
|
|
166
|
+
return new InstanceGroup(name, state, Object.assign(Object.assign({}, opts), { id: id }));
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Returns true if the given object is an instance of InstanceGroup. This is designed to work even
|
|
170
|
+
* when multiple copies of the Pulumi SDK have been loaded into the same process.
|
|
171
|
+
*/
|
|
172
|
+
static isInstance(obj) {
|
|
173
|
+
if (obj === undefined || obj === null) {
|
|
174
|
+
return false;
|
|
175
|
+
}
|
|
176
|
+
return obj['__pulumiType'] === InstanceGroup.__pulumiType;
|
|
177
|
+
}
|
|
178
|
+
constructor(name, argsOrState, opts) {
|
|
179
|
+
let resourceInputs = {};
|
|
180
|
+
opts = opts || {};
|
|
181
|
+
if (opts.id) {
|
|
182
|
+
const state = argsOrState;
|
|
183
|
+
resourceInputs["capacities"] = state ? state.capacities : undefined;
|
|
184
|
+
resourceInputs["createdAt"] = state ? state.createdAt : undefined;
|
|
185
|
+
resourceInputs["deleteServersOnDestroy"] = state ? state.deleteServersOnDestroy : undefined;
|
|
186
|
+
resourceInputs["loadBalancers"] = state ? state.loadBalancers : undefined;
|
|
187
|
+
resourceInputs["name"] = state ? state.name : undefined;
|
|
188
|
+
resourceInputs["projectId"] = state ? state.projectId : undefined;
|
|
189
|
+
resourceInputs["tags"] = state ? state.tags : undefined;
|
|
190
|
+
resourceInputs["templateId"] = state ? state.templateId : undefined;
|
|
191
|
+
resourceInputs["updatedAt"] = state ? state.updatedAt : undefined;
|
|
192
|
+
resourceInputs["zone"] = state ? state.zone : undefined;
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
const args = argsOrState;
|
|
196
|
+
if ((!args || args.templateId === undefined) && !opts.urn) {
|
|
197
|
+
throw new Error("Missing required property 'templateId'");
|
|
198
|
+
}
|
|
199
|
+
resourceInputs["capacities"] = args ? args.capacities : undefined;
|
|
200
|
+
resourceInputs["deleteServersOnDestroy"] = args ? args.deleteServersOnDestroy : undefined;
|
|
201
|
+
resourceInputs["loadBalancers"] = args ? args.loadBalancers : undefined;
|
|
202
|
+
resourceInputs["name"] = args ? args.name : undefined;
|
|
203
|
+
resourceInputs["projectId"] = args ? args.projectId : undefined;
|
|
204
|
+
resourceInputs["tags"] = args ? args.tags : undefined;
|
|
205
|
+
resourceInputs["templateId"] = args ? args.templateId : undefined;
|
|
206
|
+
resourceInputs["zone"] = args ? args.zone : undefined;
|
|
207
|
+
resourceInputs["createdAt"] = undefined /*out*/;
|
|
208
|
+
resourceInputs["updatedAt"] = undefined /*out*/;
|
|
209
|
+
}
|
|
210
|
+
opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
|
|
211
|
+
super(InstanceGroup.__pulumiType, name, resourceInputs, opts);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
exports.InstanceGroup = InstanceGroup;
|
|
215
|
+
/** @internal */
|
|
216
|
+
InstanceGroup.__pulumiType = 'scaleway:autoscaling/instanceGroup:InstanceGroup';
|
|
217
|
+
//# sourceMappingURL=instanceGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instanceGroup.js","sourceRoot":"","sources":["../../autoscaling/instanceGroup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import * as pulumi from "@pulumi/pulumi";
|
|
2
|
+
import * as inputs from "../types/input";
|
|
3
|
+
import * as outputs from "../types/output";
|
|
4
|
+
/**
|
|
5
|
+
* Books and manages Autoscaling Instance policies.
|
|
6
|
+
*
|
|
7
|
+
* ## Example Usage
|
|
8
|
+
*
|
|
9
|
+
* ### Basic
|
|
10
|
+
*
|
|
11
|
+
* ```typescript
|
|
12
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
13
|
+
* import * as scaleway from "@pulumiverse/scaleway";
|
|
14
|
+
*
|
|
15
|
+
* const up = new scaleway.autoscaling.InstancePolicy("up", {
|
|
16
|
+
* instanceGroupId: main.id,
|
|
17
|
+
* name: "scale-up-if-cpu-high",
|
|
18
|
+
* action: "scale_up",
|
|
19
|
+
* type: "flat_count",
|
|
20
|
+
* value: 1,
|
|
21
|
+
* priority: 1,
|
|
22
|
+
* metrics: [{
|
|
23
|
+
* name: "cpu scale up",
|
|
24
|
+
* managedMetric: "managed_metric_instance_cpu",
|
|
25
|
+
* operator: "operator_greater_than",
|
|
26
|
+
* aggregate: "aggregate_average",
|
|
27
|
+
* samplingRangeMin: 5,
|
|
28
|
+
* threshold: 70,
|
|
29
|
+
* }],
|
|
30
|
+
* });
|
|
31
|
+
* const down = new scaleway.autoscaling.InstancePolicy("down", {
|
|
32
|
+
* instanceGroupId: main.id,
|
|
33
|
+
* name: "scale-down-if-cpu-low",
|
|
34
|
+
* action: "scale_down",
|
|
35
|
+
* type: "flat_count",
|
|
36
|
+
* value: 1,
|
|
37
|
+
* priority: 2,
|
|
38
|
+
* metrics: [{
|
|
39
|
+
* name: "cpu scale down",
|
|
40
|
+
* managedMetric: "managed_metric_instance_cpu",
|
|
41
|
+
* operator: "operator_less_than",
|
|
42
|
+
* aggregate: "aggregate_average",
|
|
43
|
+
* samplingRangeMin: 5,
|
|
44
|
+
* threshold: 40,
|
|
45
|
+
* }],
|
|
46
|
+
* });
|
|
47
|
+
* ```
|
|
48
|
+
*
|
|
49
|
+
* ## Import
|
|
50
|
+
*
|
|
51
|
+
* Autoscaling instance policies can be imported using `{zone}/{id}`, e.g.
|
|
52
|
+
*
|
|
53
|
+
* bash
|
|
54
|
+
*
|
|
55
|
+
* ```sh
|
|
56
|
+
* $ pulumi import scaleway:autoscaling/instancePolicy:InstancePolicy main fr-par-1/11111111-1111-1111-1111-111111111111
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
export declare class InstancePolicy extends pulumi.CustomResource {
|
|
60
|
+
/**
|
|
61
|
+
* Get an existing InstancePolicy resource's state with the given name, ID, and optional extra
|
|
62
|
+
* properties used to qualify the lookup.
|
|
63
|
+
*
|
|
64
|
+
* @param name The _unique_ name of the resulting resource.
|
|
65
|
+
* @param id The _unique_ provider ID of the resource to lookup.
|
|
66
|
+
* @param state Any extra arguments used during the lookup.
|
|
67
|
+
* @param opts Optional settings to control the behavior of the CustomResource.
|
|
68
|
+
*/
|
|
69
|
+
static get(name: string, id: pulumi.Input<pulumi.ID>, state?: InstancePolicyState, opts?: pulumi.CustomResourceOptions): InstancePolicy;
|
|
70
|
+
/**
|
|
71
|
+
* Returns true if the given object is an instance of InstancePolicy. This is designed to work even
|
|
72
|
+
* when multiple copies of the Pulumi SDK have been loaded into the same process.
|
|
73
|
+
*/
|
|
74
|
+
static isInstance(obj: any): obj is InstancePolicy;
|
|
75
|
+
/**
|
|
76
|
+
* The action to execute when the metric-based condition is met.
|
|
77
|
+
*/
|
|
78
|
+
readonly action: pulumi.Output<string>;
|
|
79
|
+
/**
|
|
80
|
+
* The ID of the Instance group related to this policy.
|
|
81
|
+
*/
|
|
82
|
+
readonly instanceGroupId: pulumi.Output<string>;
|
|
83
|
+
/**
|
|
84
|
+
* Cockpit metric to use when determining whether to trigger a scale up/down action.
|
|
85
|
+
*/
|
|
86
|
+
readonly metrics: pulumi.Output<outputs.autoscaling.InstancePolicyMetric[]>;
|
|
87
|
+
/**
|
|
88
|
+
* The Instance policy name.
|
|
89
|
+
*/
|
|
90
|
+
readonly name: pulumi.Output<string>;
|
|
91
|
+
/**
|
|
92
|
+
* The priority of this policy compared to all other scaling policies. This determines the processing order. The lower the number, the higher the priority.
|
|
93
|
+
*/
|
|
94
|
+
readonly priority: pulumi.Output<number>;
|
|
95
|
+
/**
|
|
96
|
+
* `projectId`) The ID of the Project the Instance policy is associated with.
|
|
97
|
+
*/
|
|
98
|
+
readonly projectId: pulumi.Output<string>;
|
|
99
|
+
/**
|
|
100
|
+
* How to use the number defined in `value` when determining by how many Instances to scale up/down.
|
|
101
|
+
*/
|
|
102
|
+
readonly type: pulumi.Output<string>;
|
|
103
|
+
/**
|
|
104
|
+
* The value representing the magnitude of the scaling action to take for the Instance group. Depending on the `type` parameter, this number could represent a total number of Instances in the group, a number of Instances to add, or a percentage to scale the group by.
|
|
105
|
+
*/
|
|
106
|
+
readonly value: pulumi.Output<number>;
|
|
107
|
+
/**
|
|
108
|
+
* `zone`) The zone in which the Instance policy exists.
|
|
109
|
+
*/
|
|
110
|
+
readonly zone: pulumi.Output<string>;
|
|
111
|
+
/**
|
|
112
|
+
* Create a InstancePolicy resource with the given unique name, arguments, and options.
|
|
113
|
+
*
|
|
114
|
+
* @param name The _unique_ name of the resource.
|
|
115
|
+
* @param args The arguments to use to populate this resource's properties.
|
|
116
|
+
* @param opts A bag of options that control this resource's behavior.
|
|
117
|
+
*/
|
|
118
|
+
constructor(name: string, args: InstancePolicyArgs, opts?: pulumi.CustomResourceOptions);
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Input properties used for looking up and filtering InstancePolicy resources.
|
|
122
|
+
*/
|
|
123
|
+
export interface InstancePolicyState {
|
|
124
|
+
/**
|
|
125
|
+
* The action to execute when the metric-based condition is met.
|
|
126
|
+
*/
|
|
127
|
+
action?: pulumi.Input<string>;
|
|
128
|
+
/**
|
|
129
|
+
* The ID of the Instance group related to this policy.
|
|
130
|
+
*/
|
|
131
|
+
instanceGroupId?: pulumi.Input<string>;
|
|
132
|
+
/**
|
|
133
|
+
* Cockpit metric to use when determining whether to trigger a scale up/down action.
|
|
134
|
+
*/
|
|
135
|
+
metrics?: pulumi.Input<pulumi.Input<inputs.autoscaling.InstancePolicyMetric>[]>;
|
|
136
|
+
/**
|
|
137
|
+
* The Instance policy name.
|
|
138
|
+
*/
|
|
139
|
+
name?: pulumi.Input<string>;
|
|
140
|
+
/**
|
|
141
|
+
* The priority of this policy compared to all other scaling policies. This determines the processing order. The lower the number, the higher the priority.
|
|
142
|
+
*/
|
|
143
|
+
priority?: pulumi.Input<number>;
|
|
144
|
+
/**
|
|
145
|
+
* `projectId`) The ID of the Project the Instance policy is associated with.
|
|
146
|
+
*/
|
|
147
|
+
projectId?: pulumi.Input<string>;
|
|
148
|
+
/**
|
|
149
|
+
* How to use the number defined in `value` when determining by how many Instances to scale up/down.
|
|
150
|
+
*/
|
|
151
|
+
type?: pulumi.Input<string>;
|
|
152
|
+
/**
|
|
153
|
+
* The value representing the magnitude of the scaling action to take for the Instance group. Depending on the `type` parameter, this number could represent a total number of Instances in the group, a number of Instances to add, or a percentage to scale the group by.
|
|
154
|
+
*/
|
|
155
|
+
value?: pulumi.Input<number>;
|
|
156
|
+
/**
|
|
157
|
+
* `zone`) The zone in which the Instance policy exists.
|
|
158
|
+
*/
|
|
159
|
+
zone?: pulumi.Input<string>;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* The set of arguments for constructing a InstancePolicy resource.
|
|
163
|
+
*/
|
|
164
|
+
export interface InstancePolicyArgs {
|
|
165
|
+
/**
|
|
166
|
+
* The action to execute when the metric-based condition is met.
|
|
167
|
+
*/
|
|
168
|
+
action: pulumi.Input<string>;
|
|
169
|
+
/**
|
|
170
|
+
* The ID of the Instance group related to this policy.
|
|
171
|
+
*/
|
|
172
|
+
instanceGroupId: pulumi.Input<string>;
|
|
173
|
+
/**
|
|
174
|
+
* Cockpit metric to use when determining whether to trigger a scale up/down action.
|
|
175
|
+
*/
|
|
176
|
+
metrics?: pulumi.Input<pulumi.Input<inputs.autoscaling.InstancePolicyMetric>[]>;
|
|
177
|
+
/**
|
|
178
|
+
* The Instance policy name.
|
|
179
|
+
*/
|
|
180
|
+
name?: pulumi.Input<string>;
|
|
181
|
+
/**
|
|
182
|
+
* The priority of this policy compared to all other scaling policies. This determines the processing order. The lower the number, the higher the priority.
|
|
183
|
+
*/
|
|
184
|
+
priority: pulumi.Input<number>;
|
|
185
|
+
/**
|
|
186
|
+
* `projectId`) The ID of the Project the Instance policy is associated with.
|
|
187
|
+
*/
|
|
188
|
+
projectId?: pulumi.Input<string>;
|
|
189
|
+
/**
|
|
190
|
+
* How to use the number defined in `value` when determining by how many Instances to scale up/down.
|
|
191
|
+
*/
|
|
192
|
+
type: pulumi.Input<string>;
|
|
193
|
+
/**
|
|
194
|
+
* The value representing the magnitude of the scaling action to take for the Instance group. Depending on the `type` parameter, this number could represent a total number of Instances in the group, a number of Instances to add, or a percentage to scale the group by.
|
|
195
|
+
*/
|
|
196
|
+
value: pulumi.Input<number>;
|
|
197
|
+
/**
|
|
198
|
+
* `zone`) The zone in which the Instance policy exists.
|
|
199
|
+
*/
|
|
200
|
+
zone?: pulumi.Input<string>;
|
|
201
|
+
}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *** WARNING: this file was generated by pulumi-language-nodejs. ***
|
|
3
|
+
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.InstancePolicy = void 0;
|
|
6
|
+
const pulumi = require("@pulumi/pulumi");
|
|
7
|
+
const utilities = require("../utilities");
|
|
8
|
+
/**
|
|
9
|
+
* Books and manages Autoscaling Instance policies.
|
|
10
|
+
*
|
|
11
|
+
* ## Example Usage
|
|
12
|
+
*
|
|
13
|
+
* ### Basic
|
|
14
|
+
*
|
|
15
|
+
* ```typescript
|
|
16
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
17
|
+
* import * as scaleway from "@pulumiverse/scaleway";
|
|
18
|
+
*
|
|
19
|
+
* const up = new scaleway.autoscaling.InstancePolicy("up", {
|
|
20
|
+
* instanceGroupId: main.id,
|
|
21
|
+
* name: "scale-up-if-cpu-high",
|
|
22
|
+
* action: "scale_up",
|
|
23
|
+
* type: "flat_count",
|
|
24
|
+
* value: 1,
|
|
25
|
+
* priority: 1,
|
|
26
|
+
* metrics: [{
|
|
27
|
+
* name: "cpu scale up",
|
|
28
|
+
* managedMetric: "managed_metric_instance_cpu",
|
|
29
|
+
* operator: "operator_greater_than",
|
|
30
|
+
* aggregate: "aggregate_average",
|
|
31
|
+
* samplingRangeMin: 5,
|
|
32
|
+
* threshold: 70,
|
|
33
|
+
* }],
|
|
34
|
+
* });
|
|
35
|
+
* const down = new scaleway.autoscaling.InstancePolicy("down", {
|
|
36
|
+
* instanceGroupId: main.id,
|
|
37
|
+
* name: "scale-down-if-cpu-low",
|
|
38
|
+
* action: "scale_down",
|
|
39
|
+
* type: "flat_count",
|
|
40
|
+
* value: 1,
|
|
41
|
+
* priority: 2,
|
|
42
|
+
* metrics: [{
|
|
43
|
+
* name: "cpu scale down",
|
|
44
|
+
* managedMetric: "managed_metric_instance_cpu",
|
|
45
|
+
* operator: "operator_less_than",
|
|
46
|
+
* aggregate: "aggregate_average",
|
|
47
|
+
* samplingRangeMin: 5,
|
|
48
|
+
* threshold: 40,
|
|
49
|
+
* }],
|
|
50
|
+
* });
|
|
51
|
+
* ```
|
|
52
|
+
*
|
|
53
|
+
* ## Import
|
|
54
|
+
*
|
|
55
|
+
* Autoscaling instance policies can be imported using `{zone}/{id}`, e.g.
|
|
56
|
+
*
|
|
57
|
+
* bash
|
|
58
|
+
*
|
|
59
|
+
* ```sh
|
|
60
|
+
* $ pulumi import scaleway:autoscaling/instancePolicy:InstancePolicy main fr-par-1/11111111-1111-1111-1111-111111111111
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
class InstancePolicy extends pulumi.CustomResource {
|
|
64
|
+
/**
|
|
65
|
+
* Get an existing InstancePolicy resource's state with the given name, ID, and optional extra
|
|
66
|
+
* properties used to qualify the lookup.
|
|
67
|
+
*
|
|
68
|
+
* @param name The _unique_ name of the resulting resource.
|
|
69
|
+
* @param id The _unique_ provider ID of the resource to lookup.
|
|
70
|
+
* @param state Any extra arguments used during the lookup.
|
|
71
|
+
* @param opts Optional settings to control the behavior of the CustomResource.
|
|
72
|
+
*/
|
|
73
|
+
static get(name, id, state, opts) {
|
|
74
|
+
return new InstancePolicy(name, state, Object.assign(Object.assign({}, opts), { id: id }));
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Returns true if the given object is an instance of InstancePolicy. This is designed to work even
|
|
78
|
+
* when multiple copies of the Pulumi SDK have been loaded into the same process.
|
|
79
|
+
*/
|
|
80
|
+
static isInstance(obj) {
|
|
81
|
+
if (obj === undefined || obj === null) {
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
return obj['__pulumiType'] === InstancePolicy.__pulumiType;
|
|
85
|
+
}
|
|
86
|
+
constructor(name, argsOrState, opts) {
|
|
87
|
+
let resourceInputs = {};
|
|
88
|
+
opts = opts || {};
|
|
89
|
+
if (opts.id) {
|
|
90
|
+
const state = argsOrState;
|
|
91
|
+
resourceInputs["action"] = state ? state.action : undefined;
|
|
92
|
+
resourceInputs["instanceGroupId"] = state ? state.instanceGroupId : undefined;
|
|
93
|
+
resourceInputs["metrics"] = state ? state.metrics : undefined;
|
|
94
|
+
resourceInputs["name"] = state ? state.name : undefined;
|
|
95
|
+
resourceInputs["priority"] = state ? state.priority : undefined;
|
|
96
|
+
resourceInputs["projectId"] = state ? state.projectId : undefined;
|
|
97
|
+
resourceInputs["type"] = state ? state.type : undefined;
|
|
98
|
+
resourceInputs["value"] = state ? state.value : undefined;
|
|
99
|
+
resourceInputs["zone"] = state ? state.zone : undefined;
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
const args = argsOrState;
|
|
103
|
+
if ((!args || args.action === undefined) && !opts.urn) {
|
|
104
|
+
throw new Error("Missing required property 'action'");
|
|
105
|
+
}
|
|
106
|
+
if ((!args || args.instanceGroupId === undefined) && !opts.urn) {
|
|
107
|
+
throw new Error("Missing required property 'instanceGroupId'");
|
|
108
|
+
}
|
|
109
|
+
if ((!args || args.priority === undefined) && !opts.urn) {
|
|
110
|
+
throw new Error("Missing required property 'priority'");
|
|
111
|
+
}
|
|
112
|
+
if ((!args || args.type === undefined) && !opts.urn) {
|
|
113
|
+
throw new Error("Missing required property 'type'");
|
|
114
|
+
}
|
|
115
|
+
if ((!args || args.value === undefined) && !opts.urn) {
|
|
116
|
+
throw new Error("Missing required property 'value'");
|
|
117
|
+
}
|
|
118
|
+
resourceInputs["action"] = args ? args.action : undefined;
|
|
119
|
+
resourceInputs["instanceGroupId"] = args ? args.instanceGroupId : undefined;
|
|
120
|
+
resourceInputs["metrics"] = args ? args.metrics : undefined;
|
|
121
|
+
resourceInputs["name"] = args ? args.name : undefined;
|
|
122
|
+
resourceInputs["priority"] = args ? args.priority : undefined;
|
|
123
|
+
resourceInputs["projectId"] = args ? args.projectId : undefined;
|
|
124
|
+
resourceInputs["type"] = args ? args.type : undefined;
|
|
125
|
+
resourceInputs["value"] = args ? args.value : undefined;
|
|
126
|
+
resourceInputs["zone"] = args ? args.zone : undefined;
|
|
127
|
+
}
|
|
128
|
+
opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
|
|
129
|
+
super(InstancePolicy.__pulumiType, name, resourceInputs, opts);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
exports.InstancePolicy = InstancePolicy;
|
|
133
|
+
/** @internal */
|
|
134
|
+
InstancePolicy.__pulumiType = 'scaleway:autoscaling/instancePolicy:InstancePolicy';
|
|
135
|
+
//# sourceMappingURL=instancePolicy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instancePolicy.js","sourceRoot":"","sources":["../../autoscaling/instancePolicy.ts"],"names":[],"mappings":"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"}
|