...
1apiVersion: apiextensions.k8s.io/v1
2kind: CustomResourceDefinition
3metadata:
4 annotations:
5 cnrm.cloud.google.com/version: 0.0.0-dev
6 creationTimestamp: null
7 labels:
8 cnrm.cloud.google.com/managed-by-kcc: "true"
9 cnrm.cloud.google.com/stability-level: alpha
10 cnrm.cloud.google.com/system: "true"
11 cnrm.cloud.google.com/tf2crd: "true"
12 name: computeautoscalers.compute.cnrm.cloud.google.com
13spec:
14 group: compute.cnrm.cloud.google.com
15 names:
16 categories:
17 - gcp
18 kind: ComputeAutoscaler
19 plural: computeautoscalers
20 shortNames:
21 - gcpcomputeautoscaler
22 - gcpcomputeautoscalers
23 singular: computeautoscaler
24 preserveUnknownFields: false
25 scope: Namespaced
26 versions:
27 - additionalPrinterColumns:
28 - jsonPath: .metadata.creationTimestamp
29 name: Age
30 type: date
31 - description: When 'True', the most recent reconcile of the resource succeeded
32 jsonPath: .status.conditions[?(@.type=='Ready')].status
33 name: Ready
34 type: string
35 - description: The reason for the value in 'Ready'
36 jsonPath: .status.conditions[?(@.type=='Ready')].reason
37 name: Status
38 type: string
39 - description: The last transition time for the value in 'Status'
40 jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime
41 name: Status Age
42 type: date
43 name: v1alpha1
44 schema:
45 openAPIV3Schema:
46 properties:
47 apiVersion:
48 description: 'apiVersion defines the versioned schema of this representation
49 of an object. Servers should convert recognized schemas to the latest
50 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources'
51 type: string
52 kind:
53 description: 'kind is a string value representing the REST resource this
54 object represents. Servers may infer this from the endpoint the client
55 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
56 type: string
57 metadata:
58 type: object
59 spec:
60 properties:
61 autoscalingPolicy:
62 description: |-
63 The configuration parameters for the autoscaling algorithm. You can
64 define one or more of the policies for an autoscaler: cpuUtilization,
65 customMetricUtilizations, and loadBalancingUtilization.
66
67 If none of these are specified, the default will be to autoscale based
68 on cpuUtilization to 0.6 or 60%.
69 properties:
70 cooldownPeriod:
71 description: |-
72 The number of seconds that the autoscaler should wait before it
73 starts collecting information from a new instance. This prevents
74 the autoscaler from collecting information when the instance is
75 initializing, during which the collected usage would not be
76 reliable. The default time autoscaler waits is 60 seconds.
77
78 Virtual machine initialization times might vary because of
79 numerous factors. We recommend that you test how long an
80 instance may take to initialize. To do this, create an instance
81 and time the startup process.
82 type: integer
83 cpuUtilization:
84 description: |-
85 Defines the CPU utilization policy that allows the autoscaler to
86 scale based on the average CPU utilization of a managed instance
87 group.
88 properties:
89 predictiveMethod:
90 description: |-
91 Indicates whether predictive autoscaling based on CPU metric is enabled. Valid values are:
92
93 - NONE (default). No predictive method is used. The autoscaler scales the group to meet current demand based on real-time metrics.
94
95 - OPTIMIZE_AVAILABILITY. Predictive autoscaling improves availability by monitoring daily and weekly load patterns and scaling out ahead of anticipated demand.
96 type: string
97 target:
98 description: |-
99 The target CPU utilization that the autoscaler should maintain.
100 Must be a float value in the range (0, 1]. If not specified, the
101 default is 0.6.
102
103 If the CPU level is below the target utilization, the autoscaler
104 scales down the number of instances until it reaches the minimum
105 number of instances you specified or until the average CPU of
106 your instances reaches the target utilization.
107
108 If the average CPU is above the target utilization, the autoscaler
109 scales up until it reaches the maximum number of instances you
110 specified or until the average utilization reaches the target
111 utilization.
112 type: number
113 required:
114 - target
115 type: object
116 loadBalancingUtilization:
117 description: Configuration parameters of autoscaling based on
118 a load balancer.
119 properties:
120 target:
121 description: |-
122 Fraction of backend capacity utilization (set in HTTP(s) load
123 balancing configuration) that autoscaler should maintain. Must
124 be a positive float value. If not defined, the default is 0.8.
125 type: number
126 required:
127 - target
128 type: object
129 maxReplicas:
130 description: |-
131 The maximum number of instances that the autoscaler can scale up
132 to. This is required when creating or updating an autoscaler. The
133 maximum number of replicas should not be lower than minimal number
134 of replicas.
135 type: integer
136 metric:
137 description: Configuration parameters of autoscaling based on
138 a custom metric.
139 items:
140 properties:
141 filter:
142 description: |-
143 A filter string to be used as the filter string for
144 a Stackdriver Monitoring TimeSeries.list API call.
145 This filter is used to select a specific TimeSeries for
146 the purpose of autoscaling and to determine whether the metric
147 is exporting per-instance or per-group data.
148
149 You can only use the AND operator for joining selectors.
150 You can only use direct equality comparison operator (=) without
151 any functions for each selector.
152 You can specify the metric in both the filter string and in the
153 metric field. However, if specified in both places, the metric must
154 be identical.
155
156 The monitored resource type determines what kind of values are
157 expected for the metric. If it is a gce_instance, the autoscaler
158 expects the metric to include a separate TimeSeries for each
159 instance in a group. In such a case, you cannot filter on resource
160 labels.
161
162 If the resource type is any other value, the autoscaler expects
163 this metric to contain values that apply to the entire autoscaled
164 instance group and resource label filtering can be performed to
165 point autoscaler at the correct TimeSeries to scale upon.
166 This is called a per-group metric for the purpose of autoscaling.
167
168 If not specified, the type defaults to gce_instance.
169
170 You should provide a filter that is selective enough to pick just
171 one TimeSeries for the autoscaled group or for each of the instances
172 (if you are using gce_instance resource type). If multiple
173 TimeSeries are returned upon the query execution, the autoscaler
174 will sum their respective values to obtain its scaling value.
175 type: string
176 name:
177 description: |-
178 The identifier (type) of the Stackdriver Monitoring metric.
179 The metric cannot have negative values.
180
181 The metric must have a value type of INT64 or DOUBLE.
182 type: string
183 singleInstanceAssignment:
184 description: |-
185 If scaling is based on a per-group metric value that represents the
186 total amount of work to be done or resource usage, set this value to
187 an amount assigned for a single instance of the scaled group.
188 The autoscaler will keep the number of instances proportional to the
189 value of this metric, the metric itself should not change value due
190 to group resizing.
191
192 For example, a good metric to use with the target is
193 'pubsub.googleapis.com/subscription/num_undelivered_messages'
194 or a custom metric exporting the total number of requests coming to
195 your instances.
196
197 A bad example would be a metric exporting an average or median
198 latency, since this value can't include a chunk assignable to a
199 single instance, it could be better used with utilization_target
200 instead.
201 type: number
202 target:
203 description: |-
204 The target value of the metric that autoscaler should
205 maintain. This must be a positive value. A utilization
206 metric scales number of virtual machines handling requests
207 to increase or decrease proportionally to the metric.
208
209 For example, a good metric to use as a utilizationTarget is
210 www.googleapis.com/compute/instance/network/received_bytes_count.
211 The autoscaler will work to keep this value constant for each
212 of the instances.
213 type: number
214 type:
215 description: |-
216 Defines how target utilization value is expressed for a
217 Stackdriver Monitoring metric. Possible values: ["GAUGE", "DELTA_PER_SECOND", "DELTA_PER_MINUTE"].
218 type: string
219 required:
220 - name
221 type: object
222 type: array
223 minReplicas:
224 description: |-
225 The minimum number of replicas that the autoscaler can scale down
226 to. This cannot be less than 0. If not provided, autoscaler will
227 choose a default value depending on maximum number of instances
228 allowed.
229 type: integer
230 mode:
231 description: 'Defines operating mode for this policy. Default
232 value: "ON" Possible values: ["OFF", "ONLY_UP", "ON"].'
233 type: string
234 scaleDownControl:
235 description: |-
236 Defines scale down controls to reduce the risk of response latency
237 and outages due to abrupt scale-in events.
238 properties:
239 maxScaledDownReplicas:
240 description: A nested object resource.
241 properties:
242 fixed:
243 description: |-
244 Specifies a fixed number of VM instances. This must be a positive
245 integer.
246 type: integer
247 percent:
248 description: |-
249 Specifies a percentage of instances between 0 to 100%, inclusive.
250 For example, specify 80 for 80%.
251 type: integer
252 type: object
253 timeWindowSec:
254 description: |-
255 How long back autoscaling should look when computing recommendations
256 to include directives regarding slower scale down, as described above.
257 type: integer
258 type: object
259 scaleInControl:
260 description: |-
261 Defines scale in controls to reduce the risk of response latency
262 and outages due to abrupt scale-in events.
263 properties:
264 maxScaledInReplicas:
265 description: A nested object resource.
266 properties:
267 fixed:
268 description: |-
269 Specifies a fixed number of VM instances. This must be a positive
270 integer.
271 type: integer
272 percent:
273 description: |-
274 Specifies a percentage of instances between 0 to 100%, inclusive.
275 For example, specify 80 for 80%.
276 type: integer
277 type: object
278 timeWindowSec:
279 description: |-
280 How long back autoscaling should look when computing recommendations
281 to include directives regarding slower scale down, as described above.
282 type: integer
283 type: object
284 scalingSchedules:
285 description: Scaling schedules defined for an autoscaler. Multiple
286 schedules can be set on an autoscaler and they can overlap.
287 items:
288 properties:
289 description:
290 description: A description of a scaling schedule.
291 type: string
292 disabled:
293 description: A boolean value that specifies if a scaling
294 schedule can influence autoscaler recommendations. If
295 set to true, then a scaling schedule has no effect.
296 type: boolean
297 durationSec:
298 description: The duration of time intervals (in seconds)
299 for which this scaling schedule will be running. The minimum
300 allowed value is 300.
301 type: integer
302 minRequiredReplicas:
303 description: Minimum number of VM instances that autoscaler
304 will recommend in time intervals starting according to
305 schedule.
306 type: integer
307 name:
308 type: string
309 schedule:
310 description: The start timestamps of time intervals when
311 this scaling schedule should provide a scaling signal.
312 This field uses the extended cron format (with an optional
313 year field).
314 type: string
315 timeZone:
316 description: 'The time zone to be used when interpreting
317 the schedule. The value of this field must be a time zone
318 name from the tz database: http://en.wikipedia.org/wiki/Tz_database.'
319 type: string
320 required:
321 - durationSec
322 - minRequiredReplicas
323 - name
324 - schedule
325 type: object
326 type: array
327 required:
328 - maxReplicas
329 - minReplicas
330 type: object
331 description:
332 description: An optional description of this resource.
333 type: string
334 projectRef:
335 description: The project that this resource belongs to.
336 oneOf:
337 - not:
338 required:
339 - external
340 required:
341 - name
342 - not:
343 anyOf:
344 - required:
345 - name
346 - required:
347 - namespace
348 required:
349 - external
350 properties:
351 external:
352 description: 'Allowed value: The `name` field of a `Project` resource.'
353 type: string
354 name:
355 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
356 type: string
357 namespace:
358 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
359 type: string
360 type: object
361 resourceID:
362 description: Immutable. Optional. The name of the resource. Used for
363 creation and acquisition. When unset, the value of `metadata.name`
364 is used as the default.
365 type: string
366 targetRef:
367 oneOf:
368 - not:
369 required:
370 - external
371 required:
372 - name
373 - not:
374 anyOf:
375 - required:
376 - name
377 - required:
378 - namespace
379 required:
380 - external
381 properties:
382 external:
383 description: 'Allowed value: The `selfLink` field of a `ComputeInstanceGroupManager`
384 resource.'
385 type: string
386 name:
387 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
388 type: string
389 namespace:
390 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
391 type: string
392 type: object
393 zone:
394 description: Immutable. URL of the zone where the instance group resides.
395 type: string
396 required:
397 - autoscalingPolicy
398 - projectRef
399 - targetRef
400 - zone
401 type: object
402 status:
403 properties:
404 conditions:
405 description: Conditions represent the latest available observation
406 of the resource's current state.
407 items:
408 properties:
409 lastTransitionTime:
410 description: Last time the condition transitioned from one status
411 to another.
412 type: string
413 message:
414 description: Human-readable message indicating details about
415 last transition.
416 type: string
417 reason:
418 description: Unique, one-word, CamelCase reason for the condition's
419 last transition.
420 type: string
421 status:
422 description: Status is the status of the condition. Can be True,
423 False, Unknown.
424 type: string
425 type:
426 description: Type is the type of the condition.
427 type: string
428 type: object
429 type: array
430 creationTimestamp:
431 description: Creation timestamp in RFC3339 text format.
432 type: string
433 observedGeneration:
434 description: ObservedGeneration is the generation of the resource
435 that was most recently observed by the Config Connector controller.
436 If this is equal to metadata.generation, then that means that the
437 current reported status reflects the most recent desired state of
438 the resource.
439 type: integer
440 selfLink:
441 type: string
442 type: object
443 required:
444 - spec
445 type: object
446 served: true
447 storage: true
448 subresources:
449 status: {}
450status:
451 acceptedNames:
452 kind: ""
453 plural: ""
454 conditions: []
455 storedVersions: []
View as plain text