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