Text file
src/edge-infra.dev/test/fixtures/crds/gcp/compute.cnrm.cloud.google.com_computeinstancegroupmanagers.yaml
1---
2apiVersion: apiextensions.k8s.io/v1
3kind: CustomResourceDefinition
4metadata:
5 annotations:
6 controller-gen.kubebuilder.io/version: (unknown)
7 name: computeinstancegroupmanagers.compute.cnrm.cloud.google.com
8spec:
9 group: compute.cnrm.cloud.google.com
10 names:
11 kind: ComputeInstanceGroupManager
12 listKind: ComputeInstanceGroupManagerList
13 plural: computeinstancegroupmanagers
14 singular: computeinstancegroupmanager
15 scope: Namespaced
16 versions:
17 - name: v1beta1
18 schema:
19 openAPIV3Schema:
20 description: ComputeInstanceGroupManager 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 autoHealingPolicies:
42 description: The autohealing policy for this managed instance group.
43 You can specify only one value.
44 items:
45 properties:
46 healthCheckRef:
47 properties:
48 external:
49 description: The external name of the referenced resource
50 type: string
51 kind:
52 description: Kind of the referent.
53 type: string
54 name:
55 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
56 type: string
57 namespace:
58 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
59 type: string
60 type: object
61 initialDelaySec:
62 description: The number of seconds that the managed instance
63 group waits before it applies autohealing policies to new
64 instances or recently recreated instances. This initial delay
65 allows instances to initialize and run their startup scripts
66 before the instance group determines that they are UNHEALTHY.
67 This prevents the managed instance group from recreating its
68 instances prematurely. This value must be from range [0, 3600].
69 type: integer
70 type: object
71 type: array
72 baseInstanceName:
73 description: The base instance name to use for instances in this group.
74 The value must be 1-58 characters long. Instances are named by appending
75 a hyphen and a random four-character string to the base instance
76 name. The base instance name must comply with [RFC1035](https://www.ietf.org/rfc/rfc1035.txt).
77 type: string
78 description:
79 description: Immutable. An optional description of this resource.
80 type: string
81 distributionPolicy:
82 description: Policy specifying the intended distribution of managed
83 instances across zones in a regional managed instance group.
84 properties:
85 targetShape:
86 description: 'The distribution shape to which the group converges
87 either proactively or on resize events (depending on the value
88 set in `updatePolicy.instanceRedistributionType`). Possible
89 values: TARGET_SHAPE_UNSPECIFIED, ANY, BALANCED, ANY_SINGLE_ZONE'
90 type: string
91 zones:
92 description: Immutable. Zones where the regional managed instance
93 group will create and manage its instances.
94 items:
95 properties:
96 zone:
97 description: Immutable. The URL of the [zone](/compute/docs/regions-zones/#available).
98 The zone must exist in the region where the managed instance
99 group is located.
100 type: string
101 type: object
102 type: array
103 type: object
104 failoverAction:
105 description: 'The action to perform in case of zone failure. Only
106 one value is supported, `NO_FAILOVER`. The default is `NO_FAILOVER`.
107 Possible values: UNKNOWN, NO_FAILOVER'
108 type: string
109 instanceTemplateRef:
110 properties:
111 external:
112 description: The external name of the referenced resource
113 type: string
114 kind:
115 description: Kind of the referent.
116 type: string
117 name:
118 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
119 type: string
120 namespace:
121 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
122 type: string
123 type: object
124 location:
125 description: Immutable. The location of this resource.
126 type: string
127 namedPorts:
128 description: Immutable. Named ports configured for the Instance Groups
129 complementary to this Instance Group Manager.
130 items:
131 properties:
132 name:
133 description: Immutable. The name for this named port. The name
134 must be 1-63 characters long, and comply with [RFC1035](https://www.ietf.org/rfc/rfc1035.txt).
135 type: string
136 port:
137 description: Immutable. The port number, which can be a value
138 between 1 and 65535.
139 type: integer
140 type: object
141 type: array
142 projectRef:
143 description: Immutable. The Project that this resource belongs to.
144 properties:
145 external:
146 description: The external name of the referenced resource
147 type: string
148 kind:
149 description: Kind of the referent.
150 type: string
151 name:
152 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
153 type: string
154 namespace:
155 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
156 type: string
157 type: object
158 resourceID:
159 description: Immutable. Optional. The name of the resource. Used for
160 creation and acquisition. When unset, the value of `metadata.name`
161 is used as the default.
162 type: string
163 serviceAccountRef:
164 properties:
165 external:
166 description: The external name of the referenced resource
167 type: string
168 kind:
169 description: Kind of the referent.
170 type: string
171 name:
172 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
173 type: string
174 namespace:
175 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
176 type: string
177 type: object
178 statefulPolicy:
179 description: Stateful configuration for this Instanced Group Manager
180 properties:
181 preservedState:
182 properties:
183 disks:
184 additionalProperties:
185 properties:
186 autoDelete:
187 description: 'These stateful disks will never be deleted
188 during autohealing, update or VM instance recreate
189 operations. This flag is used to configure if the
190 disk should be deleted after it is no longer used
191 by the group, e.g. when the given instance or the
192 whole group is deleted. Note: disks attached in READ_ONLY
193 mode cannot be auto-deleted. Possible values: NEVER,
194 ON_PERMANENT_INSTANCE_DELETION'
195 type: string
196 type: object
197 description: Disks created on the instances that will be preserved
198 on instance delete, update, etc. This map is keyed with
199 the device names of the disks.
200 type: object
201 externalIps:
202 additionalProperties:
203 properties:
204 autoDelete:
205 description: 'These stateful IPs will never be released
206 during autohealing, update or VM instance recreate
207 operations. This flag is used to configure if the
208 IP reservation should be deleted after it is no longer
209 used by the group, e.g. when the given instance or
210 the whole group is deleted. Possible values: NEVER,
211 ON_PERMANENT_INSTANCE_DELETION'
212 type: string
213 type: object
214 description: External network IPs assigned to the instances
215 that will be preserved on instance delete, update, etc.
216 This map is keyed with the network interface name.
217 type: object
218 internalIps:
219 additionalProperties:
220 properties:
221 autoDelete:
222 description: 'These stateful IPs will never be released
223 during autohealing, update or VM instance recreate
224 operations. This flag is used to configure if the
225 IP reservation should be deleted after it is no longer
226 used by the group, e.g. when the given instance or
227 the whole group is deleted. Possible values: NEVER,
228 ON_PERMANENT_INSTANCE_DELETION'
229 type: string
230 type: object
231 description: Internal network IPs assigned to the instances
232 that will be preserved on instance delete, update, etc.
233 This map is keyed with the network interface name.
234 type: object
235 type: object
236 type: object
237 targetPools:
238 items:
239 properties:
240 external:
241 description: The external name of the referenced resource
242 type: string
243 kind:
244 description: Kind of the referent.
245 type: string
246 name:
247 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
248 type: string
249 namespace:
250 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
251 type: string
252 type: object
253 type: array
254 targetSize:
255 description: The target number of running instances for this managed
256 instance group. You can reduce this number by using the instanceGroupManager
257 deleteInstances or abandonInstances methods. Resizing the group
258 also changes this number.
259 type: integer
260 updatePolicy:
261 description: The update policy for this managed instance group.
262 properties:
263 instanceRedistributionType:
264 description: 'The [instance redistribution policy](/compute/docs/instance-groups/regional-migs#proactive_instance_redistribution)
265 for regional managed instance groups. Valid values are: - `PROACTIVE`
266 (default): The group attempts to maintain an even distribution
267 of VM instances across zones in the region. - `NONE`: For non-autoscaled
268 groups, proactive redistribution is disabled.'
269 type: string
270 maxSurge:
271 description: The maximum number of instances that can be created
272 above the specified `targetSize` during the update process.
273 This value can be either a fixed number or, if the group has
274 10 or more instances, a percentage. If you set a percentage,
275 the number of instances is rounded if necessary. The default
276 value for `maxSurge` is a fixed value equal to the number of
277 zones in which the managed instance group operates. At least
278 one of either `maxSurge` or `maxUnavailable` must be greater
279 than 0. Learn more about [`maxSurge`](/compute/docs/instance-groups/rolling-out-updates-to-managed-instance-groups#max_surge).
280 properties:
281 fixed:
282 description: Specifies a fixed number of VM instances. This
283 must be a positive integer.
284 type: integer
285 percent:
286 description: Specifies a percentage of instances between 0
287 to 100%, inclusive. For example, specify `80` for 80%.
288 type: integer
289 type: object
290 maxUnavailable:
291 description: 'The maximum number of instances that can be unavailable
292 during the update process. An instance is considered available
293 if all of the following conditions are satisfied: - The instance''s
294 [status](/compute/docs/instances/checking-instance-status) is
295 `RUNNING`. - If there is a [health check](/compute/docs/instance-groups/autohealing-instances-in-migs)
296 on the instance group, the instance''s health check status must
297 be `HEALTHY` at least once. If there is no health check on the
298 group, then the instance only needs to have a status of `RUNNING`
299 to be considered available. This value can be either a fixed
300 number or, if the group has 10 or more instances, a percentage.
301 If you set a percentage, the number of instances is rounded
302 if necessary. The default value for `maxUnavailable` is a fixed
303 value equal to the number of zones in which the managed instance
304 group operates. At least one of either `maxSurge` or `maxUnavailable`
305 must be greater than 0. Learn more about [`maxUnavailable`](/compute/docs/instance-groups/rolling-out-updates-to-managed-instance-groups#max_unavailable).'
306 properties:
307 fixed:
308 description: Specifies a fixed number of VM instances. This
309 must be a positive integer.
310 type: integer
311 percent:
312 description: Specifies a percentage of instances between 0
313 to 100%, inclusive. For example, specify `80` for 80%.
314 type: integer
315 type: object
316 minReadySec:
317 description: Minimum number of seconds to wait for after a newly
318 created instance becomes available. This value must be from
319 range [0, 3600].
320 type: integer
321 minimalAction:
322 description: Minimal action to be taken on an instance. You can
323 specify either `RESTART` to restart existing instances or `REPLACE`
324 to delete and create new instances from the target template.
325 If you specify a `RESTART`, the Updater will attempt to perform
326 that action only. However, if the Updater determines that the
327 minimal action you specify is not enough to perform the update,
328 it might perform a more disruptive action.
329 type: string
330 mostDisruptiveAllowedAction:
331 description: Most disruptive action that is allowed to be taken
332 on an instance. You can specify either `NONE` to forbid any
333 actions, `REFRESH` to allow actions that do not need instance
334 restart, `RESTART` to allow actions that can be applied without
335 instance replacing or `REPLACE` to allow all possible actions.
336 If the Updater determines that the minimal update action needed
337 is more disruptive than most disruptive allowed action you specify
338 it will not perform the update at all.
339 type: string
340 replacementMethod:
341 description: 'What action should be used to replace instances.
342 See minimal_action.REPLACE Possible values: SUBSTITUTE, RECREATE'
343 type: string
344 type:
345 description: The type of update process. You can specify either
346 `PROACTIVE` so that the instance group manager proactively executes
347 actions in order to bring instances to their target versions
348 or `OPPORTUNISTIC` so that no action is proactively executed
349 but the update will be performed as part of other actions (for
350 example, resizes or `recreateInstances` calls).
351 type: string
352 type: object
353 versions:
354 description: Specifies the instance templates used by this managed
355 instance group to create instances. Each version is defined by an
356 `instanceTemplate` and a `name`. Every version can appear at most
357 once per instance group. This field overrides the top-level `instanceTemplate`
358 field. Read more about the [relationships between these fields](/compute/docs/instance-groups/rolling-out-updates-to-managed-instance-groups#relationship_between_versions_and_instancetemplate_properties_for_a_managed_instance_group).
359 Exactly one `version` must leave the `targetSize` field unset. That
360 version will be applied to all remaining instances. For more information,
361 read about [canary updates](/compute/docs/instance-groups/rolling-out-updates-to-managed-instance-groups#starting_a_canary_update).
362 items:
363 properties:
364 instanceTemplateRef:
365 properties:
366 external:
367 description: The external name of the referenced resource
368 type: string
369 kind:
370 description: Kind of the referent.
371 type: string
372 name:
373 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
374 type: string
375 namespace:
376 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
377 type: string
378 type: object
379 name:
380 description: Name of the version. Unique among all versions
381 in the scope of this managed instance group.
382 type: string
383 targetSize:
384 description: 'Specifies the intended number of instances to
385 be created from the `instanceTemplate`. The final number of
386 instances created from the template will be equal to: - If
387 expressed as a fixed number, the minimum of either `targetSize.fixed`
388 or `instanceGroupManager.targetSize` is used. - if expressed
389 as a `percent`, the `targetSize` would be `(targetSize.percent/100
390 * InstanceGroupManager.targetSize)` If there is a remainder,
391 the number is rounded. If unset, this version will update
392 any remaining instances not updated by another `version`.
393 Read [Starting a canary update](/compute/docs/instance-groups/rolling-out-updates-to-managed-instance-groups#starting_a_canary_update)
394 for more information.'
395 properties:
396 calculated:
397 description: '[Output Only] Absolute value of VM instances
398 calculated based on the specific mode. - If the value
399 is `fixed`, then the `calculated` value is equal to the
400 `fixed` value. - If the value is a `percent`, then the
401 `calculated` value is `percent`/100 * `targetSize`. For
402 example, the `calculated` value of a 80% of a managed
403 instance group with 150 instances would be (80/100 * 150)
404 = 120 VM instances. If there is a remainder, the number
405 is rounded.'
406 type: integer
407 fixed:
408 description: Specifies a fixed number of VM instances. This
409 must be a positive integer.
410 type: integer
411 percent:
412 description: Specifies a percentage of instances between
413 0 to 100%, inclusive. For example, specify `80` for 80%.
414 type: integer
415 type: object
416 type: object
417 type: array
418 required:
419 - projectRef
420 - targetSize
421 type: object
422 status:
423 properties:
424 conditions:
425 description: |-
426 Conditions represent the latest available observations of the
427 ComputeInstanceGroupManager's current state.
428 items:
429 properties:
430 lastTransitionTime:
431 description: Last time the condition transitioned from one status
432 to another.
433 type: string
434 message:
435 description: Human-readable message indicating details about
436 last transition.
437 type: string
438 reason:
439 description: |-
440 Unique, one-word, CamelCase reason for the condition's last
441 transition.
442 type: string
443 status:
444 description: Status is the status of the condition. Can be True,
445 False, Unknown.
446 type: string
447 type:
448 description: Type is the type of the condition.
449 type: string
450 type: object
451 type: array
452 creationTimestamp:
453 description: The creation timestamp for this managed instance group
454 in \[RFC3339\](https://www.ietf.org/rfc/rfc3339.txt) text format.
455 type: string
456 currentActions:
457 description: '[Output Only] The list of instance actions and the number
458 of instances in this managed instance group that are scheduled for
459 each of those actions.'
460 properties:
461 abandoning:
462 description: '[Output Only] The total number of instances in the
463 managed instance group that are scheduled to be abandoned. Abandoning
464 an instance removes it from the managed instance group without
465 deleting it.'
466 type: integer
467 creating:
468 description: '[Output Only] The number of instances in the managed
469 instance group that are scheduled to be created or are currently
470 being created. If the group fails to create any of these instances,
471 it tries again until it creates the instance successfully. If
472 you have disabled creation retries, this field will not be populated;
473 instead, the `creatingWithoutRetries` field will be populated.'
474 type: integer
475 creatingWithoutRetries:
476 description: '[Output Only] The number of instances that the managed
477 instance group will attempt to create. The group attempts to
478 create each instance only once. If the group fails to create
479 any of these instances, it decreases the group''s `targetSize`
480 value accordingly.'
481 type: integer
482 deleting:
483 description: '[Output Only] The number of instances in the managed
484 instance group that are scheduled to be deleted or are currently
485 being deleted.'
486 type: integer
487 none:
488 description: '[Output Only] The number of instances in the managed
489 instance group that are running and have no scheduled actions.'
490 type: integer
491 recreating:
492 description: '[Output Only] The number of instances in the managed
493 instance group that are scheduled to be recreated or are currently
494 being being recreated. Recreating an instance deletes the existing
495 root persistent disk and creates a new disk from the image that
496 is defined in the instance template.'
497 type: integer
498 refreshing:
499 description: '[Output Only] The number of instances in the managed
500 instance group that are being reconfigured with properties that
501 do not require a restart or a recreate action. For example,
502 setting or removing target pools for the instance.'
503 type: integer
504 restarting:
505 description: '[Output Only] The number of instances in the managed
506 instance group that are scheduled to be restarted or are currently
507 being restarted.'
508 type: integer
509 verifying:
510 description: '[Output Only] The number of instances in the managed
511 instance group that are being verified. See the `managedInstances[].currentAction`
512 property in the `listManagedInstances` method documentation.'
513 type: integer
514 type: object
515 fingerprint:
516 description: Fingerprint of this resource. This field may be used
517 in optimistic locking. It will be ignored when inserting an InstanceGroupManager.
518 An up-to-date fingerprint must be provided in order to update the
519 InstanceGroupManager, otherwise the request will fail with error
520 `412 conditionNotMet`. To see the latest fingerprint, make a `get()`
521 request to retrieve an InstanceGroupManager.
522 type: string
523 id:
524 description: '[Output Only] A unique identifier for this resource
525 type. The server generates this identifier.'
526 type: integer
527 instanceGroup:
528 description: '[Output Only] The URL of the Instance Group resource.'
529 type: string
530 observedGeneration:
531 description: ObservedGeneration is the generation of the resource
532 that was most recently observed by the Config Connector controller.
533 If this is equal to metadata.generation, then that means that the
534 current reported status reflects the most recent desired state of
535 the resource.
536 type: integer
537 region:
538 description: '[Output Only] The URL of the [region](/compute/docs/regions-zones/#available)
539 where the managed instance group resides (for regional resources).'
540 type: string
541 selfLink:
542 description: '[Output Only] The URL for this managed instance group.
543 The server defines this URL.'
544 type: string
545 status:
546 description: '[Output Only] The status of this managed instance group.'
547 properties:
548 autoscaler:
549 description: '[Output Only] The URL of the [Autoscaler](/compute/docs/autoscaler/)
550 that targets this instance group manager.'
551 type: string
552 isStable:
553 description: '[Output Only] A bit indicating whether the managed
554 instance group is in a stable state. A stable state means that:
555 none of the instances in the managed instance group is currently
556 undergoing any type of change (for example, creation, restart,
557 or deletion); no future changes are scheduled for instances
558 in the managed instance group; and the managed instance group
559 itself is not being modified.'
560 type: boolean
561 stateful:
562 description: '[Output Only] Stateful status of the given Instance
563 Group Manager.'
564 properties:
565 hasStatefulConfig:
566 description: '[Output Only] A bit indicating whether the managed
567 instance group has stateful configuration, that is, if you
568 have configured any items in a stateful policy or in per-instance
569 configs. The group might report that it has no stateful
570 config even when there is still some preserved state on
571 a managed instance, for example, if you have deleted all
572 PICs but not yet applied those deletions.'
573 type: boolean
574 isStateful:
575 description: '[Output Only] A bit indicating whether the managed
576 instance group has stateful configuration, that is, if you
577 have configured any items in a stateful policy or in per-instance
578 configs. The group might report that it has no stateful
579 config even when there is still some preserved state on
580 a managed instance, for example, if you have deleted all
581 PICs but not yet applied those deletions. This field is
582 deprecated in favor of has_stateful_config.'
583 type: boolean
584 perInstanceConfigs:
585 description: '[Output Only] Status of per-instance configs
586 on the instance.'
587 properties:
588 allEffective:
589 description: A bit indicating if all of the group's per-instance
590 configs (listed in the output of a listPerInstanceConfigs
591 API call) have status `EFFECTIVE` or there are no per-instance-configs.
592 type: boolean
593 type: object
594 type: object
595 versionTarget:
596 description: '[Output Only] A status of consistency of Instances''
597 versions with their target version specified by `version` field
598 on Instance Group Manager.'
599 properties:
600 isReached:
601 description: '[Output Only] A bit indicating whether version
602 target has been reached in this managed instance group,
603 i.e. all instances are in their target version. Instances''
604 target version are specified by `version` field on Instance
605 Group Manager.'
606 type: boolean
607 type: object
608 type: object
609 updatePolicy:
610 properties:
611 maxSurge:
612 properties:
613 calculated:
614 description: '[Output Only] Absolute value of VM instances
615 calculated based on the specific mode. - If the value is
616 `fixed`, then the `calculated` value is equal to the `fixed`
617 value. - If the value is a `percent`, then the `calculated`
618 value is `percent`/100 * `targetSize`. For example, the
619 `calculated` value of a 80% of a managed instance group
620 with 150 instances would be (80/100 * 150) = 120 VM instances.
621 If there is a remainder, the number is rounded.'
622 type: integer
623 type: object
624 maxUnavailable:
625 properties:
626 calculated:
627 description: '[Output Only] Absolute value of VM instances
628 calculated based on the specific mode. - If the value is
629 `fixed`, then the `calculated` value is equal to the `fixed`
630 value. - If the value is a `percent`, then the `calculated`
631 value is `percent`/100 * `targetSize`. For example, the
632 `calculated` value of a 80% of a managed instance group
633 with 150 instances would be (80/100 * 150) = 120 VM instances.
634 If there is a remainder, the number is rounded.'
635 type: integer
636 type: object
637 type: object
638 zone:
639 description: '[Output Only] The URL of a [zone](/compute/docs/regions-zones/#available)
640 where the managed instance group is located (for zonal resources).'
641 type: string
642 type: object
643 type: object
644 served: true
645 storage: true
View as plain text