...
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: computeregionautoscalers.compute.cnrm.cloud.google.com
13spec:
14 group: compute.cnrm.cloud.google.com
15 names:
16 categories:
17 - gcp
18 kind: ComputeRegionAutoscaler
19 plural: computeregionautoscalers
20 shortNames:
21 - gcpcomputeregionautoscaler
22 - gcpcomputeregionautoscalers
23 singular: computeregionautoscaler
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 region:
362 description: Immutable. URL of the region where the instance group
363 resides.
364 type: string
365 resourceID:
366 description: Immutable. Optional. The name of the resource. Used for
367 creation and acquisition. When unset, the value of `metadata.name`
368 is used as the default.
369 type: string
370 target:
371 description: URL of the managed instance group that this autoscaler
372 will scale.
373 type: string
374 required:
375 - autoscalingPolicy
376 - projectRef
377 - region
378 - target
379 type: object
380 status:
381 properties:
382 conditions:
383 description: Conditions represent the latest available observation
384 of the resource's current state.
385 items:
386 properties:
387 lastTransitionTime:
388 description: Last time the condition transitioned from one status
389 to another.
390 type: string
391 message:
392 description: Human-readable message indicating details about
393 last transition.
394 type: string
395 reason:
396 description: Unique, one-word, CamelCase reason for the condition's
397 last transition.
398 type: string
399 status:
400 description: Status is the status of the condition. Can be True,
401 False, Unknown.
402 type: string
403 type:
404 description: Type is the type of the condition.
405 type: string
406 type: object
407 type: array
408 creationTimestamp:
409 description: Creation timestamp in RFC3339 text format.
410 type: string
411 observedGeneration:
412 description: ObservedGeneration is the generation of the resource
413 that was most recently observed by the Config Connector controller.
414 If this is equal to metadata.generation, then that means that the
415 current reported status reflects the most recent desired state of
416 the resource.
417 type: integer
418 selfLink:
419 type: string
420 type: object
421 required:
422 - spec
423 type: object
424 served: true
425 storage: true
426 subresources:
427 status: {}
428status:
429 acceptedNames:
430 kind: ""
431 plural: ""
432 conditions: []
433 storedVersions: []
View as plain text