crds/compute_v1beta1_computeinstance.yaml (1,031 lines of code) (raw):
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
cnrm.cloud.google.com/version: 1.128.0
creationTimestamp: null
labels:
cnrm.cloud.google.com/managed-by-kcc: "true"
cnrm.cloud.google.com/stability-level: stable
cnrm.cloud.google.com/system: "true"
cnrm.cloud.google.com/tf2crd: "true"
name: computeinstances.compute.cnrm.cloud.google.com
spec:
group: compute.cnrm.cloud.google.com
names:
categories:
- gcp
kind: ComputeInstance
plural: computeinstances
shortNames:
- gcpcomputeinstance
- gcpcomputeinstances
singular: computeinstance
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:
anyOf:
- required:
- bootDisk
- machineType
- networkInterface
- zone
- required:
- instanceTemplateRef
- zone
properties:
advancedMachineFeatures:
description: Controls for advanced machine-related behavior features.
properties:
enableNestedVirtualization:
description: Whether to enable nested virtualization or not.
type: boolean
threadsPerCore:
description: The number of threads per physical core. To disable
simultaneous multithreading (SMT) set this to 1. If unset, the
maximum number of threads supported per core by the underlying
processor is assumed.
type: integer
visibleCoreCount:
description: The number of physical cores to expose to an instance.
Multiply by the number of threads per core to compute the total
number of virtual CPUs to expose to the instance. If unset,
the number of cores is inferred from the instance\'s nominal
CPU count and the underlying platform\'s SMT width.
type: integer
type: object
attachedDisk:
description: List of disks attached to the instance.
items:
properties:
deviceName:
description: Name with which the attached disk is accessible
under /dev/disk/by-id/.
type: string
diskEncryptionKeyRaw:
description: A 256-bit customer-supplied encryption key, encoded
in RFC 4648 base64 to encrypt this disk. Only one of kms_key_self_link
and disk_encryption_key_raw may be set.
oneOf:
- not:
required:
- valueFrom
required:
- value
- not:
required:
- value
required:
- valueFrom
properties:
value:
description: Value of the field. Cannot be used if 'valueFrom'
is specified.
type: string
valueFrom:
description: Source for the field's value. Cannot be used
if 'value' is specified.
properties:
secretKeyRef:
description: Reference to a value with the given key
in the given Secret in the resource's namespace.
properties:
key:
description: Key that identifies the value to be
extracted.
type: string
name:
description: Name of the Secret to extract a value
from.
type: string
required:
- name
- key
type: object
type: object
type: object
diskEncryptionKeySha256:
description: The RFC 4648 base64 encoded SHA-256 hash of the
customer-supplied encryption key that protects this resource.
type: string
kmsKeyRef:
oneOf:
- not:
required:
- external
required:
- name
- not:
anyOf:
- required:
- name
- required:
- namespace
required:
- external
properties:
external:
description: 'Allowed value: The `selfLink` field of a `KMSCryptoKey`
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
mode:
description: Read/write mode for the disk. One of "READ_ONLY"
or "READ_WRITE".
type: string
sourceDiskRef:
oneOf:
- not:
required:
- external
required:
- name
- not:
anyOf:
- required:
- name
- required:
- namespace
required:
- external
properties:
external:
description: 'Allowed value: The `selfLink` field of a `ComputeDisk`
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
required:
- sourceDiskRef
type: object
type: array
bootDisk:
description: Immutable. The boot disk for the instance.
properties:
autoDelete:
description: Immutable. Whether the disk will be auto-deleted
when the instance is deleted.
type: boolean
deviceName:
description: Immutable. Name with which attached disk will be
accessible under /dev/disk/by-id/.
type: string
diskEncryptionKeyRaw:
description: Immutable. A 256-bit customer-supplied encryption
key, encoded in RFC 4648 base64 to encrypt this disk. Only one
of kms_key_self_link and disk_encryption_key_raw may be set.
oneOf:
- not:
required:
- valueFrom
required:
- value
- not:
required:
- value
required:
- valueFrom
properties:
value:
description: Value of the field. Cannot be used if 'valueFrom'
is specified.
type: string
valueFrom:
description: Source for the field's value. Cannot be used
if 'value' is specified.
properties:
secretKeyRef:
description: Reference to a value with the given key in
the given Secret in the resource's namespace.
properties:
key:
description: Key that identifies the value to be extracted.
type: string
name:
description: Name of the Secret to extract a value
from.
type: string
required:
- name
- key
type: object
type: object
type: object
diskEncryptionKeySha256:
description: The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied
encryption key that protects this resource.
type: string
initializeParams:
description: Immutable. Parameters with which a disk was created
alongside the instance.
properties:
labels:
description: Immutable. A set of key/value label pairs assigned
to the disk.
type: object
x-kubernetes-preserve-unknown-fields: true
resourceManagerTags:
description: Immutable. A map of resource manager tags. Resource
manager tag keys and values have the same definition as
resource manager tags. Keys must be in the format tagKeys/{tag_key_id},
and values are in the format tagValues/456. The field is
ignored (both PUT & PATCH) when empty.
type: object
x-kubernetes-preserve-unknown-fields: true
size:
description: Immutable. The size of the image in gigabytes.
type: integer
sourceImageRef:
description: Immutable. The image from which to initialize
this disk.
oneOf:
- not:
required:
- external
required:
- name
- not:
anyOf:
- required:
- name
- required:
- namespace
required:
- external
properties:
external:
description: 'Allowed value: The `selfLink` field of a
`ComputeImage` 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:
description: Immutable. The Google Compute Engine disk type.
Such as pd-standard, pd-ssd or pd-balanced.
type: string
type: object
kmsKeyRef:
oneOf:
- not:
required:
- external
required:
- name
- not:
anyOf:
- required:
- name
- required:
- namespace
required:
- external
properties:
external:
description: 'Allowed value: The `selfLink` field of a `KMSCryptoKey`
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
mode:
description: Immutable. Read/write mode for the disk. One of "READ_ONLY"
or "READ_WRITE".
type: string
sourceDiskRef:
description: Immutable. The source disk used to create this disk.
oneOf:
- not:
required:
- external
required:
- name
- not:
anyOf:
- required:
- name
- required:
- namespace
required:
- external
properties:
external:
description: 'Allowed value: The `selfLink` field of a `ComputeDisk`
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: object
canIpForward:
description: Whether sending and receiving of packets with non-matching
source or destination IPs is allowed.
type: boolean
confidentialInstanceConfig:
description: Immutable. The Confidential VM config being used by the
instance. on_host_maintenance has to be set to TERMINATE or this
will fail to create.
properties:
enableConfidentialCompute:
description: Defines whether the instance should have confidential
compute enabled.
type: boolean
required:
- enableConfidentialCompute
type: object
deletionProtection:
description: Whether deletion protection is enabled on this instance.
type: boolean
description:
description: Immutable. A brief description of the resource.
type: string
desiredStatus:
description: Desired status of the instance. Either "RUNNING" or "TERMINATED".
type: string
enableDisplay:
description: Whether the instance has virtual displays enabled.
type: boolean
guestAccelerator:
description: Immutable. List of the type and count of accelerator
cards attached to the instance.
items:
properties:
count:
description: Immutable. The number of the guest accelerator
cards exposed to this instance.
type: integer
type:
description: Immutable. The accelerator type resource exposed
to this instance. E.g. nvidia-tesla-t4.
type: string
required:
- count
- type
type: object
type: array
hostname:
description: Immutable. A custom hostname for the instance. Must be
a fully qualified DNS name and RFC-1035-valid. Valid format is a
series of labels 1-63 characters long matching the regular expression
[a-z]([-a-z0-9]*[a-z0-9]), concatenated with periods. The entire
hostname must not exceed 253 characters. Changing this forces a
new resource to be created.
type: string
instanceTemplateRef:
oneOf:
- not:
required:
- external
required:
- name
- not:
anyOf:
- required:
- name
- required:
- namespace
required:
- external
properties:
external:
description: '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
machineType:
description: The machine type to create.
type: string
metadata:
items:
properties:
key:
type: string
value:
type: string
required:
- key
- value
type: object
type: array
metadataStartupScript:
description: Immutable. Metadata startup scripts made available within
the instance.
type: string
minCpuPlatform:
description: The minimum CPU platform specified for the VM instance.
type: string
networkInterface:
description: Immutable. The networks attached to the instance.
items:
not:
required:
- networkIp
- networkIpRef
properties:
accessConfig:
description: Access configurations, i.e. IPs via which this
instance can be accessed via the Internet.
items:
properties:
natIpRef:
oneOf:
- not:
required:
- external
required:
- name
- not:
anyOf:
- required:
- name
- required:
- namespace
required:
- external
properties:
external:
description: 'Allowed value: The `address` field of
a `ComputeAddress` 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
networkTier:
description: The networking tier used for configuring
this instance. One of PREMIUM or STANDARD.
type: string
publicPtrDomainName:
description: The DNS domain name for the public PTR record.
type: string
type: object
type: array
aliasIpRange:
description: An array of alias IP ranges for this network interface.
items:
properties:
ipCidrRange:
description: The IP CIDR range represented by this alias
IP range.
type: string
subnetworkRangeName:
description: The subnetwork secondary range name specifying
the secondary range from which to allocate the IP CIDR
range for this alias IP range.
type: string
required:
- ipCidrRange
type: object
type: array
internalIpv6PrefixLength:
description: The prefix length of the primary internal IPv6
range.
type: integer
ipv6AccessConfig:
description: An array of IPv6 access configurations for this
interface. Currently, only one IPv6 access config, DIRECT_IPV6,
is supported. If there is no ipv6AccessConfig specified, then
this instance will have no external IPv6 Internet access.
items:
properties:
externalIpv6:
description: Immutable. The first IPv6 address of the
external IPv6 range associated with this instance, prefix
length is stored in externalIpv6PrefixLength in ipv6AccessConfig.
To use a static external IP address, it must be unused
and in the same region as the instance's zone. If not
specified, Google Cloud will automatically assign an
external IPv6 address from the instance's subnetwork.
type: string
externalIpv6PrefixLength:
description: Immutable. The prefix length of the external
IPv6 range.
type: string
name:
description: Immutable. The name of this access configuration.
In ipv6AccessConfigs, the recommended name is External
IPv6.
type: string
networkTier:
description: The service-level to be provided for IPv6
traffic when the subnet has an external subnet. Only
PREMIUM tier is valid for IPv6.
type: string
publicPtrDomainName:
description: The domain name to be used when creating
DNSv6 records for the external IPv6 ranges.
type: string
required:
- networkTier
type: object
type: array
ipv6AccessType:
description: One of EXTERNAL, INTERNAL to indicate whether the
IP can be accessed from the Internet. This field is always
inherited from its subnetwork.
type: string
ipv6Address:
description: An IPv6 internal network address for this network
interface. If not specified, Google Cloud will automatically
assign an internal IPv6 address from the instance's subnetwork.
type: string
name:
description: The name of the interface.
type: string
networkIp:
description: DEPRECATED. Although this field is still available,
there is limited support. We recommend that you use `spec.networkInterface.networkIpRef`
instead.
type: string
networkIpRef:
oneOf:
- not:
required:
- external
required:
- name
- kind
- not:
anyOf:
- required:
- name
- required:
- namespace
- required:
- kind
required:
- external
properties:
external:
description: 'Allowed value: The `address` field of a `ComputeAddress`
resource.'
type: string
kind:
description: 'Kind of the referent. Allowed values: ComputeAddress'
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
networkRef:
oneOf:
- not:
required:
- external
required:
- name
- not:
anyOf:
- required:
- name
- required:
- namespace
required:
- external
properties:
external:
description: 'Allowed value: The `selfLink` field of a `ComputeNetwork`
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
nicType:
description: Immutable. The type of vNIC to be used on this
interface. Possible values:GVNIC, VIRTIO_NET.
type: string
queueCount:
description: Immutable. The networking queue count that's specified
by users for the network interface. Both Rx and Tx queues
will be set to this number. It will be empty if not specified.
type: integer
stackType:
description: The stack type for this network interface to identify
whether the IPv6 feature is enabled or not. If not specified,
IPV4_ONLY will be used.
type: string
subnetworkProject:
description: The project in which the subnetwork belongs.
type: string
subnetworkRef:
oneOf:
- not:
required:
- external
required:
- name
- not:
anyOf:
- required:
- name
- required:
- namespace
required:
- external
properties:
external:
description: 'Allowed value: The `selfLink` field of a `ComputeSubnetwork`
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: object
type: array
networkPerformanceConfig:
description: Immutable. Configures network performance settings for
the instance. If not specified, the instance will be created with
its default network performance configuration.
properties:
totalEgressBandwidthTier:
description: Immutable. The egress bandwidth tier to enable. Possible
values:TIER_1, DEFAULT.
type: string
required:
- totalEgressBandwidthTier
type: object
params:
description: Immutable. Stores additional params passed with the request,
but not persisted as part of resource payload.
properties:
resourceManagerTags:
description: Immutable. A map of resource manager tags. Resource
manager tag keys and values have the same definition as resource
manager tags. Keys must be in the format tagKeys/{tag_key_id},
and values are in the format tagValues/456. The field is ignored
(both PUT & PATCH) when empty.
type: object
x-kubernetes-preserve-unknown-fields: true
type: object
reservationAffinity:
description: Immutable. Specifies the reservations that this instance
can consume from.
properties:
specificReservation:
description: Immutable. Specifies the label selector for the reservation
to use.
properties:
key:
description: Immutable. Corresponds to the label key of a
reservation resource. To target a SPECIFIC_RESERVATION by
name, specify compute.googleapis.com/reservation-name as
the key and specify the name of your reservation as the
only value.
type: string
values:
description: Immutable. Corresponds to the label values of
a reservation resource.
items:
type: string
type: array
required:
- key
- values
type: object
type:
description: Immutable. The type of reservation from which this
instance can consume resources.
type: string
required:
- type
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
resourcePolicies:
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 `ComputeResourcePolicy`
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
scheduling:
description: The scheduling strategy being used by the instance.
properties:
automaticRestart:
description: Specifies if the instance should be restarted if
it was terminated by Compute Engine (not a user).
type: boolean
instanceTerminationAction:
description: Specifies the action GCE should take when SPOT VM
is preempted.
type: string
localSsdRecoveryTimeout:
description: |-
Immutable. Specifies the maximum amount of time a Local Ssd Vm should wait while
recovery of the Local Ssd state is attempted. Its value should be in
between 0 and 168 hours with hour granularity and the default value being 1
hour.
properties:
nanos:
description: |-
Immutable. Span of time that's a fraction of a second at nanosecond
resolution. Durations less than one second are represented
with a 0 seconds field and a positive nanos field. Must
be from 0 to 999,999,999 inclusive.
type: integer
seconds:
description: |-
Immutable. Span of time at a resolution of a second.
Must be from 0 to 315,576,000,000 inclusive.
type: integer
required:
- seconds
type: object
maintenanceInterval:
description: 'Specifies the frequency of planned maintenance events.
The accepted values are: PERIODIC.'
type: string
maxRunDuration:
description: Immutable. The timeout for new network connections
to hosts.
properties:
nanos:
description: |-
Immutable. Span of time that's a fraction of a second at nanosecond
resolution. Durations less than one second are represented
with a 0 seconds field and a positive nanos field. Must
be from 0 to 999,999,999 inclusive.
type: integer
seconds:
description: |-
Immutable. Span of time at a resolution of a second.
Must be from 0 to 315,576,000,000 inclusive.
type: integer
required:
- seconds
type: object
minNodeCpus:
type: integer
nodeAffinities:
items:
properties:
value:
type: object
x-kubernetes-preserve-unknown-fields: true
type: object
type: array
onHostMaintenance:
description: Describes maintenance behavior for the instance.
One of MIGRATE or TERMINATE,.
type: string
preemptible:
description: Immutable. Whether the instance is preemptible.
type: boolean
provisioningModel:
description: Immutable. Whether the instance is spot. If this
is set as SPOT.
type: string
type: object
scratchDisk:
description: Immutable. The scratch disks attached to the instance.
items:
properties:
interface:
description: The disk interface used for attaching this disk.
One of SCSI or NVME.
type: string
size:
description: Immutable. The size of the disk in gigabytes. One
of 375 or 3000.
type: integer
required:
- interface
type: object
type: array
serviceAccount:
description: The service account to attach to the instance.
properties:
scopes:
description: A list of service scopes.
items:
type: string
type: array
serviceAccountRef:
oneOf:
- not:
required:
- external
required:
- name
- not:
anyOf:
- required:
- name
- required:
- namespace
required:
- external
properties:
external:
description: '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
required:
- scopes
type: object
shieldedInstanceConfig:
description: The shielded vm config being used by the instance.
properties:
enableIntegrityMonitoring:
description: Whether integrity monitoring is enabled for the instance.
type: boolean
enableSecureBoot:
description: Whether secure boot is enabled for the instance.
type: boolean
enableVtpm:
description: Whether the instance uses vTPM.
type: boolean
type: object
tags:
description: The list of tags attached to the instance.
items:
type: string
type: array
zone:
description: Immutable. The zone of the instance. If self_link is
provided, this value is ignored. If neither self_link nor zone are
provided, the provider zone is used.
type: string
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
cpuPlatform:
description: The CPU platform used by this instance.
type: string
currentStatus:
description: "\n\t\t\t\t\tCurrent status of the instance.\n\t\t\t\t\tThis
could be one of the following values: PROVISIONING, STAGING, RUNNING,
STOPPING, SUSPENDING, SUSPENDED, REPAIRING, and TERMINATED.\n\t\t\t\t\tFor
more information about the status of the instance, see [Instance
life cycle](https://cloud.google.com/compute/docs/instances/instance-life-cycle)."
type: string
instanceId:
description: The server-assigned unique identifier of this instance.
type: string
labelFingerprint:
description: The unique fingerprint of the labels.
type: string
metadataFingerprint:
description: The unique fingerprint of the metadata.
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
selfLink:
description: The URI of the created resource.
type: string
tagsFingerprint:
description: The unique fingerprint of the tags.
type: string
type: object
required:
- spec
type: object
served: true
storage: true
subresources:
status: {}
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []