Text file
src/edge-infra.dev/test/fixtures/crds/gcp/compute.cnrm.cloud.google.com_computeinstancetemplates.yaml
1---
2apiVersion: apiextensions.k8s.io/v1
3kind: CustomResourceDefinition
4metadata:
5 annotations:
6 controller-gen.kubebuilder.io/version: (unknown)
7 name: computeinstancetemplates.compute.cnrm.cloud.google.com
8spec:
9 group: compute.cnrm.cloud.google.com
10 names:
11 kind: ComputeInstanceTemplate
12 listKind: ComputeInstanceTemplateList
13 plural: computeinstancetemplates
14 singular: computeinstancetemplate
15 scope: Namespaced
16 versions:
17 - name: v1beta1
18 schema:
19 openAPIV3Schema:
20 description: ComputeInstanceTemplate 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 advancedMachineFeatures:
42 description: Immutable. Controls for advanced machine-related behavior
43 features.
44 properties:
45 enableNestedVirtualization:
46 description: Immutable. Whether to enable nested virtualization
47 or not.
48 type: boolean
49 threadsPerCore:
50 description: Immutable. The number of threads per physical core.
51 To disable simultaneous multithreading (SMT) set this to 1.
52 If unset, the maximum number of threads supported per core by
53 the underlying processor is assumed.
54 type: integer
55 visibleCoreCount:
56 description: Immutable. The number of physical cores to expose
57 to an instance. Multiply by the number of threads per core to
58 compute the total number of virtual CPUs to expose to the instance.
59 If unset, the number of cores is inferred from the instance\'s
60 nominal CPU count and the underlying platform\'s SMT width.
61 type: integer
62 type: object
63 canIpForward:
64 description: Immutable. Whether to allow sending and receiving of
65 packets with non-matching source or destination IPs. This defaults
66 to false.
67 type: boolean
68 confidentialInstanceConfig:
69 description: Immutable. The Confidential VM config being used by the
70 instance. on_host_maintenance has to be set to TERMINATE or this
71 will fail to create.
72 properties:
73 enableConfidentialCompute:
74 description: Immutable. Defines whether the instance should have
75 confidential compute enabled.
76 type: boolean
77 required:
78 - enableConfidentialCompute
79 type: object
80 description:
81 description: Immutable. A brief description of this resource.
82 type: string
83 disk:
84 description: Immutable. Disks to attach to instances created from
85 this template. This can be specified multiple times for multiple
86 disks.
87 items:
88 properties:
89 autoDelete:
90 description: Immutable. Whether or not the disk should be auto-deleted.
91 This defaults to true.
92 type: boolean
93 boot:
94 description: Immutable. Indicates that this is a boot disk.
95 type: boolean
96 deviceName:
97 description: Immutable. A unique device name that is reflected
98 into the /dev/ tree of a Linux operating system running within
99 the instance. If not specified, the server chooses a default
100 device name to apply to this disk.
101 type: string
102 diskEncryptionKey:
103 description: Immutable. Encrypts or decrypts a disk using a
104 customer-supplied encryption key.
105 properties:
106 kmsKeyRef:
107 properties:
108 external:
109 description: The external name of the referenced resource
110 type: string
111 kind:
112 description: Kind of the referent.
113 type: string
114 name:
115 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
116 type: string
117 namespace:
118 description: 'Namespace of the referent. More info:
119 https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
120 type: string
121 type: object
122 required:
123 - kmsKeyRef
124 type: object
125 diskName:
126 description: Immutable. Name of the disk. When not provided,
127 this defaults to the name of the instance.
128 type: string
129 diskSizeGb:
130 description: Immutable. The size of the image in gigabytes.
131 If not specified, it will inherit the size of its base image.
132 For SCRATCH disks, the size must be one of 375 or 3000 GB,
133 with a default of 375 GB.
134 type: integer
135 diskType:
136 description: Immutable. The Google Compute Engine disk type.
137 Such as "pd-ssd", "local-ssd", "pd-balanced" or "pd-standard".
138 type: string
139 interface:
140 description: Immutable. Specifies the disk interface to use
141 for attaching this disk.
142 type: string
143 labels:
144 additionalProperties:
145 type: string
146 description: Immutable. A set of key/value label pairs to assign
147 to disks,.
148 type: object
149 mode:
150 description: Immutable. The mode in which to attach this disk,
151 either READ_WRITE or READ_ONLY. If you are attaching or creating
152 a boot disk, this must read-write mode.
153 type: string
154 resourcePolicies:
155 items:
156 properties:
157 external:
158 description: The external name of the referenced resource
159 type: string
160 kind:
161 description: Kind of the referent.
162 type: string
163 name:
164 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
165 type: string
166 namespace:
167 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
168 type: string
169 type: object
170 type: array
171 sourceDiskRef:
172 properties:
173 external:
174 description: The external name of the referenced resource
175 type: string
176 kind:
177 description: Kind of the referent.
178 type: string
179 name:
180 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
181 type: string
182 namespace:
183 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
184 type: string
185 type: object
186 sourceImageEncryptionKey:
187 description: |-
188 Immutable. The customer-supplied encryption key of the source
189 image. Required if the source image is protected by a
190 customer-supplied encryption key.
191
192
193 Instance templates do not store customer-supplied
194 encryption keys, so you cannot create disks for
195 instances in a managed instance group if the source
196 images are encrypted with your own keys.
197 properties:
198 kmsKeySelfLinkRef:
199 description: |-
200 The self link of the encryption key that is stored in Google Cloud
201 KMS.
202 properties:
203 external:
204 description: The external name of the referenced resource
205 type: string
206 kind:
207 description: Kind of the referent.
208 type: string
209 name:
210 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
211 type: string
212 namespace:
213 description: 'Namespace of the referent. More info:
214 https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
215 type: string
216 type: object
217 kmsKeyServiceAccountRef:
218 description: |-
219 The service account being used for the encryption request for the
220 given KMS key. If absent, the Compute Engine default service account
221 is used.
222 properties:
223 external:
224 description: The external name of the referenced resource
225 type: string
226 kind:
227 description: Kind of the referent.
228 type: string
229 name:
230 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
231 type: string
232 namespace:
233 description: 'Namespace of the referent. More info:
234 https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
235 type: string
236 type: object
237 required:
238 - kmsKeySelfLinkRef
239 type: object
240 sourceImageRef:
241 properties:
242 external:
243 description: The external name of the referenced resource
244 type: string
245 kind:
246 description: Kind of the referent.
247 type: string
248 name:
249 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
250 type: string
251 namespace:
252 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
253 type: string
254 type: object
255 sourceSnapshotEncryptionKey:
256 description: Immutable. The customer-supplied encryption key
257 of the source snapshot.
258 properties:
259 kmsKeySelfLinkRef:
260 description: |-
261 The self link of the encryption key that is stored in Google Cloud
262 KMS.
263 properties:
264 external:
265 description: The external name of the referenced resource
266 type: string
267 kind:
268 description: Kind of the referent.
269 type: string
270 name:
271 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
272 type: string
273 namespace:
274 description: 'Namespace of the referent. More info:
275 https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
276 type: string
277 type: object
278 kmsKeyServiceAccountRef:
279 description: |-
280 The service account being used for the encryption request for the
281 given KMS key. If absent, the Compute Engine default service account
282 is used.
283 properties:
284 external:
285 description: The external name of the referenced resource
286 type: string
287 kind:
288 description: Kind of the referent.
289 type: string
290 name:
291 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
292 type: string
293 namespace:
294 description: 'Namespace of the referent. More info:
295 https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
296 type: string
297 type: object
298 required:
299 - kmsKeySelfLinkRef
300 type: object
301 sourceSnapshotRef:
302 description: |-
303 The source snapshot to create this disk. When creating a new
304 instance, one of initializeParams.sourceSnapshot,
305 initializeParams.sourceImage, or disks.source is required except for
306 local SSD.
307 properties:
308 external:
309 description: The external name of the referenced resource
310 type: string
311 kind:
312 description: Kind of the referent.
313 type: string
314 name:
315 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
316 type: string
317 namespace:
318 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
319 type: string
320 type: object
321 type:
322 description: Immutable. The type of Google Compute Engine disk,
323 can be either "SCRATCH" or "PERSISTENT".
324 type: string
325 type: object
326 type: array
327 enableDisplay:
328 description: 'Immutable. Enable Virtual Displays on this instance.
329 Note: allow_stopping_for_update must be set to true in order to
330 update this field.'
331 type: boolean
332 guestAccelerator:
333 description: Immutable. List of the type and count of accelerator
334 cards attached to the instance.
335 items:
336 properties:
337 count:
338 description: Immutable. The number of the guest accelerator
339 cards exposed to this instance.
340 type: integer
341 type:
342 description: Immutable. The accelerator type resource to expose
343 to this instance. E.g. nvidia-tesla-k80.
344 type: string
345 required:
346 - count
347 - type
348 type: object
349 type: array
350 instanceDescription:
351 description: Immutable. A description of the instance.
352 type: string
353 machineType:
354 description: Immutable. The machine type to create. To create a machine
355 with a custom type (such as extended memory), format the value like
356 custom-VCPUS-MEM_IN_MB like custom-6-20480 for 6 vCPU and 20GB of
357 RAM.
358 type: string
359 metadata:
360 items:
361 properties:
362 key:
363 type: string
364 value:
365 type: string
366 required:
367 - key
368 - value
369 type: object
370 type: array
371 metadataStartupScript:
372 description: Immutable. An alternative to using the startup-script
373 metadata key, mostly to match the compute_instance resource. This
374 replaces the startup-script metadata key on the created instance
375 and thus the two mechanisms are not allowed to be used simultaneously.
376 type: string
377 minCpuPlatform:
378 description: Immutable. Specifies a minimum CPU platform. Applicable
379 values are the friendly names of CPU platforms, such as Intel Haswell
380 or Intel Skylake.
381 type: string
382 namePrefix:
383 description: Immutable. Creates a unique name beginning with the specified
384 prefix. Conflicts with name.
385 type: string
386 networkInterface:
387 description: Immutable. Networks to attach to instances created from
388 this template. This can be specified multiple times for multiple
389 networks.
390 items:
391 properties:
392 accessConfig:
393 items:
394 properties:
395 natIpRef:
396 properties:
397 external:
398 description: The external name of the referenced resource
399 type: string
400 kind:
401 description: Kind of the referent.
402 type: string
403 name:
404 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
405 type: string
406 namespace:
407 description: 'Namespace of the referent. More info:
408 https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
409 type: string
410 type: object
411 networkTier:
412 description: 'Immutable. The networking tier used for
413 configuring this instance template. This field can take
414 the following values: PREMIUM, STANDARD, FIXED_STANDARD.
415 If this field is not specified, it is assumed to be
416 PREMIUM.'
417 type: string
418 publicPtrDomainName:
419 description: The DNS domain name for the public PTR record.The
420 DNS domain name for the public PTR record.
421 type: string
422 type: object
423 type: array
424 aliasIpRange:
425 description: Immutable. An array of alias IP ranges for this
426 network interface. Can only be specified for network interfaces
427 on subnet-mode networks.
428 items:
429 properties:
430 ipCidrRange:
431 description: Immutable. The IP CIDR range represented
432 by this alias IP range. This IP CIDR range must belong
433 to the specified subnetwork and cannot contain IP addresses
434 reserved by system or used by other network interfaces.
435 At the time of writing only a netmask (e.g. /24) may
436 be supplied, with a CIDR format resulting in an API
437 error.
438 type: string
439 subnetworkRangeName:
440 description: Immutable. The subnetwork secondary range
441 name specifying the secondary range from which to allocate
442 the IP CIDR range for this alias IP range. If left unspecified,
443 the primary range of the subnetwork will be used.
444 type: string
445 required:
446 - ipCidrRange
447 type: object
448 type: array
449 ipv6AccessConfig:
450 description: An array of IPv6 access configurations for this
451 interface. Currently, only one IPv6 access config, DIRECT_IPV6,
452 is supported. If there is no ipv6AccessConfig specified, then
453 this instance will have no external IPv6 Internet access.
454 items:
455 properties:
456 externalIpv6:
457 description: The first IPv6 address of the external IPv6
458 range associated with this instance, prefix length is
459 stored in externalIpv6PrefixLength in ipv6AccessConfig.
460 The field is output only, an IPv6 address from a subnetwork
461 associated with the instance will be allocated dynamically.
462 type: string
463 externalIpv6PrefixLength:
464 description: The prefix length of the external IPv6 range.
465 type: string
466 networkTier:
467 description: The service-level to be provided for IPv6
468 traffic when the subnet has an external subnet. Only
469 PREMIUM tier is valid for IPv6.
470 type: string
471 publicPtrDomainName:
472 description: The domain name to be used when creating
473 DNSv6 records for the external IPv6 ranges.
474 type: string
475 required:
476 - networkTier
477 type: object
478 type: array
479 ipv6AccessType:
480 description: One of EXTERNAL, INTERNAL to indicate whether the
481 IP can be accessed from the Internet. This field is always
482 inherited from its subnetwork.
483 type: string
484 name:
485 description: The name of the network_interface.
486 type: string
487 networkIp:
488 description: Immutable. The private IP address to assign to
489 the instance. If empty, the address will be automatically
490 assigned.
491 type: string
492 networkRef:
493 properties:
494 external:
495 description: The external name of the referenced resource
496 type: string
497 kind:
498 description: Kind of the referent.
499 type: string
500 name:
501 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
502 type: string
503 namespace:
504 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
505 type: string
506 type: object
507 nicType:
508 description: Immutable. The type of vNIC to be used on this
509 interface. Possible values:GVNIC, VIRTIO_NET.
510 type: string
511 queueCount:
512 description: Immutable. The networking queue count that's specified
513 by users for the network interface. Both Rx and Tx queues
514 will be set to this number. It will be empty if not specified.
515 type: integer
516 stackType:
517 description: The stack type for this network interface to identify
518 whether the IPv6 feature is enabled or not. If not specified,
519 IPV4_ONLY will be used.
520 type: string
521 subnetworkProject:
522 description: Immutable. The ID of the project in which the subnetwork
523 belongs. If it is not provided, the provider project is used.
524 type: string
525 subnetworkRef:
526 properties:
527 external:
528 description: The external name of the referenced resource
529 type: string
530 kind:
531 description: Kind of the referent.
532 type: string
533 name:
534 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
535 type: string
536 namespace:
537 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
538 type: string
539 type: object
540 type: object
541 type: array
542 networkPerformanceConfig:
543 description: Immutable. Configures network performance settings for
544 the instance. If not specified, the instance will be created with
545 its default network performance configuration.
546 properties:
547 totalEgressBandwidthTier:
548 description: Immutable. The egress bandwidth tier to enable. Possible
549 values:TIER_1, DEFAULT.
550 type: string
551 required:
552 - totalEgressBandwidthTier
553 type: object
554 region:
555 description: Immutable. An instance template is a global resource
556 that is not bound to a zone or a region. However, you can still
557 specify some regional resources in an instance template, which restricts
558 the template to the region where that resource resides. For example,
559 a custom subnetwork resource is tied to a specific region. Defaults
560 to the region of the Provider if no value is given.
561 type: string
562 reservationAffinity:
563 description: Immutable. Specifies the reservations that this instance
564 can consume from.
565 properties:
566 specificReservation:
567 description: Immutable. Specifies the label selector for the reservation
568 to use.
569 properties:
570 key:
571 description: Immutable. Corresponds to the label key of a
572 reservation resource. To target a SPECIFIC_RESERVATION by
573 name, specify compute.googleapis.com/reservation-name as
574 the key and specify the name of your reservation as the
575 only value.
576 type: string
577 values:
578 description: Immutable. Corresponds to the label values of
579 a reservation resource.
580 items:
581 type: string
582 type: array
583 required:
584 - key
585 - values
586 type: object
587 type:
588 description: Immutable. The type of reservation from which this
589 instance can consume resources.
590 type: string
591 required:
592 - type
593 type: object
594 resourceID:
595 description: Immutable. Optional. The name of the resource. Used for
596 creation and acquisition. When unset, the value of `metadata.name`
597 is used as the default.
598 type: string
599 resourcePolicies:
600 items:
601 properties:
602 external:
603 description: The external name of the referenced resource
604 type: string
605 kind:
606 description: Kind of the referent.
607 type: string
608 name:
609 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
610 type: string
611 namespace:
612 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
613 type: string
614 type: object
615 type: array
616 scheduling:
617 description: Immutable. The scheduling strategy to use.
618 properties:
619 automaticRestart:
620 description: Immutable. Specifies whether the instance should
621 be automatically restarted if it is terminated by Compute Engine
622 (not terminated by a user). This defaults to true.
623 type: boolean
624 instanceTerminationAction:
625 description: Immutable. Specifies the action GCE should take when
626 SPOT VM is preempted.
627 type: string
628 maintenanceInterval:
629 description: 'Specifies the frequency of planned maintenance events.
630 The accepted values are: PERIODIC.'
631 type: string
632 maxRunDuration:
633 description: Immutable. The timeout for new network connections
634 to hosts.
635 properties:
636 nanos:
637 description: |-
638 Immutable. Span of time that's a fraction of a second at nanosecond
639 resolution. Durations less than one second are represented
640 with a 0 seconds field and a positive nanos field. Must
641 be from 0 to 999,999,999 inclusive.
642 type: integer
643 seconds:
644 description: |-
645 Immutable. Span of time at a resolution of a second.
646 Must be from 0 to 315,576,000,000 inclusive.
647 type: integer
648 required:
649 - seconds
650 type: object
651 minNodeCpus:
652 description: Minimum number of cpus for the instance.
653 type: integer
654 nodeAffinities:
655 items:
656 properties:
657 value:
658 type: object
659 type: object
660 type: array
661 onHostMaintenance:
662 description: Immutable. Defines the maintenance behavior for this
663 instance.
664 type: string
665 preemptible:
666 description: Immutable. Allows instance to be preempted. This
667 defaults to false.
668 type: boolean
669 provisioningModel:
670 description: Immutable. Whether the instance is spot. If this
671 is set as SPOT.
672 type: string
673 type: object
674 serviceAccount:
675 description: Immutable. Service account to attach to the instance.
676 properties:
677 scopes:
678 description: Immutable. A list of service scopes. Both OAuth2
679 URLs and gcloud short names are supported. To allow full access
680 to all Cloud APIs, use the cloud-platform scope.
681 items:
682 type: string
683 type: array
684 serviceAccountRef:
685 properties:
686 external:
687 description: The external name of the referenced resource
688 type: string
689 kind:
690 description: Kind of the referent.
691 type: string
692 name:
693 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
694 type: string
695 namespace:
696 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
697 type: string
698 type: object
699 required:
700 - scopes
701 type: object
702 shieldedInstanceConfig:
703 description: 'Immutable. Enable Shielded VM on this instance. Shielded
704 VM provides verifiable integrity to prevent against malware and
705 rootkits. Defaults to disabled. Note: shielded_instance_config can
706 only be used with boot images with shielded vm support.'
707 properties:
708 enableIntegrityMonitoring:
709 description: Immutable. Compare the most recent boot measurements
710 to the integrity policy baseline and return a pair of pass/fail
711 results depending on whether they match or not. Defaults to
712 true.
713 type: boolean
714 enableSecureBoot:
715 description: Immutable. Verify the digital signature of all boot
716 components, and halt the boot process if signature verification
717 fails. Defaults to false.
718 type: boolean
719 enableVtpm:
720 description: Immutable. Use a virtualized trusted platform module,
721 which is a specialized computer chip you can use to encrypt
722 objects like keys and certificates. Defaults to true.
723 type: boolean
724 type: object
725 tags:
726 description: Immutable. Tags to attach to the instance.
727 items:
728 type: string
729 type: array
730 required:
731 - disk
732 - machineType
733 type: object
734 status:
735 properties:
736 conditions:
737 description: |-
738 Conditions represent the latest available observations of the
739 ComputeInstanceTemplate's current state.
740 items:
741 properties:
742 lastTransitionTime:
743 description: Last time the condition transitioned from one status
744 to another.
745 type: string
746 message:
747 description: Human-readable message indicating details about
748 last transition.
749 type: string
750 reason:
751 description: |-
752 Unique, one-word, CamelCase reason for the condition's last
753 transition.
754 type: string
755 status:
756 description: Status is the status of the condition. Can be True,
757 False, Unknown.
758 type: string
759 type:
760 description: Type is the type of the condition.
761 type: string
762 type: object
763 type: array
764 metadataFingerprint:
765 description: The unique fingerprint of the metadata.
766 type: string
767 observedGeneration:
768 description: ObservedGeneration is the generation of the resource
769 that was most recently observed by the Config Connector controller.
770 If this is equal to metadata.generation, then that means that the
771 current reported status reflects the most recent desired state of
772 the resource.
773 type: integer
774 selfLink:
775 description: The URI of the created resource.
776 type: string
777 selfLinkUnique:
778 description: A special URI of the created resource that uniquely identifies
779 this instance template.
780 type: string
781 tagsFingerprint:
782 description: The unique fingerprint of the tags.
783 type: string
784 type: object
785 type: object
786 served: true
787 storage: true
View as plain text