config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_computeinstancegroupmanagers.compute.cnrm.cloud.google.com.yaml (758 lines of code) (raw):
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
cnrm.cloud.google.com/version: 0.0.0-dev
creationTimestamp: null
labels:
cnrm.cloud.google.com/dcl2crd: "true"
cnrm.cloud.google.com/managed-by-kcc: "true"
cnrm.cloud.google.com/stability-level: stable
cnrm.cloud.google.com/system: "true"
name: computeinstancegroupmanagers.compute.cnrm.cloud.google.com
spec:
group: compute.cnrm.cloud.google.com
names:
categories:
- gcp
kind: ComputeInstanceGroupManager
plural: computeinstancegroupmanagers
shortNames:
- gcpcomputeinstancegroupmanager
- gcpcomputeinstancegroupmanagers
singular: computeinstancegroupmanager
preserveUnknownFields: false
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
- description: When 'True', the most recent reconcile of the resource succeeded
jsonPath: .status.conditions[?(@.type=='Ready')].status
name: Ready
type: string
- description: The reason for the value in 'Ready'
jsonPath: .status.conditions[?(@.type=='Ready')].reason
name: Status
type: string
- description: The last transition time for the value in 'Status'
jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime
name: Status Age
type: date
name: v1beta1
schema:
openAPIV3Schema:
properties:
apiVersion:
description: 'apiVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources'
type: string
kind:
description: 'kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
properties:
autoHealingPolicies:
description: The autohealing policy for this managed instance group.
You can specify only one value.
items:
properties:
healthCheckRef:
oneOf:
- not:
required:
- external
required:
- name
- not:
anyOf:
- required:
- name
- required:
- namespace
required:
- external
properties:
external:
description: |-
The URL for the health check that signals autohealing.
Allowed value: The `selfLink` field of a `ComputeHealthCheck` resource.
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
type: string
namespace:
description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
type: string
type: object
initialDelaySec:
description: The number of seconds that the managed instance
group waits before it applies autohealing policies to new
instances or recently recreated instances. This initial delay
allows instances to initialize and run their startup scripts
before the instance group determines that they are UNHEALTHY.
This prevents the managed instance group from recreating its
instances prematurely. This value must be from range [0, 3600].
format: int64
type: integer
type: object
type: array
baseInstanceName:
description: The base instance name to use for instances in this group.
The value must be 1-58 characters long. Instances are named by appending
a hyphen and a random four-character string to the base instance
name. The base instance name must comply with [RFC1035](https://www.ietf.org/rfc/rfc1035.txt).
type: string
description:
description: Immutable. An optional description of this resource.
type: string
distributionPolicy:
description: Policy specifying the intended distribution of managed
instances across zones in a regional managed instance group.
properties:
targetShape:
description: 'The distribution shape to which the group converges
either proactively or on resize events (depending on the value
set in `updatePolicy.instanceRedistributionType`). Possible
values: TARGET_SHAPE_UNSPECIFIED, ANY, BALANCED, ANY_SINGLE_ZONE'
type: string
zones:
description: Immutable. Zones where the regional managed instance
group will create and manage its instances.
items:
properties:
zone:
description: Immutable. The URL of the [zone](/compute/docs/regions-zones/#available).
The zone must exist in the region where the managed instance
group is located.
type: string
type: object
type: array
type: object
failoverAction:
description: 'The action to perform in case of zone failure. Only
one value is supported, `NO_FAILOVER`. The default is `NO_FAILOVER`.
Possible values: UNKNOWN, NO_FAILOVER'
type: string
instanceTemplateRef:
oneOf:
- not:
required:
- external
required:
- name
- not:
anyOf:
- required:
- name
- required:
- namespace
required:
- external
properties:
external:
description: |-
The URL of the instance template that is specified for this managed instance group. The group uses this template to create all new instances in the managed instance group. The templates for existing instances in the group do not change unless you run `recreateInstances`, run `applyUpdatesToInstances`, or set the group's `updatePolicy.type` to `PROACTIVE`.
Allowed value: The `selfLink` field of a `ComputeInstanceTemplate` resource.
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
type: string
namespace:
description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
type: string
type: object
location:
description: Immutable. The location of this resource.
type: string
namedPorts:
description: Immutable. Named ports configured for the Instance Groups
complementary to this Instance Group Manager.
items:
properties:
name:
description: Immutable. The name for this named port. The name
must be 1-63 characters long, and comply with [RFC1035](https://www.ietf.org/rfc/rfc1035.txt).
type: string
port:
description: Immutable. The port number, which can be a value
between 1 and 65535.
format: int64
type: integer
type: object
type: array
projectRef:
description: Immutable. The Project that this resource belongs to.
oneOf:
- not:
required:
- external
required:
- name
- not:
anyOf:
- required:
- name
- required:
- namespace
required:
- external
properties:
external:
description: |-
The project for the resource
Allowed value: The Google Cloud resource name of a `Project` resource (format: `projects/{{name}}`).
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
type: string
namespace:
description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
type: string
type: object
resourceID:
description: Immutable. Optional. The name of the resource. Used for
creation and acquisition. When unset, the value of `metadata.name`
is used as the default.
type: string
serviceAccountRef:
oneOf:
- not:
required:
- external
required:
- name
- not:
anyOf:
- required:
- name
- required:
- namespace
required:
- external
properties:
external:
description: |-
The service account to be used as credentials for all operations performed by the managed instance group on instances. The service accounts needs all permissions required to create and delete instances. By default, the service account: {projectNumber}@cloudservices.gserviceaccount.com is used.
Allowed value: The `email` field of an `IAMServiceAccount` resource.
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
type: string
namespace:
description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
type: string
type: object
statefulPolicy:
description: Stateful configuration for this Instanced Group Manager
properties:
preservedState:
properties:
disks:
additionalProperties:
properties:
autoDelete:
description: 'These stateful disks will never be deleted
during autohealing, update or VM instance recreate
operations. This flag is used to configure if the
disk should be deleted after it is no longer used
by the group, e.g. when the given instance or the
whole group is deleted. Note: disks attached in READ_ONLY
mode cannot be auto-deleted. Possible values: NEVER,
ON_PERMANENT_INSTANCE_DELETION'
type: string
type: object
description: Disks created on the instances that will be preserved
on instance delete, update, etc. This map is keyed with
the device names of the disks.
type: object
externalIps:
additionalProperties:
properties:
autoDelete:
description: 'These stateful IPs will never be released
during autohealing, update or VM instance recreate
operations. This flag is used to configure if the
IP reservation should be deleted after it is no longer
used by the group, e.g. when the given instance or
the whole group is deleted. Possible values: NEVER,
ON_PERMANENT_INSTANCE_DELETION'
type: string
type: object
description: External network IPs assigned to the instances
that will be preserved on instance delete, update, etc.
This map is keyed with the network interface name.
type: object
internalIps:
additionalProperties:
properties:
autoDelete:
description: 'These stateful IPs will never be released
during autohealing, update or VM instance recreate
operations. This flag is used to configure if the
IP reservation should be deleted after it is no longer
used by the group, e.g. when the given instance or
the whole group is deleted. Possible values: NEVER,
ON_PERMANENT_INSTANCE_DELETION'
type: string
type: object
description: Internal network IPs assigned to the instances
that will be preserved on instance delete, update, etc.
This map is keyed with the network interface name.
type: object
type: object
type: object
targetPools:
items:
oneOf:
- not:
required:
- external
required:
- name
- not:
anyOf:
- required:
- name
- required:
- namespace
required:
- external
properties:
external:
description: 'Allowed value: The `selfLink` field of a `ComputeTargetPool`
resource.'
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
type: string
namespace:
description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
type: string
type: object
type: array
targetSize:
description: The target number of running instances for this managed
instance group. You can reduce this number by using the instanceGroupManager
deleteInstances or abandonInstances methods. Resizing the group
also changes this number.
format: int64
type: integer
updatePolicy:
description: The update policy for this managed instance group.
properties:
instanceRedistributionType:
description: 'The [instance redistribution policy](/compute/docs/instance-groups/regional-migs#proactive_instance_redistribution)
for regional managed instance groups. Valid values are: - `PROACTIVE`
(default): The group attempts to maintain an even distribution
of VM instances across zones in the region. - `NONE`: For non-autoscaled
groups, proactive redistribution is disabled.'
type: string
maxSurge:
description: The maximum number of instances that can be created
above the specified `targetSize` during the update process.
This value can be either a fixed number or, if the group has
10 or more instances, a percentage. If you set a percentage,
the number of instances is rounded if necessary. The default
value for `maxSurge` is a fixed value equal to the number of
zones in which the managed instance group operates. At least
one of either `maxSurge` or `maxUnavailable` must be greater
than 0. Learn more about [`maxSurge`](/compute/docs/instance-groups/rolling-out-updates-to-managed-instance-groups#max_surge).
properties:
fixed:
description: Specifies a fixed number of VM instances. This
must be a positive integer.
format: int64
type: integer
percent:
description: Specifies a percentage of instances between 0
to 100%, inclusive. For example, specify `80` for 80%.
format: int64
type: integer
type: object
maxUnavailable:
description: 'The maximum number of instances that can be unavailable
during the update process. An instance is considered available
if all of the following conditions are satisfied: - The instance''s
[status](/compute/docs/instances/checking-instance-status) is
`RUNNING`. - If there is a [health check](/compute/docs/instance-groups/autohealing-instances-in-migs)
on the instance group, the instance''s health check status must
be `HEALTHY` at least once. If there is no health check on the
group, then the instance only needs to have a status of `RUNNING`
to be considered available. This value can be either a fixed
number or, if the group has 10 or more instances, a percentage.
If you set a percentage, the number of instances is rounded
if necessary. The default value for `maxUnavailable` is a fixed
value equal to the number of zones in which the managed instance
group operates. At least one of either `maxSurge` or `maxUnavailable`
must be greater than 0. Learn more about [`maxUnavailable`](/compute/docs/instance-groups/rolling-out-updates-to-managed-instance-groups#max_unavailable).'
properties:
fixed:
description: Specifies a fixed number of VM instances. This
must be a positive integer.
format: int64
type: integer
percent:
description: Specifies a percentage of instances between 0
to 100%, inclusive. For example, specify `80` for 80%.
format: int64
type: integer
type: object
minReadySec:
description: Minimum number of seconds to wait for after a newly
created instance becomes available. This value must be from
range [0, 3600].
format: int64
type: integer
minimalAction:
description: Minimal action to be taken on an instance. You can
specify either `RESTART` to restart existing instances or `REPLACE`
to delete and create new instances from the target template.
If you specify a `RESTART`, the Updater will attempt to perform
that action only. However, if the Updater determines that the
minimal action you specify is not enough to perform the update,
it might perform a more disruptive action.
type: string
mostDisruptiveAllowedAction:
description: Most disruptive action that is allowed to be taken
on an instance. You can specify either `NONE` to forbid any
actions, `REFRESH` to allow actions that do not need instance
restart, `RESTART` to allow actions that can be applied without
instance replacing or `REPLACE` to allow all possible actions.
If the Updater determines that the minimal update action needed
is more disruptive than most disruptive allowed action you specify
it will not perform the update at all.
type: string
replacementMethod:
description: 'What action should be used to replace instances.
See minimal_action.REPLACE Possible values: SUBSTITUTE, RECREATE'
type: string
type:
description: The type of update process. You can specify either
`PROACTIVE` so that the instance group manager proactively executes
actions in order to bring instances to their target versions
or `OPPORTUNISTIC` so that no action is proactively executed
but the update will be performed as part of other actions (for
example, resizes or `recreateInstances` calls).
type: string
type: object
versions:
description: Specifies the instance templates used by this managed
instance group to create instances. Each version is defined by an
`instanceTemplate` and a `name`. Every version can appear at most
once per instance group. This field overrides the top-level `instanceTemplate`
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).
Exactly one `version` must leave the `targetSize` field unset. That
version will be applied to all remaining instances. For more information,
read about [canary updates](/compute/docs/instance-groups/rolling-out-updates-to-managed-instance-groups#starting_a_canary_update).
items:
properties:
instanceTemplateRef:
oneOf:
- not:
required:
- external
required:
- name
- not:
anyOf:
- required:
- name
- required:
- namespace
required:
- external
properties:
external:
description: |-
The URL of the instance template that is specified for this managed instance group. The group uses this template to create new instances in the managed instance group until the `targetSize` for this version is reached. The templates for existing instances in the group do not change unless you run `recreateInstances`, run `applyUpdatesToInstances`, or set the group's `updatePolicy.type` to `PROACTIVE`; in those cases, existing instances are updated until the `targetSize` for this version is reached.
Allowed value: The `selfLink` field of a `ComputeInstanceTemplate` resource.
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
type: string
namespace:
description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
type: string
type: object
name:
description: Name of the version. Unique among all versions
in the scope of this managed instance group.
type: string
targetSize:
description: 'Specifies the intended number of instances to
be created from the `instanceTemplate`. The final number of
instances created from the template will be equal to: - If
expressed as a fixed number, the minimum of either `targetSize.fixed`
or `instanceGroupManager.targetSize` is used. - if expressed
as a `percent`, the `targetSize` would be `(targetSize.percent/100
* InstanceGroupManager.targetSize)` If there is a remainder,
the number is rounded. If unset, this version will update
any remaining instances not updated by another `version`.
Read [Starting a canary update](/compute/docs/instance-groups/rolling-out-updates-to-managed-instance-groups#starting_a_canary_update)
for more information.'
properties:
calculated:
description: '[Output Only] Absolute value of VM instances
calculated based on the specific mode. - If the value
is `fixed`, then the `calculated` value is equal to the
`fixed` value. - If the value is a `percent`, then the
`calculated` value is `percent`/100 * `targetSize`. For
example, the `calculated` value of a 80% of a managed
instance group with 150 instances would be (80/100 * 150)
= 120 VM instances. If there is a remainder, the number
is rounded.'
format: int64
type: integer
fixed:
description: Specifies a fixed number of VM instances. This
must be a positive integer.
format: int64
type: integer
percent:
description: Specifies a percentage of instances between
0 to 100%, inclusive. For example, specify `80` for 80%.
format: int64
type: integer
type: object
type: object
type: array
required:
- projectRef
- targetSize
type: object
status:
properties:
conditions:
description: Conditions represent the latest available observation
of the resource's current state.
items:
properties:
lastTransitionTime:
description: Last time the condition transitioned from one status
to another.
type: string
message:
description: Human-readable message indicating details about
last transition.
type: string
reason:
description: Unique, one-word, CamelCase reason for the condition's
last transition.
type: string
status:
description: Status is the status of the condition. Can be True,
False, Unknown.
type: string
type:
description: Type is the type of the condition.
type: string
type: object
type: array
creationTimestamp:
description: The creation timestamp for this managed instance group
in \[RFC3339\](https://www.ietf.org/rfc/rfc3339.txt) text format.
type: string
currentActions:
description: '[Output Only] The list of instance actions and the number
of instances in this managed instance group that are scheduled for
each of those actions.'
properties:
abandoning:
description: '[Output Only] The total number of instances in the
managed instance group that are scheduled to be abandoned. Abandoning
an instance removes it from the managed instance group without
deleting it.'
format: int64
type: integer
creating:
description: '[Output Only] The number of instances in the managed
instance group that are scheduled to be created or are currently
being created. If the group fails to create any of these instances,
it tries again until it creates the instance successfully. If
you have disabled creation retries, this field will not be populated;
instead, the `creatingWithoutRetries` field will be populated.'
format: int64
type: integer
creatingWithoutRetries:
description: '[Output Only] The number of instances that the managed
instance group will attempt to create. The group attempts to
create each instance only once. If the group fails to create
any of these instances, it decreases the group''s `targetSize`
value accordingly.'
format: int64
type: integer
deleting:
description: '[Output Only] The number of instances in the managed
instance group that are scheduled to be deleted or are currently
being deleted.'
format: int64
type: integer
none:
description: '[Output Only] The number of instances in the managed
instance group that are running and have no scheduled actions.'
format: int64
type: integer
recreating:
description: '[Output Only] The number of instances in the managed
instance group that are scheduled to be recreated or are currently
being being recreated. Recreating an instance deletes the existing
root persistent disk and creates a new disk from the image that
is defined in the instance template.'
format: int64
type: integer
refreshing:
description: '[Output Only] The number of instances in the managed
instance group that are being reconfigured with properties that
do not require a restart or a recreate action. For example,
setting or removing target pools for the instance.'
format: int64
type: integer
restarting:
description: '[Output Only] The number of instances in the managed
instance group that are scheduled to be restarted or are currently
being restarted.'
format: int64
type: integer
verifying:
description: '[Output Only] The number of instances in the managed
instance group that are being verified. See the `managedInstances[].currentAction`
property in the `listManagedInstances` method documentation.'
format: int64
type: integer
type: object
fingerprint:
description: Fingerprint of this resource. This field may be used
in optimistic locking. It will be ignored when inserting an InstanceGroupManager.
An up-to-date fingerprint must be provided in order to update the
InstanceGroupManager, otherwise the request will fail with error
`412 conditionNotMet`. To see the latest fingerprint, make a `get()`
request to retrieve an InstanceGroupManager.
type: string
id:
description: '[Output Only] A unique identifier for this resource
type. The server generates this identifier.'
format: int64
type: integer
instanceGroup:
description: '[Output Only] The URL of the Instance Group resource.'
type: string
observedGeneration:
description: ObservedGeneration is the generation of the resource
that was most recently observed by the Config Connector controller.
If this is equal to metadata.generation, then that means that the
current reported status reflects the most recent desired state of
the resource.
type: integer
region:
description: '[Output Only] The URL of the [region](/compute/docs/regions-zones/#available)
where the managed instance group resides (for regional resources).'
type: string
selfLink:
description: '[Output Only] The URL for this managed instance group.
The server defines this URL.'
type: string
status:
description: '[Output Only] The status of this managed instance group.'
properties:
autoscaler:
description: '[Output Only] The URL of the [Autoscaler](/compute/docs/autoscaler/)
that targets this instance group manager.'
type: string
isStable:
description: '[Output Only] A bit indicating whether the managed
instance group is in a stable state. A stable state means that:
none of the instances in the managed instance group is currently
undergoing any type of change (for example, creation, restart,
or deletion); no future changes are scheduled for instances
in the managed instance group; and the managed instance group
itself is not being modified.'
type: boolean
stateful:
description: '[Output Only] Stateful status of the given Instance
Group Manager.'
properties:
hasStatefulConfig:
description: '[Output Only] A bit indicating whether the managed
instance group has stateful configuration, that is, if you
have configured any items in a stateful policy or in per-instance
configs. The group might report that it has no stateful
config even when there is still some preserved state on
a managed instance, for example, if you have deleted all
PICs but not yet applied those deletions.'
type: boolean
isStateful:
description: '[Output Only] A bit indicating whether the managed
instance group has stateful configuration, that is, if you
have configured any items in a stateful policy or in per-instance
configs. The group might report that it has no stateful
config even when there is still some preserved state on
a managed instance, for example, if you have deleted all
PICs but not yet applied those deletions. This field is
deprecated in favor of has_stateful_config.'
type: boolean
perInstanceConfigs:
description: '[Output Only] Status of per-instance configs
on the instance.'
properties:
allEffective:
description: A bit indicating if all of the group's per-instance
configs (listed in the output of a listPerInstanceConfigs
API call) have status `EFFECTIVE` or there are no per-instance-configs.
type: boolean
type: object
type: object
versionTarget:
description: '[Output Only] A status of consistency of Instances''
versions with their target version specified by `version` field
on Instance Group Manager.'
properties:
isReached:
description: '[Output Only] A bit indicating whether version
target has been reached in this managed instance group,
i.e. all instances are in their target version. Instances''
target version are specified by `version` field on Instance
Group Manager.'
type: boolean
type: object
type: object
updatePolicy:
properties:
maxSurge:
properties:
calculated:
description: '[Output Only] Absolute value of VM instances
calculated based on the specific mode. - If the value is
`fixed`, then the `calculated` value is equal to the `fixed`
value. - If the value is a `percent`, then the `calculated`
value is `percent`/100 * `targetSize`. For example, the
`calculated` value of a 80% of a managed instance group
with 150 instances would be (80/100 * 150) = 120 VM instances.
If there is a remainder, the number is rounded.'
format: int64
type: integer
type: object
maxUnavailable:
properties:
calculated:
description: '[Output Only] Absolute value of VM instances
calculated based on the specific mode. - If the value is
`fixed`, then the `calculated` value is equal to the `fixed`
value. - If the value is a `percent`, then the `calculated`
value is `percent`/100 * `targetSize`. For example, the
`calculated` value of a 80% of a managed instance group
with 150 instances would be (80/100 * 150) = 120 VM instances.
If there is a remainder, the number is rounded.'
format: int64
type: integer
type: object
type: object
zone:
description: '[Output Only] The URL of a [zone](/compute/docs/regions-zones/#available)
where the managed instance group is located (for zonal resources).'
type: string
type: object
required:
- spec
type: object
served: true
storage: true
subresources:
status: {}
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []