blob: 381dc5ba8d6e7e9d1d7bfaf814e67b155d63fef2 [file] [log] [blame]
gio36b23b32024-08-25 12:20:54 +04001---
2apiVersion: v1
3kind: Namespace
4metadata:
5 labels:
6 kubevirt.io: ""
7 pod-security.kubernetes.io/enforce: "privileged"
8 name: kubevirt
9---
10apiVersion: apiextensions.k8s.io/v1
11kind: CustomResourceDefinition
12metadata:
13 labels:
14 operator.kubevirt.io: ""
15 name: kubevirts.kubevirt.io
16spec:
17 group: kubevirt.io
18 names:
19 categories:
20 - all
21 kind: KubeVirt
22 plural: kubevirts
23 shortNames:
24 - kv
25 - kvs
26 singular: kubevirt
27 scope: Namespaced
28 versions:
29 - additionalPrinterColumns:
30 - jsonPath: .metadata.creationTimestamp
31 name: Age
32 type: date
33 - jsonPath: .status.phase
34 name: Phase
35 type: string
36 name: v1
37 schema:
38 openAPIV3Schema:
39 description: KubeVirt represents the object deploying all KubeVirt resources
40 properties:
41 apiVersion:
42 description: |-
43 APIVersion defines the versioned schema of this representation of an object.
44 Servers should convert recognized schemas to the latest internal value, and
45 may reject unrecognized values.
46 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
47 type: string
48 kind:
49 description: |-
50 Kind is a string value representing the REST resource this object represents.
51 Servers may infer this from the endpoint the client submits requests to.
52 Cannot be updated.
53 In CamelCase.
54 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
55 type: string
56 metadata:
57 type: object
58 spec:
59 properties:
60 certificateRotateStrategy:
61 properties:
62 selfSigned:
63 properties:
64 ca:
65 description: |-
66 CA configuration
67 CA certs are kept in the CA bundle as long as they are valid
68 properties:
69 duration:
70 description: The requested 'duration' (i.e. lifetime)
71 of the Certificate.
72 type: string
73 renewBefore:
74 description: |-
75 The amount of time before the currently issued certificate's "notAfter"
76 time that we will begin to attempt to renew the certificate.
77 type: string
78 type: object
79 caOverlapInterval:
80 description: Deprecated. Use CA.Duration and CA.RenewBefore
81 instead
82 type: string
83 caRotateInterval:
84 description: Deprecated. Use CA.Duration instead
85 type: string
86 certRotateInterval:
87 description: Deprecated. Use Server.Duration instead
88 type: string
89 server:
90 description: |-
91 Server configuration
92 Certs are rotated and discarded
93 properties:
94 duration:
95 description: The requested 'duration' (i.e. lifetime)
96 of the Certificate.
97 type: string
98 renewBefore:
99 description: |-
100 The amount of time before the currently issued certificate's "notAfter"
101 time that we will begin to attempt to renew the certificate.
102 type: string
103 type: object
104 type: object
105 type: object
106 configuration:
107 description: |-
108 holds kubevirt configurations.
109 same as the virt-configMap
110 properties:
111 additionalGuestMemoryOverheadRatio:
112 description: |-
113 AdditionalGuestMemoryOverheadRatio can be used to increase the virtualization infrastructure
114 overhead. This is useful, since the calculation of this overhead is not accurate and cannot
115 be entirely known in advance. The ratio that is being set determines by which factor to increase
116 the overhead calculated by Kubevirt. A higher ratio means that the VMs would be less compromised
117 by node pressures, but would mean that fewer VMs could be scheduled to a node.
118 If not set, the default is 1.
119 type: string
120 apiConfiguration:
121 description: |-
122 ReloadableComponentConfiguration holds all generic k8s configuration options which can
123 be reloaded by components without requiring a restart.
124 properties:
125 restClient:
126 description: RestClient can be used to tune certain aspects
127 of the k8s client in use.
128 properties:
129 rateLimiter:
130 description: RateLimiter allows selecting and configuring
131 different rate limiters for the k8s client.
132 properties:
133 tokenBucketRateLimiter:
134 properties:
135 burst:
136 description: |-
137 Maximum burst for throttle.
138 If it's zero, the component default will be used
139 type: integer
140 qps:
141 description: |-
142 QPS indicates the maximum QPS to the apiserver from this client.
143 If it's zero, the component default will be used
144 type: number
145 required:
146 - burst
147 - qps
148 type: object
149 type: object
150 type: object
151 type: object
152 architectureConfiguration:
153 properties:
154 amd64:
155 properties:
156 emulatedMachines:
157 items:
158 type: string
159 type: array
160 x-kubernetes-list-type: atomic
161 machineType:
162 type: string
163 ovmfPath:
164 type: string
165 type: object
166 arm64:
167 properties:
168 emulatedMachines:
169 items:
170 type: string
171 type: array
172 x-kubernetes-list-type: atomic
173 machineType:
174 type: string
175 ovmfPath:
176 type: string
177 type: object
178 defaultArchitecture:
179 type: string
180 ppc64le:
181 properties:
182 emulatedMachines:
183 items:
184 type: string
185 type: array
186 x-kubernetes-list-type: atomic
187 machineType:
188 type: string
189 ovmfPath:
190 type: string
191 type: object
192 type: object
193 autoCPULimitNamespaceLabelSelector:
194 description: |-
195 When set, AutoCPULimitNamespaceLabelSelector will set a CPU limit on virt-launcher for VMIs running inside
196 namespaces that match the label selector.
197 The CPU limit will equal the number of requested vCPUs.
198 This setting does not apply to VMIs with dedicated CPUs.
199 properties:
200 matchExpressions:
201 description: matchExpressions is a list of label selector
202 requirements. The requirements are ANDed.
203 items:
204 description: |-
205 A label selector requirement is a selector that contains values, a key, and an operator that
206 relates the key and values.
207 properties:
208 key:
209 description: key is the label key that the selector
210 applies to.
211 type: string
212 operator:
213 description: |-
214 operator represents a key's relationship to a set of values.
215 Valid operators are In, NotIn, Exists and DoesNotExist.
216 type: string
217 values:
218 description: |-
219 values is an array of string values. If the operator is In or NotIn,
220 the values array must be non-empty. If the operator is Exists or DoesNotExist,
221 the values array must be empty. This array is replaced during a strategic
222 merge patch.
223 items:
224 type: string
225 type: array
226 x-kubernetes-list-type: atomic
227 required:
228 - key
229 - operator
230 type: object
231 type: array
232 x-kubernetes-list-type: atomic
233 matchLabels:
234 additionalProperties:
235 type: string
236 description: |-
237 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
238 map is equivalent to an element of matchExpressions, whose key field is "key", the
239 operator is "In", and the values array contains only "value". The requirements are ANDed.
240 type: object
241 type: object
242 x-kubernetes-map-type: atomic
243 controllerConfiguration:
244 description: |-
245 ReloadableComponentConfiguration holds all generic k8s configuration options which can
246 be reloaded by components without requiring a restart.
247 properties:
248 restClient:
249 description: RestClient can be used to tune certain aspects
250 of the k8s client in use.
251 properties:
252 rateLimiter:
253 description: RateLimiter allows selecting and configuring
254 different rate limiters for the k8s client.
255 properties:
256 tokenBucketRateLimiter:
257 properties:
258 burst:
259 description: |-
260 Maximum burst for throttle.
261 If it's zero, the component default will be used
262 type: integer
263 qps:
264 description: |-
265 QPS indicates the maximum QPS to the apiserver from this client.
266 If it's zero, the component default will be used
267 type: number
268 required:
269 - burst
270 - qps
271 type: object
272 type: object
273 type: object
274 type: object
275 cpuModel:
276 type: string
277 cpuRequest:
278 anyOf:
279 - type: integer
280 - type: string
281 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
282 x-kubernetes-int-or-string: true
283 defaultRuntimeClass:
284 type: string
285 developerConfiguration:
286 description: DeveloperConfiguration holds developer options
287 properties:
288 cpuAllocationRatio:
289 description: |-
290 For each requested virtual CPU, CPUAllocationRatio defines how much physical CPU to request per VMI
291 from the hosting node. The value is in fraction of a CPU thread (or core on non-hyperthreaded nodes).
292 For example, a value of 1 means 1 physical CPU thread per VMI CPU thread.
293 A value of 100 would be 1% of a physical thread allocated for each requested VMI thread.
294 This option has no effect on VMIs that request dedicated CPUs. More information at:
295 https://kubevirt.io/user-guide/operations/node_overcommit/#node-cpu-allocation-ratio
296 Defaults to 10
297 type: integer
298 diskVerification:
299 description: DiskVerification holds container disks verification
300 limits
301 properties:
302 memoryLimit:
303 anyOf:
304 - type: integer
305 - type: string
306 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
307 x-kubernetes-int-or-string: true
308 required:
309 - memoryLimit
310 type: object
311 featureGates:
312 description: FeatureGates is the list of experimental features
313 to enable. Defaults to none
314 items:
315 type: string
316 type: array
317 logVerbosity:
318 description: LogVerbosity sets log verbosity level of various
319 components
320 properties:
321 nodeVerbosity:
322 additionalProperties:
323 type: integer
324 description: NodeVerbosity represents a map of nodes with
325 a specific verbosity level
326 type: object
327 virtAPI:
328 type: integer
329 virtController:
330 type: integer
331 virtHandler:
332 type: integer
333 virtLauncher:
334 type: integer
335 virtOperator:
336 type: integer
337 type: object
338 memoryOvercommit:
339 description: |-
340 MemoryOvercommit is the percentage of memory we want to give VMIs compared to the amount
341 given to its parent pod (virt-launcher). For example, a value of 102 means the VMI will
342 "see" 2% more memory than its parent pod. Values under 100 are effectively "undercommits".
343 Overcommits can lead to memory exhaustion, which in turn can lead to crashes. Use carefully.
344 Defaults to 100
345 type: integer
346 minimumClusterTSCFrequency:
347 description: |-
348 Allow overriding the automatically determined minimum TSC frequency of the cluster
349 and fixate the minimum to this frequency.
350 format: int64
351 type: integer
352 minimumReservePVCBytes:
353 description: |-
354 MinimumReservePVCBytes is the amount of space, in bytes, to leave unused on disks.
355 Defaults to 131072 (128KiB)
356 format: int64
357 type: integer
358 nodeSelectors:
359 additionalProperties:
360 type: string
361 description: |-
362 NodeSelectors allows restricting VMI creation to nodes that match a set of labels.
363 Defaults to none
364 type: object
365 pvcTolerateLessSpaceUpToPercent:
366 description: |-
367 LessPVCSpaceToleration determines how much smaller, in percentage, disk PVCs are
368 allowed to be compared to the requested size (to account for various overheads).
369 Defaults to 10
370 type: integer
371 useEmulation:
372 description: |-
373 UseEmulation can be set to true to allow fallback to software emulation
374 in case hardware-assisted emulation is not available. Defaults to false
375 type: boolean
376 type: object
377 emulatedMachines:
378 description: Deprecated. Use architectureConfiguration instead.
379 items:
380 type: string
381 type: array
382 evictionStrategy:
383 description: |-
384 EvictionStrategy defines at the cluster level if the VirtualMachineInstance should be
385 migrated instead of shut-off in case of a node drain. If the VirtualMachineInstance specific
386 field is set it overrides the cluster level one.
387 type: string
388 handlerConfiguration:
389 description: |-
390 ReloadableComponentConfiguration holds all generic k8s configuration options which can
391 be reloaded by components without requiring a restart.
392 properties:
393 restClient:
394 description: RestClient can be used to tune certain aspects
395 of the k8s client in use.
396 properties:
397 rateLimiter:
398 description: RateLimiter allows selecting and configuring
399 different rate limiters for the k8s client.
400 properties:
401 tokenBucketRateLimiter:
402 properties:
403 burst:
404 description: |-
405 Maximum burst for throttle.
406 If it's zero, the component default will be used
407 type: integer
408 qps:
409 description: |-
410 QPS indicates the maximum QPS to the apiserver from this client.
411 If it's zero, the component default will be used
412 type: number
413 required:
414 - burst
415 - qps
416 type: object
417 type: object
418 type: object
419 type: object
420 imagePullPolicy:
421 description: PullPolicy describes a policy for if/when to pull
422 a container image
423 type: string
424 ksmConfiguration:
425 description: KSMConfiguration holds the information regarding
426 the enabling the KSM in the nodes (if available).
427 properties:
428 nodeLabelSelector:
429 description: |-
430 NodeLabelSelector is a selector that filters in which nodes the KSM will be enabled.
431 Empty NodeLabelSelector will enable ksm for every node.
432 properties:
433 matchExpressions:
434 description: matchExpressions is a list of label selector
435 requirements. The requirements are ANDed.
436 items:
437 description: |-
438 A label selector requirement is a selector that contains values, a key, and an operator that
439 relates the key and values.
440 properties:
441 key:
442 description: key is the label key that the selector
443 applies to.
444 type: string
445 operator:
446 description: |-
447 operator represents a key's relationship to a set of values.
448 Valid operators are In, NotIn, Exists and DoesNotExist.
449 type: string
450 values:
451 description: |-
452 values is an array of string values. If the operator is In or NotIn,
453 the values array must be non-empty. If the operator is Exists or DoesNotExist,
454 the values array must be empty. This array is replaced during a strategic
455 merge patch.
456 items:
457 type: string
458 type: array
459 x-kubernetes-list-type: atomic
460 required:
461 - key
462 - operator
463 type: object
464 type: array
465 x-kubernetes-list-type: atomic
466 matchLabels:
467 additionalProperties:
468 type: string
469 description: |-
470 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
471 map is equivalent to an element of matchExpressions, whose key field is "key", the
472 operator is "In", and the values array contains only "value". The requirements are ANDed.
473 type: object
474 type: object
475 x-kubernetes-map-type: atomic
476 type: object
477 liveUpdateConfiguration:
478 description: LiveUpdateConfiguration holds defaults for live update
479 features
480 properties:
481 maxCpuSockets:
482 description: MaxCpuSockets holds the maximum amount of sockets
483 that can be hotplugged
484 format: int32
485 type: integer
486 maxGuest:
487 anyOf:
488 - type: integer
489 - type: string
490 description: |-
491 MaxGuest defines the maximum amount memory that can be allocated
492 to the guest using hotplug.
493 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
494 x-kubernetes-int-or-string: true
495 maxHotplugRatio:
496 description: |-
497 MaxHotplugRatio is the ratio used to define the max amount
498 of a hotplug resource that can be made available to a VM
499 when the specific Max* setting is not defined (MaxCpuSockets, MaxGuest)
500 Example: VM is configured with 512Mi of guest memory, if MaxGuest is not
501 defined and MaxHotplugRatio is 2 then MaxGuest = 1Gi
502 defaults to 4
503 format: int32
504 type: integer
505 type: object
506 machineType:
507 description: Deprecated. Use architectureConfiguration instead.
508 type: string
509 mediatedDevicesConfiguration:
510 description: MediatedDevicesConfiguration holds information about
511 MDEV types to be defined, if available
512 properties:
513 mediatedDeviceTypes:
514 items:
515 type: string
516 type: array
517 x-kubernetes-list-type: atomic
518 mediatedDevicesTypes:
519 description: Deprecated. Use mediatedDeviceTypes instead.
520 items:
521 type: string
522 type: array
523 x-kubernetes-list-type: atomic
524 nodeMediatedDeviceTypes:
525 items:
526 description: NodeMediatedDeviceTypesConfig holds information
527 about MDEV types to be defined in a specific node that
528 matches the NodeSelector field.
529 properties:
530 mediatedDeviceTypes:
531 items:
532 type: string
533 type: array
534 x-kubernetes-list-type: atomic
535 mediatedDevicesTypes:
536 description: Deprecated. Use mediatedDeviceTypes instead.
537 items:
538 type: string
539 type: array
540 x-kubernetes-list-type: atomic
541 nodeSelector:
542 additionalProperties:
543 type: string
544 description: |-
545 NodeSelector is a selector which must be true for the vmi to fit on a node.
546 Selector which must match a node's labels for the vmi to be scheduled on that node.
547 More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
548 type: object
549 required:
550 - nodeSelector
551 type: object
552 type: array
553 x-kubernetes-list-type: atomic
554 type: object
555 memBalloonStatsPeriod:
556 format: int32
557 type: integer
558 migrations:
559 description: |-
560 MigrationConfiguration holds migration options.
561 Can be overridden for specific groups of VMs though migration policies.
562 Visit https://kubevirt.io/user-guide/operations/migration_policies/ for more information.
563 properties:
564 allowAutoConverge:
565 description: |-
566 AllowAutoConverge allows the platform to compromise performance/availability of VMIs to
567 guarantee successful VMI live migrations. Defaults to false
568 type: boolean
569 allowPostCopy:
570 description: |-
571 AllowPostCopy enables post-copy live migrations. Such migrations allow even the busiest VMIs
572 to successfully live-migrate. However, events like a network failure can cause a VMI crash.
573 If set to true, migrations will still start in pre-copy, but switch to post-copy when
574 CompletionTimeoutPerGiB triggers. Defaults to false
575 type: boolean
576 bandwidthPerMigration:
577 anyOf:
578 - type: integer
579 - type: string
580 description: |-
581 BandwidthPerMigration limits the amount of network bandwidth live migrations are allowed to use.
582 The value is in quantity per second. Defaults to 0 (no limit)
583 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
584 x-kubernetes-int-or-string: true
585 completionTimeoutPerGiB:
586 description: |-
587 CompletionTimeoutPerGiB is the maximum number of seconds per GiB a migration is allowed to take.
588 If a live-migration takes longer to migrate than this value multiplied by the size of the VMI,
589 the migration will be cancelled, unless AllowPostCopy is true. Defaults to 800
590 format: int64
591 type: integer
592 disableTLS:
593 description: |-
594 When set to true, DisableTLS will disable the additional layer of live migration encryption
595 provided by KubeVirt. This is usually a bad idea. Defaults to false
596 type: boolean
597 matchSELinuxLevelOnMigration:
598 description: |-
599 By default, the SELinux level of target virt-launcher pods is forced to the level of the source virt-launcher.
600 When set to true, MatchSELinuxLevelOnMigration lets the CRI auto-assign a random level to the target.
601 That will ensure the target virt-launcher doesn't share categories with another pod on the node.
602 However, migrations will fail when using RWX volumes that don't automatically deal with SELinux levels.
603 type: boolean
604 network:
605 description: |-
606 Network is the name of the CNI network to use for live migrations. By default, migrations go
607 through the pod network.
608 type: string
609 nodeDrainTaintKey:
610 description: |-
611 NodeDrainTaintKey defines the taint key that indicates a node should be drained.
612 Note: this option relies on the deprecated node taint feature. Default: kubevirt.io/drain
613 type: string
614 parallelMigrationsPerCluster:
615 description: |-
616 ParallelMigrationsPerCluster is the total number of concurrent live migrations
617 allowed cluster-wide. Defaults to 5
618 format: int32
619 type: integer
620 parallelOutboundMigrationsPerNode:
621 description: |-
622 ParallelOutboundMigrationsPerNode is the maximum number of concurrent outgoing live migrations
623 allowed per node. Defaults to 2
624 format: int32
625 type: integer
626 progressTimeout:
627 description: |-
628 ProgressTimeout is the maximum number of seconds a live migration is allowed to make no progress.
629 Hitting this timeout means a migration transferred 0 data for that many seconds. The migration is
630 then considered stuck and therefore cancelled. Defaults to 150
631 format: int64
632 type: integer
633 unsafeMigrationOverride:
634 description: |-
635 UnsafeMigrationOverride allows live migrations to occur even if the compatibility check
636 indicates the migration will be unsafe to the guest. Defaults to false
637 type: boolean
638 type: object
639 minCPUModel:
640 type: string
641 network:
642 description: NetworkConfiguration holds network options
643 properties:
644 binding:
645 additionalProperties:
646 properties:
647 computeResourceOverhead:
648 description: |-
649 ComputeResourceOverhead specifies the resource overhead that should be added to the compute container when using the binding.
650 version: v1alphav1
651 properties:
652 claims:
653 description: |-
654 Claims lists the names of resources, defined in spec.resourceClaims,
655 that are used by this container.
656
657
658 This is an alpha field and requires enabling the
659 DynamicResourceAllocation feature gate.
660
661
662 This field is immutable. It can only be set for containers.
663 items:
664 description: ResourceClaim references one entry
665 in PodSpec.ResourceClaims.
666 properties:
667 name:
668 description: |-
669 Name must match the name of one entry in pod.spec.resourceClaims of
670 the Pod where this field is used. It makes that resource available
671 inside a container.
672 type: string
673 required:
674 - name
675 type: object
676 type: array
677 x-kubernetes-list-map-keys:
678 - name
679 x-kubernetes-list-type: map
680 limits:
681 additionalProperties:
682 anyOf:
683 - type: integer
684 - type: string
685 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
686 x-kubernetes-int-or-string: true
687 description: |-
688 Limits describes the maximum amount of compute resources allowed.
689 More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
690 type: object
691 requests:
692 additionalProperties:
693 anyOf:
694 - type: integer
695 - type: string
696 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
697 x-kubernetes-int-or-string: true
698 description: |-
699 Requests describes the minimum amount of compute resources required.
700 If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
701 otherwise to an implementation-defined value. Requests cannot exceed Limits.
702 More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
703 type: object
704 type: object
705 domainAttachmentType:
706 description: |-
707 DomainAttachmentType is a standard domain network attachment method kubevirt supports.
708 Supported values: "tap".
709 The standard domain attachment can be used instead or in addition to the sidecarImage.
710 version: 1alphav1
711 type: string
712 downwardAPI:
713 description: |-
714 DownwardAPI specifies what kind of data should be exposed to the binding plugin sidecar.
715 Supported values: "device-info"
716 version: v1alphav1
717 type: string
718 migration:
719 description: |-
720 Migration means the VM using the plugin can be safely migrated
721 version: 1alphav1
722 properties:
723 method:
724 description: |-
725 Method defines a pre-defined migration methodology
726 version: 1alphav1
727 type: string
728 type: object
729 networkAttachmentDefinition:
730 description: |-
731 NetworkAttachmentDefinition references to a NetworkAttachmentDefinition CR object.
732 Format: <name>, <namespace>/<name>.
733 If namespace is not specified, VMI namespace is assumed.
734 version: 1alphav1
735 type: string
736 sidecarImage:
737 description: |-
738 SidecarImage references a container image that runs in the virt-launcher pod.
739 The sidecar handles (libvirt) domain configuration and optional services.
740 version: 1alphav1
741 type: string
742 type: object
743 type: object
744 defaultNetworkInterface:
745 type: string
746 permitBridgeInterfaceOnPodNetwork:
747 type: boolean
748 permitSlirpInterface:
749 description: |-
750 DeprecatedPermitSlirpInterface is an alias for the deprecated PermitSlirpInterface.
751 Deprecated: Removed in v1.3.
752 type: boolean
753 type: object
754 obsoleteCPUModels:
755 additionalProperties:
756 type: boolean
757 type: object
758 ovmfPath:
759 description: Deprecated. Use architectureConfiguration instead.
760 type: string
761 permittedHostDevices:
762 description: PermittedHostDevices holds information about devices
763 allowed for passthrough
764 properties:
765 mediatedDevices:
766 items:
767 description: MediatedHostDevice represents a host mediated
768 device allowed for passthrough
769 properties:
770 externalResourceProvider:
771 type: boolean
772 mdevNameSelector:
773 type: string
774 resourceName:
775 type: string
776 required:
777 - mdevNameSelector
778 - resourceName
779 type: object
780 type: array
781 x-kubernetes-list-type: atomic
782 pciHostDevices:
783 items:
784 description: PciHostDevice represents a host PCI device
785 allowed for passthrough
786 properties:
787 externalResourceProvider:
788 description: |-
789 If true, KubeVirt will leave the allocation and monitoring to an
790 external device plugin
791 type: boolean
792 pciVendorSelector:
793 description: The vendor_id:product_id tuple of the PCI
794 device
795 type: string
796 resourceName:
797 description: |-
798 The name of the resource that is representing the device. Exposed by
799 a device plugin and requested by VMs. Typically of the form
800 vendor.com/product_name
801 type: string
802 required:
803 - pciVendorSelector
804 - resourceName
805 type: object
806 type: array
807 x-kubernetes-list-type: atomic
808 usb:
809 items:
810 properties:
811 externalResourceProvider:
812 description: |-
813 If true, KubeVirt will leave the allocation and monitoring to an
814 external device plugin
815 type: boolean
816 resourceName:
817 description: |-
818 Identifies the list of USB host devices.
819 e.g: kubevirt.io/storage, kubevirt.io/bootable-usb, etc
820 type: string
821 selectors:
822 items:
823 properties:
824 product:
825 type: string
826 vendor:
827 type: string
828 required:
829 - product
830 - vendor
831 type: object
832 type: array
833 x-kubernetes-list-type: atomic
834 required:
835 - resourceName
836 type: object
837 type: array
838 x-kubernetes-list-type: atomic
839 type: object
840 seccompConfiguration:
841 description: SeccompConfiguration holds Seccomp configuration
842 for Kubevirt components
843 properties:
844 virtualMachineInstanceProfile:
845 description: VirtualMachineInstanceProfile defines what profile
846 should be used with virt-launcher. Defaults to none
847 properties:
848 customProfile:
849 description: CustomProfile allows to request arbitrary
850 profile for virt-launcher
851 properties:
852 localhostProfile:
853 type: string
854 runtimeDefaultProfile:
855 type: boolean
856 type: object
857 type: object
858 type: object
859 selinuxLauncherType:
860 type: string
861 smbios:
862 properties:
863 family:
864 type: string
865 manufacturer:
866 type: string
867 product:
868 type: string
869 sku:
870 type: string
871 version:
872 type: string
873 type: object
874 supportContainerResources:
875 description: SupportContainerResources specifies the resource
876 requirements for various types of supporting containers such
877 as container disks/virtiofs/sidecars and hotplug attachment
878 pods. If omitted a sensible default will be supplied.
879 items:
880 description: SupportContainerResources are used to specify the
881 cpu/memory request and limits for the containers that support
882 various features of Virtual Machines. These containers are
883 usually idle and don't require a lot of memory or cpu.
884 properties:
885 resources:
886 description: ResourceRequirements describes the compute
887 resource requirements.
888 properties:
889 claims:
890 description: |-
891 Claims lists the names of resources, defined in spec.resourceClaims,
892 that are used by this container.
893
894
895 This is an alpha field and requires enabling the
896 DynamicResourceAllocation feature gate.
897
898
899 This field is immutable. It can only be set for containers.
900 items:
901 description: ResourceClaim references one entry in
902 PodSpec.ResourceClaims.
903 properties:
904 name:
905 description: |-
906 Name must match the name of one entry in pod.spec.resourceClaims of
907 the Pod where this field is used. It makes that resource available
908 inside a container.
909 type: string
910 required:
911 - name
912 type: object
913 type: array
914 x-kubernetes-list-map-keys:
915 - name
916 x-kubernetes-list-type: map
917 limits:
918 additionalProperties:
919 anyOf:
920 - type: integer
921 - type: string
922 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
923 x-kubernetes-int-or-string: true
924 description: |-
925 Limits describes the maximum amount of compute resources allowed.
926 More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
927 type: object
928 requests:
929 additionalProperties:
930 anyOf:
931 - type: integer
932 - type: string
933 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
934 x-kubernetes-int-or-string: true
935 description: |-
936 Requests describes the minimum amount of compute resources required.
937 If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
938 otherwise to an implementation-defined value. Requests cannot exceed Limits.
939 More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
940 type: object
941 type: object
942 type:
943 type: string
944 required:
945 - resources
946 - type
947 type: object
948 type: array
949 x-kubernetes-list-map-keys:
950 - type
951 x-kubernetes-list-type: map
952 supportedGuestAgentVersions:
953 description: deprecated
954 items:
955 type: string
956 type: array
957 tlsConfiguration:
958 description: TLSConfiguration holds TLS options
959 properties:
960 ciphers:
961 items:
962 type: string
963 type: array
964 x-kubernetes-list-type: set
965 minTLSVersion:
966 description: |-
967 MinTLSVersion is a way to specify the minimum protocol version that is acceptable for TLS connections.
968 Protocol versions are based on the following most common TLS configurations:
969
970
971 https://ssl-config.mozilla.org/
972
973
974 Note that SSLv3.0 is not a supported protocol version due to well known
975 vulnerabilities such as POODLE: https://en.wikipedia.org/wiki/POODLE
976 enum:
977 - VersionTLS10
978 - VersionTLS11
979 - VersionTLS12
980 - VersionTLS13
981 type: string
982 type: object
983 virtualMachineInstancesPerNode:
984 type: integer
985 virtualMachineOptions:
986 description: VirtualMachineOptions holds the cluster level information
987 regarding the virtual machine.
988 properties:
989 disableFreePageReporting:
990 description: |-
991 DisableFreePageReporting disable the free page reporting of
992 memory balloon device https://libvirt.org/formatdomain.html#memory-balloon-device.
993 This will have effect only if AutoattachMemBalloon is not false and the vmi is not
994 requesting any high performance feature (dedicatedCPU/realtime/hugePages), in which free page reporting is always disabled.
995 type: object
996 disableSerialConsoleLog:
997 description: |-
998 DisableSerialConsoleLog disables logging the auto-attached default serial console.
999 If not set, serial console logs will be written to a file and then streamed from a container named 'guest-console-log'.
1000 The value can be individually overridden for each VM, not relevant if AutoattachSerialConsole is disabled.
1001 type: object
1002 type: object
1003 vmRolloutStrategy:
1004 description: VMRolloutStrategy defines how changes to a VM object
1005 propagate to its VMI
1006 enum:
1007 - Stage
1008 - LiveUpdate
1009 nullable: true
1010 type: string
1011 vmStateStorageClass:
1012 description: |-
1013 VMStateStorageClass is the name of the storage class to use for the PVCs created to preserve VM state, like TPM.
1014 The storage class must support RWX in filesystem mode.
1015 type: string
1016 webhookConfiguration:
1017 description: |-
1018 ReloadableComponentConfiguration holds all generic k8s configuration options which can
1019 be reloaded by components without requiring a restart.
1020 properties:
1021 restClient:
1022 description: RestClient can be used to tune certain aspects
1023 of the k8s client in use.
1024 properties:
1025 rateLimiter:
1026 description: RateLimiter allows selecting and configuring
1027 different rate limiters for the k8s client.
1028 properties:
1029 tokenBucketRateLimiter:
1030 properties:
1031 burst:
1032 description: |-
1033 Maximum burst for throttle.
1034 If it's zero, the component default will be used
1035 type: integer
1036 qps:
1037 description: |-
1038 QPS indicates the maximum QPS to the apiserver from this client.
1039 If it's zero, the component default will be used
1040 type: number
1041 required:
1042 - burst
1043 - qps
1044 type: object
1045 type: object
1046 type: object
1047 type: object
1048 type: object
1049 customizeComponents:
1050 properties:
1051 flags:
1052 description: Configure the value used for deployment and daemonset
1053 resources
1054 properties:
1055 api:
1056 additionalProperties:
1057 type: string
1058 type: object
1059 controller:
1060 additionalProperties:
1061 type: string
1062 type: object
1063 handler:
1064 additionalProperties:
1065 type: string
1066 type: object
1067 type: object
1068 patches:
1069 items:
1070 properties:
1071 patch:
1072 type: string
1073 resourceName:
1074 minLength: 1
1075 type: string
1076 resourceType:
1077 minLength: 1
1078 type: string
1079 type:
1080 type: string
1081 required:
1082 - patch
1083 - resourceName
1084 - resourceType
1085 - type
1086 type: object
1087 type: array
1088 x-kubernetes-list-type: atomic
1089 type: object
1090 imagePullPolicy:
1091 description: The ImagePullPolicy to use.
1092 type: string
1093 imagePullSecrets:
1094 description: |-
1095 The imagePullSecrets to pull the container images from
1096 Defaults to none
1097 items:
1098 description: |-
1099 LocalObjectReference contains enough information to let you locate the
1100 referenced object inside the same namespace.
1101 properties:
1102 name:
1103 description: |-
1104 Name of the referent.
1105 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
1106 TODO: Add other useful fields. apiVersion, kind, uid?
1107 type: string
1108 type: object
1109 x-kubernetes-map-type: atomic
1110 type: array
1111 x-kubernetes-list-type: atomic
1112 imageRegistry:
1113 description: |-
1114 The image registry to pull the container images from
1115 Defaults to the same registry the operator's container image is pulled from.
1116 type: string
1117 imageTag:
1118 description: |-
1119 The image tag to use for the continer images installed.
1120 Defaults to the same tag as the operator's container image.
1121 type: string
1122 infra:
1123 description: selectors and tolerations that should apply to KubeVirt
1124 infrastructure components
1125 properties:
1126 nodePlacement:
1127 description: |-
1128 nodePlacement describes scheduling configuration for specific
1129 KubeVirt components
1130 properties:
1131 affinity:
1132 description: |-
1133 affinity enables pod affinity/anti-affinity placement expanding the types of constraints
1134 that can be expressed with nodeSelector.
1135 affinity is going to be applied to the relevant kind of pods in parallel with nodeSelector
1136 See https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity
1137 properties:
1138 nodeAffinity:
1139 description: Describes node affinity scheduling rules
1140 for the pod.
1141 properties:
1142 preferredDuringSchedulingIgnoredDuringExecution:
1143 description: |-
1144 The scheduler will prefer to schedule pods to nodes that satisfy
1145 the affinity expressions specified by this field, but it may choose
1146 a node that violates one or more of the expressions. The node that is
1147 most preferred is the one with the greatest sum of weights, i.e.
1148 for each node that meets all of the scheduling requirements (resource
1149 request, requiredDuringScheduling affinity expressions, etc.),
1150 compute a sum by iterating through the elements of this field and adding
1151 "weight" to the sum if the node matches the corresponding matchExpressions; the
1152 node(s) with the highest sum are the most preferred.
1153 items:
1154 description: |-
1155 An empty preferred scheduling term matches all objects with implicit weight 0
1156 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
1157 properties:
1158 preference:
1159 description: A node selector term, associated
1160 with the corresponding weight.
1161 properties:
1162 matchExpressions:
1163 description: A list of node selector requirements
1164 by node's labels.
1165 items:
1166 description: |-
1167 A node selector requirement is a selector that contains values, a key, and an operator
1168 that relates the key and values.
1169 properties:
1170 key:
1171 description: The label key that the
1172 selector applies to.
1173 type: string
1174 operator:
1175 description: |-
1176 Represents a key's relationship to a set of values.
1177 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
1178 type: string
1179 values:
1180 description: |-
1181 An array of string values. If the operator is In or NotIn,
1182 the values array must be non-empty. If the operator is Exists or DoesNotExist,
1183 the values array must be empty. If the operator is Gt or Lt, the values
1184 array must have a single element, which will be interpreted as an integer.
1185 This array is replaced during a strategic merge patch.
1186 items:
1187 type: string
1188 type: array
1189 x-kubernetes-list-type: atomic
1190 required:
1191 - key
1192 - operator
1193 type: object
1194 type: array
1195 x-kubernetes-list-type: atomic
1196 matchFields:
1197 description: A list of node selector requirements
1198 by node's fields.
1199 items:
1200 description: |-
1201 A node selector requirement is a selector that contains values, a key, and an operator
1202 that relates the key and values.
1203 properties:
1204 key:
1205 description: The label key that the
1206 selector applies to.
1207 type: string
1208 operator:
1209 description: |-
1210 Represents a key's relationship to a set of values.
1211 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
1212 type: string
1213 values:
1214 description: |-
1215 An array of string values. If the operator is In or NotIn,
1216 the values array must be non-empty. If the operator is Exists or DoesNotExist,
1217 the values array must be empty. If the operator is Gt or Lt, the values
1218 array must have a single element, which will be interpreted as an integer.
1219 This array is replaced during a strategic merge patch.
1220 items:
1221 type: string
1222 type: array
1223 x-kubernetes-list-type: atomic
1224 required:
1225 - key
1226 - operator
1227 type: object
1228 type: array
1229 x-kubernetes-list-type: atomic
1230 type: object
1231 x-kubernetes-map-type: atomic
1232 weight:
1233 description: Weight associated with matching
1234 the corresponding nodeSelectorTerm, in the
1235 range 1-100.
1236 format: int32
1237 type: integer
1238 required:
1239 - preference
1240 - weight
1241 type: object
1242 type: array
1243 x-kubernetes-list-type: atomic
1244 requiredDuringSchedulingIgnoredDuringExecution:
1245 description: |-
1246 If the affinity requirements specified by this field are not met at
1247 scheduling time, the pod will not be scheduled onto the node.
1248 If the affinity requirements specified by this field cease to be met
1249 at some point during pod execution (e.g. due to an update), the system
1250 may or may not try to eventually evict the pod from its node.
1251 properties:
1252 nodeSelectorTerms:
1253 description: Required. A list of node selector
1254 terms. The terms are ORed.
1255 items:
1256 description: |-
1257 A null or empty node selector term matches no objects. The requirements of
1258 them are ANDed.
1259 The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
1260 properties:
1261 matchExpressions:
1262 description: A list of node selector requirements
1263 by node's labels.
1264 items:
1265 description: |-
1266 A node selector requirement is a selector that contains values, a key, and an operator
1267 that relates the key and values.
1268 properties:
1269 key:
1270 description: The label key that the
1271 selector applies to.
1272 type: string
1273 operator:
1274 description: |-
1275 Represents a key's relationship to a set of values.
1276 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
1277 type: string
1278 values:
1279 description: |-
1280 An array of string values. If the operator is In or NotIn,
1281 the values array must be non-empty. If the operator is Exists or DoesNotExist,
1282 the values array must be empty. If the operator is Gt or Lt, the values
1283 array must have a single element, which will be interpreted as an integer.
1284 This array is replaced during a strategic merge patch.
1285 items:
1286 type: string
1287 type: array
1288 x-kubernetes-list-type: atomic
1289 required:
1290 - key
1291 - operator
1292 type: object
1293 type: array
1294 x-kubernetes-list-type: atomic
1295 matchFields:
1296 description: A list of node selector requirements
1297 by node's fields.
1298 items:
1299 description: |-
1300 A node selector requirement is a selector that contains values, a key, and an operator
1301 that relates the key and values.
1302 properties:
1303 key:
1304 description: The label key that the
1305 selector applies to.
1306 type: string
1307 operator:
1308 description: |-
1309 Represents a key's relationship to a set of values.
1310 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
1311 type: string
1312 values:
1313 description: |-
1314 An array of string values. If the operator is In or NotIn,
1315 the values array must be non-empty. If the operator is Exists or DoesNotExist,
1316 the values array must be empty. If the operator is Gt or Lt, the values
1317 array must have a single element, which will be interpreted as an integer.
1318 This array is replaced during a strategic merge patch.
1319 items:
1320 type: string
1321 type: array
1322 x-kubernetes-list-type: atomic
1323 required:
1324 - key
1325 - operator
1326 type: object
1327 type: array
1328 x-kubernetes-list-type: atomic
1329 type: object
1330 x-kubernetes-map-type: atomic
1331 type: array
1332 x-kubernetes-list-type: atomic
1333 required:
1334 - nodeSelectorTerms
1335 type: object
1336 x-kubernetes-map-type: atomic
1337 type: object
1338 podAffinity:
1339 description: Describes pod affinity scheduling rules (e.g.
1340 co-locate this pod in the same node, zone, etc. as some
1341 other pod(s)).
1342 properties:
1343 preferredDuringSchedulingIgnoredDuringExecution:
1344 description: |-
1345 The scheduler will prefer to schedule pods to nodes that satisfy
1346 the affinity expressions specified by this field, but it may choose
1347 a node that violates one or more of the expressions. The node that is
1348 most preferred is the one with the greatest sum of weights, i.e.
1349 for each node that meets all of the scheduling requirements (resource
1350 request, requiredDuringScheduling affinity expressions, etc.),
1351 compute a sum by iterating through the elements of this field and adding
1352 "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
1353 node(s) with the highest sum are the most preferred.
1354 items:
1355 description: The weights of all of the matched WeightedPodAffinityTerm
1356 fields are added per-node to find the most preferred
1357 node(s)
1358 properties:
1359 podAffinityTerm:
1360 description: Required. A pod affinity term,
1361 associated with the corresponding weight.
1362 properties:
1363 labelSelector:
1364 description: |-
1365 A label query over a set of resources, in this case pods.
1366 If it's null, this PodAffinityTerm matches with no Pods.
1367 properties:
1368 matchExpressions:
1369 description: matchExpressions is a list
1370 of label selector requirements. The
1371 requirements are ANDed.
1372 items:
1373 description: |-
1374 A label selector requirement is a selector that contains values, a key, and an operator that
1375 relates the key and values.
1376 properties:
1377 key:
1378 description: key is the label
1379 key that the selector applies
1380 to.
1381 type: string
1382 operator:
1383 description: |-
1384 operator represents a key's relationship to a set of values.
1385 Valid operators are In, NotIn, Exists and DoesNotExist.
1386 type: string
1387 values:
1388 description: |-
1389 values is an array of string values. If the operator is In or NotIn,
1390 the values array must be non-empty. If the operator is Exists or DoesNotExist,
1391 the values array must be empty. This array is replaced during a strategic
1392 merge patch.
1393 items:
1394 type: string
1395 type: array
1396 x-kubernetes-list-type: atomic
1397 required:
1398 - key
1399 - operator
1400 type: object
1401 type: array
1402 x-kubernetes-list-type: atomic
1403 matchLabels:
1404 additionalProperties:
1405 type: string
1406 description: |-
1407 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
1408 map is equivalent to an element of matchExpressions, whose key field is "key", the
1409 operator is "In", and the values array contains only "value". The requirements are ANDed.
1410 type: object
1411 type: object
1412 x-kubernetes-map-type: atomic
1413 matchLabelKeys:
1414 description: |-
1415 MatchLabelKeys is a set of pod label keys to select which pods will
1416 be taken into consideration. The keys are used to lookup values from the
1417 incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)'
1418 to select the group of existing pods which pods will be taken into consideration
1419 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
1420 pod labels will be ignored. The default value is empty.
1421 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
1422 Also, matchLabelKeys cannot be set when labelSelector isn't set.
1423 This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
1424 items:
1425 type: string
1426 type: array
1427 x-kubernetes-list-type: atomic
1428 mismatchLabelKeys:
1429 description: |-
1430 MismatchLabelKeys is a set of pod label keys to select which pods will
1431 be taken into consideration. The keys are used to lookup values from the
1432 incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)'
1433 to select the group of existing pods which pods will be taken into consideration
1434 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
1435 pod labels will be ignored. The default value is empty.
1436 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
1437 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
1438 This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
1439 items:
1440 type: string
1441 type: array
1442 x-kubernetes-list-type: atomic
1443 namespaceSelector:
1444 description: |-
1445 A label query over the set of namespaces that the term applies to.
1446 The term is applied to the union of the namespaces selected by this field
1447 and the ones listed in the namespaces field.
1448 null selector and null or empty namespaces list means "this pod's namespace".
1449 An empty selector ({}) matches all namespaces.
1450 properties:
1451 matchExpressions:
1452 description: matchExpressions is a list
1453 of label selector requirements. The
1454 requirements are ANDed.
1455 items:
1456 description: |-
1457 A label selector requirement is a selector that contains values, a key, and an operator that
1458 relates the key and values.
1459 properties:
1460 key:
1461 description: key is the label
1462 key that the selector applies
1463 to.
1464 type: string
1465 operator:
1466 description: |-
1467 operator represents a key's relationship to a set of values.
1468 Valid operators are In, NotIn, Exists and DoesNotExist.
1469 type: string
1470 values:
1471 description: |-
1472 values is an array of string values. If the operator is In or NotIn,
1473 the values array must be non-empty. If the operator is Exists or DoesNotExist,
1474 the values array must be empty. This array is replaced during a strategic
1475 merge patch.
1476 items:
1477 type: string
1478 type: array
1479 x-kubernetes-list-type: atomic
1480 required:
1481 - key
1482 - operator
1483 type: object
1484 type: array
1485 x-kubernetes-list-type: atomic
1486 matchLabels:
1487 additionalProperties:
1488 type: string
1489 description: |-
1490 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
1491 map is equivalent to an element of matchExpressions, whose key field is "key", the
1492 operator is "In", and the values array contains only "value". The requirements are ANDed.
1493 type: object
1494 type: object
1495 x-kubernetes-map-type: atomic
1496 namespaces:
1497 description: |-
1498 namespaces specifies a static list of namespace names that the term applies to.
1499 The term is applied to the union of the namespaces listed in this field
1500 and the ones selected by namespaceSelector.
1501 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
1502 items:
1503 type: string
1504 type: array
1505 x-kubernetes-list-type: atomic
1506 topologyKey:
1507 description: |-
1508 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
1509 the labelSelector in the specified namespaces, where co-located is defined as running on a node
1510 whose value of the label with key topologyKey matches that of any node on which any of the
1511 selected pods is running.
1512 Empty topologyKey is not allowed.
1513 type: string
1514 required:
1515 - topologyKey
1516 type: object
1517 weight:
1518 description: |-
1519 weight associated with matching the corresponding podAffinityTerm,
1520 in the range 1-100.
1521 format: int32
1522 type: integer
1523 required:
1524 - podAffinityTerm
1525 - weight
1526 type: object
1527 type: array
1528 x-kubernetes-list-type: atomic
1529 requiredDuringSchedulingIgnoredDuringExecution:
1530 description: |-
1531 If the affinity requirements specified by this field are not met at
1532 scheduling time, the pod will not be scheduled onto the node.
1533 If the affinity requirements specified by this field cease to be met
1534 at some point during pod execution (e.g. due to a pod label update), the
1535 system may or may not try to eventually evict the pod from its node.
1536 When there are multiple elements, the lists of nodes corresponding to each
1537 podAffinityTerm are intersected, i.e. all terms must be satisfied.
1538 items:
1539 description: |-
1540 Defines a set of pods (namely those matching the labelSelector
1541 relative to the given namespace(s)) that this pod should be
1542 co-located (affinity) or not co-located (anti-affinity) with,
1543 where co-located is defined as running on a node whose value of
1544 the label with key <topologyKey> matches that of any node on which
1545 a pod of the set of pods is running
1546 properties:
1547 labelSelector:
1548 description: |-
1549 A label query over a set of resources, in this case pods.
1550 If it's null, this PodAffinityTerm matches with no Pods.
1551 properties:
1552 matchExpressions:
1553 description: matchExpressions is a list
1554 of label selector requirements. The requirements
1555 are ANDed.
1556 items:
1557 description: |-
1558 A label selector requirement is a selector that contains values, a key, and an operator that
1559 relates the key and values.
1560 properties:
1561 key:
1562 description: key is the label key
1563 that the selector applies to.
1564 type: string
1565 operator:
1566 description: |-
1567 operator represents a key's relationship to a set of values.
1568 Valid operators are In, NotIn, Exists and DoesNotExist.
1569 type: string
1570 values:
1571 description: |-
1572 values is an array of string values. If the operator is In or NotIn,
1573 the values array must be non-empty. If the operator is Exists or DoesNotExist,
1574 the values array must be empty. This array is replaced during a strategic
1575 merge patch.
1576 items:
1577 type: string
1578 type: array
1579 x-kubernetes-list-type: atomic
1580 required:
1581 - key
1582 - operator
1583 type: object
1584 type: array
1585 x-kubernetes-list-type: atomic
1586 matchLabels:
1587 additionalProperties:
1588 type: string
1589 description: |-
1590 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
1591 map is equivalent to an element of matchExpressions, whose key field is "key", the
1592 operator is "In", and the values array contains only "value". The requirements are ANDed.
1593 type: object
1594 type: object
1595 x-kubernetes-map-type: atomic
1596 matchLabelKeys:
1597 description: |-
1598 MatchLabelKeys is a set of pod label keys to select which pods will
1599 be taken into consideration. The keys are used to lookup values from the
1600 incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)'
1601 to select the group of existing pods which pods will be taken into consideration
1602 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
1603 pod labels will be ignored. The default value is empty.
1604 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
1605 Also, matchLabelKeys cannot be set when labelSelector isn't set.
1606 This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
1607 items:
1608 type: string
1609 type: array
1610 x-kubernetes-list-type: atomic
1611 mismatchLabelKeys:
1612 description: |-
1613 MismatchLabelKeys is a set of pod label keys to select which pods will
1614 be taken into consideration. The keys are used to lookup values from the
1615 incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)'
1616 to select the group of existing pods which pods will be taken into consideration
1617 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
1618 pod labels will be ignored. The default value is empty.
1619 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
1620 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
1621 This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
1622 items:
1623 type: string
1624 type: array
1625 x-kubernetes-list-type: atomic
1626 namespaceSelector:
1627 description: |-
1628 A label query over the set of namespaces that the term applies to.
1629 The term is applied to the union of the namespaces selected by this field
1630 and the ones listed in the namespaces field.
1631 null selector and null or empty namespaces list means "this pod's namespace".
1632 An empty selector ({}) matches all namespaces.
1633 properties:
1634 matchExpressions:
1635 description: matchExpressions is a list
1636 of label selector requirements. The requirements
1637 are ANDed.
1638 items:
1639 description: |-
1640 A label selector requirement is a selector that contains values, a key, and an operator that
1641 relates the key and values.
1642 properties:
1643 key:
1644 description: key is the label key
1645 that the selector applies to.
1646 type: string
1647 operator:
1648 description: |-
1649 operator represents a key's relationship to a set of values.
1650 Valid operators are In, NotIn, Exists and DoesNotExist.
1651 type: string
1652 values:
1653 description: |-
1654 values is an array of string values. If the operator is In or NotIn,
1655 the values array must be non-empty. If the operator is Exists or DoesNotExist,
1656 the values array must be empty. This array is replaced during a strategic
1657 merge patch.
1658 items:
1659 type: string
1660 type: array
1661 x-kubernetes-list-type: atomic
1662 required:
1663 - key
1664 - operator
1665 type: object
1666 type: array
1667 x-kubernetes-list-type: atomic
1668 matchLabels:
1669 additionalProperties:
1670 type: string
1671 description: |-
1672 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
1673 map is equivalent to an element of matchExpressions, whose key field is "key", the
1674 operator is "In", and the values array contains only "value". The requirements are ANDed.
1675 type: object
1676 type: object
1677 x-kubernetes-map-type: atomic
1678 namespaces:
1679 description: |-
1680 namespaces specifies a static list of namespace names that the term applies to.
1681 The term is applied to the union of the namespaces listed in this field
1682 and the ones selected by namespaceSelector.
1683 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
1684 items:
1685 type: string
1686 type: array
1687 x-kubernetes-list-type: atomic
1688 topologyKey:
1689 description: |-
1690 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
1691 the labelSelector in the specified namespaces, where co-located is defined as running on a node
1692 whose value of the label with key topologyKey matches that of any node on which any of the
1693 selected pods is running.
1694 Empty topologyKey is not allowed.
1695 type: string
1696 required:
1697 - topologyKey
1698 type: object
1699 type: array
1700 x-kubernetes-list-type: atomic
1701 type: object
1702 podAntiAffinity:
1703 description: Describes pod anti-affinity scheduling rules
1704 (e.g. avoid putting this pod in the same node, zone,
1705 etc. as some other pod(s)).
1706 properties:
1707 preferredDuringSchedulingIgnoredDuringExecution:
1708 description: |-
1709 The scheduler will prefer to schedule pods to nodes that satisfy
1710 the anti-affinity expressions specified by this field, but it may choose
1711 a node that violates one or more of the expressions. The node that is
1712 most preferred is the one with the greatest sum of weights, i.e.
1713 for each node that meets all of the scheduling requirements (resource
1714 request, requiredDuringScheduling anti-affinity expressions, etc.),
1715 compute a sum by iterating through the elements of this field and adding
1716 "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
1717 node(s) with the highest sum are the most preferred.
1718 items:
1719 description: The weights of all of the matched WeightedPodAffinityTerm
1720 fields are added per-node to find the most preferred
1721 node(s)
1722 properties:
1723 podAffinityTerm:
1724 description: Required. A pod affinity term,
1725 associated with the corresponding weight.
1726 properties:
1727 labelSelector:
1728 description: |-
1729 A label query over a set of resources, in this case pods.
1730 If it's null, this PodAffinityTerm matches with no Pods.
1731 properties:
1732 matchExpressions:
1733 description: matchExpressions is a list
1734 of label selector requirements. The
1735 requirements are ANDed.
1736 items:
1737 description: |-
1738 A label selector requirement is a selector that contains values, a key, and an operator that
1739 relates the key and values.
1740 properties:
1741 key:
1742 description: key is the label
1743 key that the selector applies
1744 to.
1745 type: string
1746 operator:
1747 description: |-
1748 operator represents a key's relationship to a set of values.
1749 Valid operators are In, NotIn, Exists and DoesNotExist.
1750 type: string
1751 values:
1752 description: |-
1753 values is an array of string values. If the operator is In or NotIn,
1754 the values array must be non-empty. If the operator is Exists or DoesNotExist,
1755 the values array must be empty. This array is replaced during a strategic
1756 merge patch.
1757 items:
1758 type: string
1759 type: array
1760 x-kubernetes-list-type: atomic
1761 required:
1762 - key
1763 - operator
1764 type: object
1765 type: array
1766 x-kubernetes-list-type: atomic
1767 matchLabels:
1768 additionalProperties:
1769 type: string
1770 description: |-
1771 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
1772 map is equivalent to an element of matchExpressions, whose key field is "key", the
1773 operator is "In", and the values array contains only "value". The requirements are ANDed.
1774 type: object
1775 type: object
1776 x-kubernetes-map-type: atomic
1777 matchLabelKeys:
1778 description: |-
1779 MatchLabelKeys is a set of pod label keys to select which pods will
1780 be taken into consideration. The keys are used to lookup values from the
1781 incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)'
1782 to select the group of existing pods which pods will be taken into consideration
1783 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
1784 pod labels will be ignored. The default value is empty.
1785 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
1786 Also, matchLabelKeys cannot be set when labelSelector isn't set.
1787 This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
1788 items:
1789 type: string
1790 type: array
1791 x-kubernetes-list-type: atomic
1792 mismatchLabelKeys:
1793 description: |-
1794 MismatchLabelKeys is a set of pod label keys to select which pods will
1795 be taken into consideration. The keys are used to lookup values from the
1796 incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)'
1797 to select the group of existing pods which pods will be taken into consideration
1798 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
1799 pod labels will be ignored. The default value is empty.
1800 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
1801 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
1802 This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
1803 items:
1804 type: string
1805 type: array
1806 x-kubernetes-list-type: atomic
1807 namespaceSelector:
1808 description: |-
1809 A label query over the set of namespaces that the term applies to.
1810 The term is applied to the union of the namespaces selected by this field
1811 and the ones listed in the namespaces field.
1812 null selector and null or empty namespaces list means "this pod's namespace".
1813 An empty selector ({}) matches all namespaces.
1814 properties:
1815 matchExpressions:
1816 description: matchExpressions is a list
1817 of label selector requirements. The
1818 requirements are ANDed.
1819 items:
1820 description: |-
1821 A label selector requirement is a selector that contains values, a key, and an operator that
1822 relates the key and values.
1823 properties:
1824 key:
1825 description: key is the label
1826 key that the selector applies
1827 to.
1828 type: string
1829 operator:
1830 description: |-
1831 operator represents a key's relationship to a set of values.
1832 Valid operators are In, NotIn, Exists and DoesNotExist.
1833 type: string
1834 values:
1835 description: |-
1836 values is an array of string values. If the operator is In or NotIn,
1837 the values array must be non-empty. If the operator is Exists or DoesNotExist,
1838 the values array must be empty. This array is replaced during a strategic
1839 merge patch.
1840 items:
1841 type: string
1842 type: array
1843 x-kubernetes-list-type: atomic
1844 required:
1845 - key
1846 - operator
1847 type: object
1848 type: array
1849 x-kubernetes-list-type: atomic
1850 matchLabels:
1851 additionalProperties:
1852 type: string
1853 description: |-
1854 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
1855 map is equivalent to an element of matchExpressions, whose key field is "key", the
1856 operator is "In", and the values array contains only "value". The requirements are ANDed.
1857 type: object
1858 type: object
1859 x-kubernetes-map-type: atomic
1860 namespaces:
1861 description: |-
1862 namespaces specifies a static list of namespace names that the term applies to.
1863 The term is applied to the union of the namespaces listed in this field
1864 and the ones selected by namespaceSelector.
1865 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
1866 items:
1867 type: string
1868 type: array
1869 x-kubernetes-list-type: atomic
1870 topologyKey:
1871 description: |-
1872 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
1873 the labelSelector in the specified namespaces, where co-located is defined as running on a node
1874 whose value of the label with key topologyKey matches that of any node on which any of the
1875 selected pods is running.
1876 Empty topologyKey is not allowed.
1877 type: string
1878 required:
1879 - topologyKey
1880 type: object
1881 weight:
1882 description: |-
1883 weight associated with matching the corresponding podAffinityTerm,
1884 in the range 1-100.
1885 format: int32
1886 type: integer
1887 required:
1888 - podAffinityTerm
1889 - weight
1890 type: object
1891 type: array
1892 x-kubernetes-list-type: atomic
1893 requiredDuringSchedulingIgnoredDuringExecution:
1894 description: |-
1895 If the anti-affinity requirements specified by this field are not met at
1896 scheduling time, the pod will not be scheduled onto the node.
1897 If the anti-affinity requirements specified by this field cease to be met
1898 at some point during pod execution (e.g. due to a pod label update), the
1899 system may or may not try to eventually evict the pod from its node.
1900 When there are multiple elements, the lists of nodes corresponding to each
1901 podAffinityTerm are intersected, i.e. all terms must be satisfied.
1902 items:
1903 description: |-
1904 Defines a set of pods (namely those matching the labelSelector
1905 relative to the given namespace(s)) that this pod should be
1906 co-located (affinity) or not co-located (anti-affinity) with,
1907 where co-located is defined as running on a node whose value of
1908 the label with key <topologyKey> matches that of any node on which
1909 a pod of the set of pods is running
1910 properties:
1911 labelSelector:
1912 description: |-
1913 A label query over a set of resources, in this case pods.
1914 If it's null, this PodAffinityTerm matches with no Pods.
1915 properties:
1916 matchExpressions:
1917 description: matchExpressions is a list
1918 of label selector requirements. The requirements
1919 are ANDed.
1920 items:
1921 description: |-
1922 A label selector requirement is a selector that contains values, a key, and an operator that
1923 relates the key and values.
1924 properties:
1925 key:
1926 description: key is the label key
1927 that the selector applies to.
1928 type: string
1929 operator:
1930 description: |-
1931 operator represents a key's relationship to a set of values.
1932 Valid operators are In, NotIn, Exists and DoesNotExist.
1933 type: string
1934 values:
1935 description: |-
1936 values is an array of string values. If the operator is In or NotIn,
1937 the values array must be non-empty. If the operator is Exists or DoesNotExist,
1938 the values array must be empty. This array is replaced during a strategic
1939 merge patch.
1940 items:
1941 type: string
1942 type: array
1943 x-kubernetes-list-type: atomic
1944 required:
1945 - key
1946 - operator
1947 type: object
1948 type: array
1949 x-kubernetes-list-type: atomic
1950 matchLabels:
1951 additionalProperties:
1952 type: string
1953 description: |-
1954 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
1955 map is equivalent to an element of matchExpressions, whose key field is "key", the
1956 operator is "In", and the values array contains only "value". The requirements are ANDed.
1957 type: object
1958 type: object
1959 x-kubernetes-map-type: atomic
1960 matchLabelKeys:
1961 description: |-
1962 MatchLabelKeys is a set of pod label keys to select which pods will
1963 be taken into consideration. The keys are used to lookup values from the
1964 incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)'
1965 to select the group of existing pods which pods will be taken into consideration
1966 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
1967 pod labels will be ignored. The default value is empty.
1968 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
1969 Also, matchLabelKeys cannot be set when labelSelector isn't set.
1970 This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
1971 items:
1972 type: string
1973 type: array
1974 x-kubernetes-list-type: atomic
1975 mismatchLabelKeys:
1976 description: |-
1977 MismatchLabelKeys is a set of pod label keys to select which pods will
1978 be taken into consideration. The keys are used to lookup values from the
1979 incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)'
1980 to select the group of existing pods which pods will be taken into consideration
1981 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
1982 pod labels will be ignored. The default value is empty.
1983 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
1984 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
1985 This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
1986 items:
1987 type: string
1988 type: array
1989 x-kubernetes-list-type: atomic
1990 namespaceSelector:
1991 description: |-
1992 A label query over the set of namespaces that the term applies to.
1993 The term is applied to the union of the namespaces selected by this field
1994 and the ones listed in the namespaces field.
1995 null selector and null or empty namespaces list means "this pod's namespace".
1996 An empty selector ({}) matches all namespaces.
1997 properties:
1998 matchExpressions:
1999 description: matchExpressions is a list
2000 of label selector requirements. The requirements
2001 are ANDed.
2002 items:
2003 description: |-
2004 A label selector requirement is a selector that contains values, a key, and an operator that
2005 relates the key and values.
2006 properties:
2007 key:
2008 description: key is the label key
2009 that the selector applies to.
2010 type: string
2011 operator:
2012 description: |-
2013 operator represents a key's relationship to a set of values.
2014 Valid operators are In, NotIn, Exists and DoesNotExist.
2015 type: string
2016 values:
2017 description: |-
2018 values is an array of string values. If the operator is In or NotIn,
2019 the values array must be non-empty. If the operator is Exists or DoesNotExist,
2020 the values array must be empty. This array is replaced during a strategic
2021 merge patch.
2022 items:
2023 type: string
2024 type: array
2025 x-kubernetes-list-type: atomic
2026 required:
2027 - key
2028 - operator
2029 type: object
2030 type: array
2031 x-kubernetes-list-type: atomic
2032 matchLabels:
2033 additionalProperties:
2034 type: string
2035 description: |-
2036 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
2037 map is equivalent to an element of matchExpressions, whose key field is "key", the
2038 operator is "In", and the values array contains only "value". The requirements are ANDed.
2039 type: object
2040 type: object
2041 x-kubernetes-map-type: atomic
2042 namespaces:
2043 description: |-
2044 namespaces specifies a static list of namespace names that the term applies to.
2045 The term is applied to the union of the namespaces listed in this field
2046 and the ones selected by namespaceSelector.
2047 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
2048 items:
2049 type: string
2050 type: array
2051 x-kubernetes-list-type: atomic
2052 topologyKey:
2053 description: |-
2054 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
2055 the labelSelector in the specified namespaces, where co-located is defined as running on a node
2056 whose value of the label with key topologyKey matches that of any node on which any of the
2057 selected pods is running.
2058 Empty topologyKey is not allowed.
2059 type: string
2060 required:
2061 - topologyKey
2062 type: object
2063 type: array
2064 x-kubernetes-list-type: atomic
2065 type: object
2066 type: object
2067 nodeSelector:
2068 additionalProperties:
2069 type: string
2070 description: |-
2071 nodeSelector is the node selector applied to the relevant kind of pods
2072 It specifies a map of key-value pairs: for the pod to be eligible to run on a node,
2073 the node must have each of the indicated key-value pairs as labels
2074 (it can have additional labels as well).
2075 See https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector
2076 type: object
2077 tolerations:
2078 description: |-
2079 tolerations is a list of tolerations applied to the relevant kind of pods
2080 See https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ for more info.
2081 These are additional tolerations other than default ones.
2082 items:
2083 description: |-
2084 The pod this Toleration is attached to tolerates any taint that matches
2085 the triple <key,value,effect> using the matching operator <operator>.
2086 properties:
2087 effect:
2088 description: |-
2089 Effect indicates the taint effect to match. Empty means match all taint effects.
2090 When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
2091 type: string
2092 key:
2093 description: |-
2094 Key is the taint key that the toleration applies to. Empty means match all taint keys.
2095 If the key is empty, operator must be Exists; this combination means to match all values and all keys.
2096 type: string
2097 operator:
2098 description: |-
2099 Operator represents a key's relationship to the value.
2100 Valid operators are Exists and Equal. Defaults to Equal.
2101 Exists is equivalent to wildcard for value, so that a pod can
2102 tolerate all taints of a particular category.
2103 type: string
2104 tolerationSeconds:
2105 description: |-
2106 TolerationSeconds represents the period of time the toleration (which must be
2107 of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
2108 it is not set, which means tolerate the taint forever (do not evict). Zero and
2109 negative values will be treated as 0 (evict immediately) by the system.
2110 format: int64
2111 type: integer
2112 value:
2113 description: |-
2114 Value is the taint value the toleration matches to.
2115 If the operator is Exists, the value should be empty, otherwise just a regular string.
2116 type: string
2117 type: object
2118 type: array
2119 type: object
2120 replicas:
2121 description: |-
2122 replicas indicates how many replicas should be created for each KubeVirt infrastructure
2123 component (like virt-api or virt-controller). Defaults to 2.
2124 WARNING: this is an advanced feature that prevents auto-scaling for core kubevirt components. Please use with caution!
2125 type: integer
2126 type: object
2127 monitorAccount:
2128 description: |-
2129 The name of the Prometheus service account that needs read-access to KubeVirt endpoints
2130 Defaults to prometheus-k8s
2131 type: string
2132 monitorNamespace:
2133 description: |-
2134 The namespace Prometheus is deployed in
2135 Defaults to openshift-monitor
2136 type: string
2137 productComponent:
2138 description: |-
2139 Designate the apps.kubevirt.io/component label for KubeVirt components.
2140 Useful if KubeVirt is included as part of a product.
2141 If ProductComponent is not specified, the component label default value is kubevirt.
2142 type: string
2143 productName:
2144 description: |-
2145 Designate the apps.kubevirt.io/part-of label for KubeVirt components.
2146 Useful if KubeVirt is included as part of a product.
2147 If ProductName is not specified, the part-of label will be omitted.
2148 type: string
2149 productVersion:
2150 description: |-
2151 Designate the apps.kubevirt.io/version label for KubeVirt components.
2152 Useful if KubeVirt is included as part of a product.
2153 If ProductVersion is not specified, KubeVirt's version will be used.
2154 type: string
2155 serviceMonitorNamespace:
2156 description: |-
2157 The namespace the service monitor will be deployed
2158 When ServiceMonitorNamespace is set, then we'll install the service monitor object in that namespace
2159 otherwise we will use the monitoring namespace.
2160 type: string
2161 uninstallStrategy:
2162 description: |-
2163 Specifies if kubevirt can be deleted if workloads are still present.
2164 This is mainly a precaution to avoid accidental data loss
2165 type: string
2166 workloadUpdateStrategy:
2167 description: |-
2168 WorkloadUpdateStrategy defines at the cluster level how to handle
2169 automated workload updates
2170 properties:
2171 batchEvictionInterval:
2172 description: |-
2173 BatchEvictionInterval Represents the interval to wait before issuing the next
2174 batch of shutdowns
2175
2176
2177 Defaults to 1 minute
2178 type: string
2179 batchEvictionSize:
2180 description: |-
2181 BatchEvictionSize Represents the number of VMIs that can be forced updated per
2182 the BatchShutdownInteral interval
2183
2184
2185 Defaults to 10
2186 type: integer
2187 workloadUpdateMethods:
2188 description: |-
2189 WorkloadUpdateMethods defines the methods that can be used to disrupt workloads
2190 during automated workload updates.
2191 When multiple methods are present, the least disruptive method takes
2192 precedence over more disruptive methods. For example if both LiveMigrate and Shutdown
2193 methods are listed, only VMs which are not live migratable will be restarted/shutdown
2194
2195
2196 An empty list defaults to no automated workload updating
2197 items:
2198 type: string
2199 type: array
2200 x-kubernetes-list-type: atomic
2201 type: object
2202 workloads:
2203 description: selectors and tolerations that should apply to KubeVirt
2204 workloads
2205 properties:
2206 nodePlacement:
2207 description: |-
2208 nodePlacement describes scheduling configuration for specific
2209 KubeVirt components
2210 properties:
2211 affinity:
2212 description: |-
2213 affinity enables pod affinity/anti-affinity placement expanding the types of constraints
2214 that can be expressed with nodeSelector.
2215 affinity is going to be applied to the relevant kind of pods in parallel with nodeSelector
2216 See https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity
2217 properties:
2218 nodeAffinity:
2219 description: Describes node affinity scheduling rules
2220 for the pod.
2221 properties:
2222 preferredDuringSchedulingIgnoredDuringExecution:
2223 description: |-
2224 The scheduler will prefer to schedule pods to nodes that satisfy
2225 the affinity expressions specified by this field, but it may choose
2226 a node that violates one or more of the expressions. The node that is
2227 most preferred is the one with the greatest sum of weights, i.e.
2228 for each node that meets all of the scheduling requirements (resource
2229 request, requiredDuringScheduling affinity expressions, etc.),
2230 compute a sum by iterating through the elements of this field and adding
2231 "weight" to the sum if the node matches the corresponding matchExpressions; the
2232 node(s) with the highest sum are the most preferred.
2233 items:
2234 description: |-
2235 An empty preferred scheduling term matches all objects with implicit weight 0
2236 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
2237 properties:
2238 preference:
2239 description: A node selector term, associated
2240 with the corresponding weight.
2241 properties:
2242 matchExpressions:
2243 description: A list of node selector requirements
2244 by node's labels.
2245 items:
2246 description: |-
2247 A node selector requirement is a selector that contains values, a key, and an operator
2248 that relates the key and values.
2249 properties:
2250 key:
2251 description: The label key that the
2252 selector applies to.
2253 type: string
2254 operator:
2255 description: |-
2256 Represents a key's relationship to a set of values.
2257 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
2258 type: string
2259 values:
2260 description: |-
2261 An array of string values. If the operator is In or NotIn,
2262 the values array must be non-empty. If the operator is Exists or DoesNotExist,
2263 the values array must be empty. If the operator is Gt or Lt, the values
2264 array must have a single element, which will be interpreted as an integer.
2265 This array is replaced during a strategic merge patch.
2266 items:
2267 type: string
2268 type: array
2269 x-kubernetes-list-type: atomic
2270 required:
2271 - key
2272 - operator
2273 type: object
2274 type: array
2275 x-kubernetes-list-type: atomic
2276 matchFields:
2277 description: A list of node selector requirements
2278 by node's fields.
2279 items:
2280 description: |-
2281 A node selector requirement is a selector that contains values, a key, and an operator
2282 that relates the key and values.
2283 properties:
2284 key:
2285 description: The label key that the
2286 selector applies to.
2287 type: string
2288 operator:
2289 description: |-
2290 Represents a key's relationship to a set of values.
2291 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
2292 type: string
2293 values:
2294 description: |-
2295 An array of string values. If the operator is In or NotIn,
2296 the values array must be non-empty. If the operator is Exists or DoesNotExist,
2297 the values array must be empty. If the operator is Gt or Lt, the values
2298 array must have a single element, which will be interpreted as an integer.
2299 This array is replaced during a strategic merge patch.
2300 items:
2301 type: string
2302 type: array
2303 x-kubernetes-list-type: atomic
2304 required:
2305 - key
2306 - operator
2307 type: object
2308 type: array
2309 x-kubernetes-list-type: atomic
2310 type: object
2311 x-kubernetes-map-type: atomic
2312 weight:
2313 description: Weight associated with matching
2314 the corresponding nodeSelectorTerm, in the
2315 range 1-100.
2316 format: int32
2317 type: integer
2318 required:
2319 - preference
2320 - weight
2321 type: object
2322 type: array
2323 x-kubernetes-list-type: atomic
2324 requiredDuringSchedulingIgnoredDuringExecution:
2325 description: |-
2326 If the affinity requirements specified by this field are not met at
2327 scheduling time, the pod will not be scheduled onto the node.
2328 If the affinity requirements specified by this field cease to be met
2329 at some point during pod execution (e.g. due to an update), the system
2330 may or may not try to eventually evict the pod from its node.
2331 properties:
2332 nodeSelectorTerms:
2333 description: Required. A list of node selector
2334 terms. The terms are ORed.
2335 items:
2336 description: |-
2337 A null or empty node selector term matches no objects. The requirements of
2338 them are ANDed.
2339 The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
2340 properties:
2341 matchExpressions:
2342 description: A list of node selector requirements
2343 by node's labels.
2344 items:
2345 description: |-
2346 A node selector requirement is a selector that contains values, a key, and an operator
2347 that relates the key and values.
2348 properties:
2349 key:
2350 description: The label key that the
2351 selector applies to.
2352 type: string
2353 operator:
2354 description: |-
2355 Represents a key's relationship to a set of values.
2356 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
2357 type: string
2358 values:
2359 description: |-
2360 An array of string values. If the operator is In or NotIn,
2361 the values array must be non-empty. If the operator is Exists or DoesNotExist,
2362 the values array must be empty. If the operator is Gt or Lt, the values
2363 array must have a single element, which will be interpreted as an integer.
2364 This array is replaced during a strategic merge patch.
2365 items:
2366 type: string
2367 type: array
2368 x-kubernetes-list-type: atomic
2369 required:
2370 - key
2371 - operator
2372 type: object
2373 type: array
2374 x-kubernetes-list-type: atomic
2375 matchFields:
2376 description: A list of node selector requirements
2377 by node's fields.
2378 items:
2379 description: |-
2380 A node selector requirement is a selector that contains values, a key, and an operator
2381 that relates the key and values.
2382 properties:
2383 key:
2384 description: The label key that the
2385 selector applies to.
2386 type: string
2387 operator:
2388 description: |-
2389 Represents a key's relationship to a set of values.
2390 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
2391 type: string
2392 values:
2393 description: |-
2394 An array of string values. If the operator is In or NotIn,
2395 the values array must be non-empty. If the operator is Exists or DoesNotExist,
2396 the values array must be empty. If the operator is Gt or Lt, the values
2397 array must have a single element, which will be interpreted as an integer.
2398 This array is replaced during a strategic merge patch.
2399 items:
2400 type: string
2401 type: array
2402 x-kubernetes-list-type: atomic
2403 required:
2404 - key
2405 - operator
2406 type: object
2407 type: array
2408 x-kubernetes-list-type: atomic
2409 type: object
2410 x-kubernetes-map-type: atomic
2411 type: array
2412 x-kubernetes-list-type: atomic
2413 required:
2414 - nodeSelectorTerms
2415 type: object
2416 x-kubernetes-map-type: atomic
2417 type: object
2418 podAffinity:
2419 description: Describes pod affinity scheduling rules (e.g.
2420 co-locate this pod in the same node, zone, etc. as some
2421 other pod(s)).
2422 properties:
2423 preferredDuringSchedulingIgnoredDuringExecution:
2424 description: |-
2425 The scheduler will prefer to schedule pods to nodes that satisfy
2426 the affinity expressions specified by this field, but it may choose
2427 a node that violates one or more of the expressions. The node that is
2428 most preferred is the one with the greatest sum of weights, i.e.
2429 for each node that meets all of the scheduling requirements (resource
2430 request, requiredDuringScheduling affinity expressions, etc.),
2431 compute a sum by iterating through the elements of this field and adding
2432 "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
2433 node(s) with the highest sum are the most preferred.
2434 items:
2435 description: The weights of all of the matched WeightedPodAffinityTerm
2436 fields are added per-node to find the most preferred
2437 node(s)
2438 properties:
2439 podAffinityTerm:
2440 description: Required. A pod affinity term,
2441 associated with the corresponding weight.
2442 properties:
2443 labelSelector:
2444 description: |-
2445 A label query over a set of resources, in this case pods.
2446 If it's null, this PodAffinityTerm matches with no Pods.
2447 properties:
2448 matchExpressions:
2449 description: matchExpressions is a list
2450 of label selector requirements. The
2451 requirements are ANDed.
2452 items:
2453 description: |-
2454 A label selector requirement is a selector that contains values, a key, and an operator that
2455 relates the key and values.
2456 properties:
2457 key:
2458 description: key is the label
2459 key that the selector applies
2460 to.
2461 type: string
2462 operator:
2463 description: |-
2464 operator represents a key's relationship to a set of values.
2465 Valid operators are In, NotIn, Exists and DoesNotExist.
2466 type: string
2467 values:
2468 description: |-
2469 values is an array of string values. If the operator is In or NotIn,
2470 the values array must be non-empty. If the operator is Exists or DoesNotExist,
2471 the values array must be empty. This array is replaced during a strategic
2472 merge patch.
2473 items:
2474 type: string
2475 type: array
2476 x-kubernetes-list-type: atomic
2477 required:
2478 - key
2479 - operator
2480 type: object
2481 type: array
2482 x-kubernetes-list-type: atomic
2483 matchLabels:
2484 additionalProperties:
2485 type: string
2486 description: |-
2487 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
2488 map is equivalent to an element of matchExpressions, whose key field is "key", the
2489 operator is "In", and the values array contains only "value". The requirements are ANDed.
2490 type: object
2491 type: object
2492 x-kubernetes-map-type: atomic
2493 matchLabelKeys:
2494 description: |-
2495 MatchLabelKeys is a set of pod label keys to select which pods will
2496 be taken into consideration. The keys are used to lookup values from the
2497 incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)'
2498 to select the group of existing pods which pods will be taken into consideration
2499 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
2500 pod labels will be ignored. The default value is empty.
2501 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
2502 Also, matchLabelKeys cannot be set when labelSelector isn't set.
2503 This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
2504 items:
2505 type: string
2506 type: array
2507 x-kubernetes-list-type: atomic
2508 mismatchLabelKeys:
2509 description: |-
2510 MismatchLabelKeys is a set of pod label keys to select which pods will
2511 be taken into consideration. The keys are used to lookup values from the
2512 incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)'
2513 to select the group of existing pods which pods will be taken into consideration
2514 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
2515 pod labels will be ignored. The default value is empty.
2516 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
2517 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
2518 This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
2519 items:
2520 type: string
2521 type: array
2522 x-kubernetes-list-type: atomic
2523 namespaceSelector:
2524 description: |-
2525 A label query over the set of namespaces that the term applies to.
2526 The term is applied to the union of the namespaces selected by this field
2527 and the ones listed in the namespaces field.
2528 null selector and null or empty namespaces list means "this pod's namespace".
2529 An empty selector ({}) matches all namespaces.
2530 properties:
2531 matchExpressions:
2532 description: matchExpressions is a list
2533 of label selector requirements. The
2534 requirements are ANDed.
2535 items:
2536 description: |-
2537 A label selector requirement is a selector that contains values, a key, and an operator that
2538 relates the key and values.
2539 properties:
2540 key:
2541 description: key is the label
2542 key that the selector applies
2543 to.
2544 type: string
2545 operator:
2546 description: |-
2547 operator represents a key's relationship to a set of values.
2548 Valid operators are In, NotIn, Exists and DoesNotExist.
2549 type: string
2550 values:
2551 description: |-
2552 values is an array of string values. If the operator is In or NotIn,
2553 the values array must be non-empty. If the operator is Exists or DoesNotExist,
2554 the values array must be empty. This array is replaced during a strategic
2555 merge patch.
2556 items:
2557 type: string
2558 type: array
2559 x-kubernetes-list-type: atomic
2560 required:
2561 - key
2562 - operator
2563 type: object
2564 type: array
2565 x-kubernetes-list-type: atomic
2566 matchLabels:
2567 additionalProperties:
2568 type: string
2569 description: |-
2570 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
2571 map is equivalent to an element of matchExpressions, whose key field is "key", the
2572 operator is "In", and the values array contains only "value". The requirements are ANDed.
2573 type: object
2574 type: object
2575 x-kubernetes-map-type: atomic
2576 namespaces:
2577 description: |-
2578 namespaces specifies a static list of namespace names that the term applies to.
2579 The term is applied to the union of the namespaces listed in this field
2580 and the ones selected by namespaceSelector.
2581 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
2582 items:
2583 type: string
2584 type: array
2585 x-kubernetes-list-type: atomic
2586 topologyKey:
2587 description: |-
2588 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
2589 the labelSelector in the specified namespaces, where co-located is defined as running on a node
2590 whose value of the label with key topologyKey matches that of any node on which any of the
2591 selected pods is running.
2592 Empty topologyKey is not allowed.
2593 type: string
2594 required:
2595 - topologyKey
2596 type: object
2597 weight:
2598 description: |-
2599 weight associated with matching the corresponding podAffinityTerm,
2600 in the range 1-100.
2601 format: int32
2602 type: integer
2603 required:
2604 - podAffinityTerm
2605 - weight
2606 type: object
2607 type: array
2608 x-kubernetes-list-type: atomic
2609 requiredDuringSchedulingIgnoredDuringExecution:
2610 description: |-
2611 If the affinity requirements specified by this field are not met at
2612 scheduling time, the pod will not be scheduled onto the node.
2613 If the affinity requirements specified by this field cease to be met
2614 at some point during pod execution (e.g. due to a pod label update), the
2615 system may or may not try to eventually evict the pod from its node.
2616 When there are multiple elements, the lists of nodes corresponding to each
2617 podAffinityTerm are intersected, i.e. all terms must be satisfied.
2618 items:
2619 description: |-
2620 Defines a set of pods (namely those matching the labelSelector
2621 relative to the given namespace(s)) that this pod should be
2622 co-located (affinity) or not co-located (anti-affinity) with,
2623 where co-located is defined as running on a node whose value of
2624 the label with key <topologyKey> matches that of any node on which
2625 a pod of the set of pods is running
2626 properties:
2627 labelSelector:
2628 description: |-
2629 A label query over a set of resources, in this case pods.
2630 If it's null, this PodAffinityTerm matches with no Pods.
2631 properties:
2632 matchExpressions:
2633 description: matchExpressions is a list
2634 of label selector requirements. The requirements
2635 are ANDed.
2636 items:
2637 description: |-
2638 A label selector requirement is a selector that contains values, a key, and an operator that
2639 relates the key and values.
2640 properties:
2641 key:
2642 description: key is the label key
2643 that the selector applies to.
2644 type: string
2645 operator:
2646 description: |-
2647 operator represents a key's relationship to a set of values.
2648 Valid operators are In, NotIn, Exists and DoesNotExist.
2649 type: string
2650 values:
2651 description: |-
2652 values is an array of string values. If the operator is In or NotIn,
2653 the values array must be non-empty. If the operator is Exists or DoesNotExist,
2654 the values array must be empty. This array is replaced during a strategic
2655 merge patch.
2656 items:
2657 type: string
2658 type: array
2659 x-kubernetes-list-type: atomic
2660 required:
2661 - key
2662 - operator
2663 type: object
2664 type: array
2665 x-kubernetes-list-type: atomic
2666 matchLabels:
2667 additionalProperties:
2668 type: string
2669 description: |-
2670 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
2671 map is equivalent to an element of matchExpressions, whose key field is "key", the
2672 operator is "In", and the values array contains only "value". The requirements are ANDed.
2673 type: object
2674 type: object
2675 x-kubernetes-map-type: atomic
2676 matchLabelKeys:
2677 description: |-
2678 MatchLabelKeys is a set of pod label keys to select which pods will
2679 be taken into consideration. The keys are used to lookup values from the
2680 incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)'
2681 to select the group of existing pods which pods will be taken into consideration
2682 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
2683 pod labels will be ignored. The default value is empty.
2684 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
2685 Also, matchLabelKeys cannot be set when labelSelector isn't set.
2686 This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
2687 items:
2688 type: string
2689 type: array
2690 x-kubernetes-list-type: atomic
2691 mismatchLabelKeys:
2692 description: |-
2693 MismatchLabelKeys is a set of pod label keys to select which pods will
2694 be taken into consideration. The keys are used to lookup values from the
2695 incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)'
2696 to select the group of existing pods which pods will be taken into consideration
2697 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
2698 pod labels will be ignored. The default value is empty.
2699 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
2700 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
2701 This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
2702 items:
2703 type: string
2704 type: array
2705 x-kubernetes-list-type: atomic
2706 namespaceSelector:
2707 description: |-
2708 A label query over the set of namespaces that the term applies to.
2709 The term is applied to the union of the namespaces selected by this field
2710 and the ones listed in the namespaces field.
2711 null selector and null or empty namespaces list means "this pod's namespace".
2712 An empty selector ({}) matches all namespaces.
2713 properties:
2714 matchExpressions:
2715 description: matchExpressions is a list
2716 of label selector requirements. The requirements
2717 are ANDed.
2718 items:
2719 description: |-
2720 A label selector requirement is a selector that contains values, a key, and an operator that
2721 relates the key and values.
2722 properties:
2723 key:
2724 description: key is the label key
2725 that the selector applies to.
2726 type: string
2727 operator:
2728 description: |-
2729 operator represents a key's relationship to a set of values.
2730 Valid operators are In, NotIn, Exists and DoesNotExist.
2731 type: string
2732 values:
2733 description: |-
2734 values is an array of string values. If the operator is In or NotIn,
2735 the values array must be non-empty. If the operator is Exists or DoesNotExist,
2736 the values array must be empty. This array is replaced during a strategic
2737 merge patch.
2738 items:
2739 type: string
2740 type: array
2741 x-kubernetes-list-type: atomic
2742 required:
2743 - key
2744 - operator
2745 type: object
2746 type: array
2747 x-kubernetes-list-type: atomic
2748 matchLabels:
2749 additionalProperties:
2750 type: string
2751 description: |-
2752 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
2753 map is equivalent to an element of matchExpressions, whose key field is "key", the
2754 operator is "In", and the values array contains only "value". The requirements are ANDed.
2755 type: object
2756 type: object
2757 x-kubernetes-map-type: atomic
2758 namespaces:
2759 description: |-
2760 namespaces specifies a static list of namespace names that the term applies to.
2761 The term is applied to the union of the namespaces listed in this field
2762 and the ones selected by namespaceSelector.
2763 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
2764 items:
2765 type: string
2766 type: array
2767 x-kubernetes-list-type: atomic
2768 topologyKey:
2769 description: |-
2770 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
2771 the labelSelector in the specified namespaces, where co-located is defined as running on a node
2772 whose value of the label with key topologyKey matches that of any node on which any of the
2773 selected pods is running.
2774 Empty topologyKey is not allowed.
2775 type: string
2776 required:
2777 - topologyKey
2778 type: object
2779 type: array
2780 x-kubernetes-list-type: atomic
2781 type: object
2782 podAntiAffinity:
2783 description: Describes pod anti-affinity scheduling rules
2784 (e.g. avoid putting this pod in the same node, zone,
2785 etc. as some other pod(s)).
2786 properties:
2787 preferredDuringSchedulingIgnoredDuringExecution:
2788 description: |-
2789 The scheduler will prefer to schedule pods to nodes that satisfy
2790 the anti-affinity expressions specified by this field, but it may choose
2791 a node that violates one or more of the expressions. The node that is
2792 most preferred is the one with the greatest sum of weights, i.e.
2793 for each node that meets all of the scheduling requirements (resource
2794 request, requiredDuringScheduling anti-affinity expressions, etc.),
2795 compute a sum by iterating through the elements of this field and adding
2796 "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
2797 node(s) with the highest sum are the most preferred.
2798 items:
2799 description: The weights of all of the matched WeightedPodAffinityTerm
2800 fields are added per-node to find the most preferred
2801 node(s)
2802 properties:
2803 podAffinityTerm:
2804 description: Required. A pod affinity term,
2805 associated with the corresponding weight.
2806 properties:
2807 labelSelector:
2808 description: |-
2809 A label query over a set of resources, in this case pods.
2810 If it's null, this PodAffinityTerm matches with no Pods.
2811 properties:
2812 matchExpressions:
2813 description: matchExpressions is a list
2814 of label selector requirements. The
2815 requirements are ANDed.
2816 items:
2817 description: |-
2818 A label selector requirement is a selector that contains values, a key, and an operator that
2819 relates the key and values.
2820 properties:
2821 key:
2822 description: key is the label
2823 key that the selector applies
2824 to.
2825 type: string
2826 operator:
2827 description: |-
2828 operator represents a key's relationship to a set of values.
2829 Valid operators are In, NotIn, Exists and DoesNotExist.
2830 type: string
2831 values:
2832 description: |-
2833 values is an array of string values. If the operator is In or NotIn,
2834 the values array must be non-empty. If the operator is Exists or DoesNotExist,
2835 the values array must be empty. This array is replaced during a strategic
2836 merge patch.
2837 items:
2838 type: string
2839 type: array
2840 x-kubernetes-list-type: atomic
2841 required:
2842 - key
2843 - operator
2844 type: object
2845 type: array
2846 x-kubernetes-list-type: atomic
2847 matchLabels:
2848 additionalProperties:
2849 type: string
2850 description: |-
2851 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
2852 map is equivalent to an element of matchExpressions, whose key field is "key", the
2853 operator is "In", and the values array contains only "value". The requirements are ANDed.
2854 type: object
2855 type: object
2856 x-kubernetes-map-type: atomic
2857 matchLabelKeys:
2858 description: |-
2859 MatchLabelKeys is a set of pod label keys to select which pods will
2860 be taken into consideration. The keys are used to lookup values from the
2861 incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)'
2862 to select the group of existing pods which pods will be taken into consideration
2863 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
2864 pod labels will be ignored. The default value is empty.
2865 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
2866 Also, matchLabelKeys cannot be set when labelSelector isn't set.
2867 This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
2868 items:
2869 type: string
2870 type: array
2871 x-kubernetes-list-type: atomic
2872 mismatchLabelKeys:
2873 description: |-
2874 MismatchLabelKeys is a set of pod label keys to select which pods will
2875 be taken into consideration. The keys are used to lookup values from the
2876 incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)'
2877 to select the group of existing pods which pods will be taken into consideration
2878 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
2879 pod labels will be ignored. The default value is empty.
2880 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
2881 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
2882 This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
2883 items:
2884 type: string
2885 type: array
2886 x-kubernetes-list-type: atomic
2887 namespaceSelector:
2888 description: |-
2889 A label query over the set of namespaces that the term applies to.
2890 The term is applied to the union of the namespaces selected by this field
2891 and the ones listed in the namespaces field.
2892 null selector and null or empty namespaces list means "this pod's namespace".
2893 An empty selector ({}) matches all namespaces.
2894 properties:
2895 matchExpressions:
2896 description: matchExpressions is a list
2897 of label selector requirements. The
2898 requirements are ANDed.
2899 items:
2900 description: |-
2901 A label selector requirement is a selector that contains values, a key, and an operator that
2902 relates the key and values.
2903 properties:
2904 key:
2905 description: key is the label
2906 key that the selector applies
2907 to.
2908 type: string
2909 operator:
2910 description: |-
2911 operator represents a key's relationship to a set of values.
2912 Valid operators are In, NotIn, Exists and DoesNotExist.
2913 type: string
2914 values:
2915 description: |-
2916 values is an array of string values. If the operator is In or NotIn,
2917 the values array must be non-empty. If the operator is Exists or DoesNotExist,
2918 the values array must be empty. This array is replaced during a strategic
2919 merge patch.
2920 items:
2921 type: string
2922 type: array
2923 x-kubernetes-list-type: atomic
2924 required:
2925 - key
2926 - operator
2927 type: object
2928 type: array
2929 x-kubernetes-list-type: atomic
2930 matchLabels:
2931 additionalProperties:
2932 type: string
2933 description: |-
2934 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
2935 map is equivalent to an element of matchExpressions, whose key field is "key", the
2936 operator is "In", and the values array contains only "value". The requirements are ANDed.
2937 type: object
2938 type: object
2939 x-kubernetes-map-type: atomic
2940 namespaces:
2941 description: |-
2942 namespaces specifies a static list of namespace names that the term applies to.
2943 The term is applied to the union of the namespaces listed in this field
2944 and the ones selected by namespaceSelector.
2945 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
2946 items:
2947 type: string
2948 type: array
2949 x-kubernetes-list-type: atomic
2950 topologyKey:
2951 description: |-
2952 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
2953 the labelSelector in the specified namespaces, where co-located is defined as running on a node
2954 whose value of the label with key topologyKey matches that of any node on which any of the
2955 selected pods is running.
2956 Empty topologyKey is not allowed.
2957 type: string
2958 required:
2959 - topologyKey
2960 type: object
2961 weight:
2962 description: |-
2963 weight associated with matching the corresponding podAffinityTerm,
2964 in the range 1-100.
2965 format: int32
2966 type: integer
2967 required:
2968 - podAffinityTerm
2969 - weight
2970 type: object
2971 type: array
2972 x-kubernetes-list-type: atomic
2973 requiredDuringSchedulingIgnoredDuringExecution:
2974 description: |-
2975 If the anti-affinity requirements specified by this field are not met at
2976 scheduling time, the pod will not be scheduled onto the node.
2977 If the anti-affinity requirements specified by this field cease to be met
2978 at some point during pod execution (e.g. due to a pod label update), the
2979 system may or may not try to eventually evict the pod from its node.
2980 When there are multiple elements, the lists of nodes corresponding to each
2981 podAffinityTerm are intersected, i.e. all terms must be satisfied.
2982 items:
2983 description: |-
2984 Defines a set of pods (namely those matching the labelSelector
2985 relative to the given namespace(s)) that this pod should be
2986 co-located (affinity) or not co-located (anti-affinity) with,
2987 where co-located is defined as running on a node whose value of
2988 the label with key <topologyKey> matches that of any node on which
2989 a pod of the set of pods is running
2990 properties:
2991 labelSelector:
2992 description: |-
2993 A label query over a set of resources, in this case pods.
2994 If it's null, this PodAffinityTerm matches with no Pods.
2995 properties:
2996 matchExpressions:
2997 description: matchExpressions is a list
2998 of label selector requirements. The requirements
2999 are ANDed.
3000 items:
3001 description: |-
3002 A label selector requirement is a selector that contains values, a key, and an operator that
3003 relates the key and values.
3004 properties:
3005 key:
3006 description: key is the label key
3007 that the selector applies to.
3008 type: string
3009 operator:
3010 description: |-
3011 operator represents a key's relationship to a set of values.
3012 Valid operators are In, NotIn, Exists and DoesNotExist.
3013 type: string
3014 values:
3015 description: |-
3016 values is an array of string values. If the operator is In or NotIn,
3017 the values array must be non-empty. If the operator is Exists or DoesNotExist,
3018 the values array must be empty. This array is replaced during a strategic
3019 merge patch.
3020 items:
3021 type: string
3022 type: array
3023 x-kubernetes-list-type: atomic
3024 required:
3025 - key
3026 - operator
3027 type: object
3028 type: array
3029 x-kubernetes-list-type: atomic
3030 matchLabels:
3031 additionalProperties:
3032 type: string
3033 description: |-
3034 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
3035 map is equivalent to an element of matchExpressions, whose key field is "key", the
3036 operator is "In", and the values array contains only "value". The requirements are ANDed.
3037 type: object
3038 type: object
3039 x-kubernetes-map-type: atomic
3040 matchLabelKeys:
3041 description: |-
3042 MatchLabelKeys is a set of pod label keys to select which pods will
3043 be taken into consideration. The keys are used to lookup values from the
3044 incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)'
3045 to select the group of existing pods which pods will be taken into consideration
3046 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
3047 pod labels will be ignored. The default value is empty.
3048 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
3049 Also, matchLabelKeys cannot be set when labelSelector isn't set.
3050 This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
3051 items:
3052 type: string
3053 type: array
3054 x-kubernetes-list-type: atomic
3055 mismatchLabelKeys:
3056 description: |-
3057 MismatchLabelKeys is a set of pod label keys to select which pods will
3058 be taken into consideration. The keys are used to lookup values from the
3059 incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)'
3060 to select the group of existing pods which pods will be taken into consideration
3061 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
3062 pod labels will be ignored. The default value is empty.
3063 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
3064 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
3065 This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
3066 items:
3067 type: string
3068 type: array
3069 x-kubernetes-list-type: atomic
3070 namespaceSelector:
3071 description: |-
3072 A label query over the set of namespaces that the term applies to.
3073 The term is applied to the union of the namespaces selected by this field
3074 and the ones listed in the namespaces field.
3075 null selector and null or empty namespaces list means "this pod's namespace".
3076 An empty selector ({}) matches all namespaces.
3077 properties:
3078 matchExpressions:
3079 description: matchExpressions is a list
3080 of label selector requirements. The requirements
3081 are ANDed.
3082 items:
3083 description: |-
3084 A label selector requirement is a selector that contains values, a key, and an operator that
3085 relates the key and values.
3086 properties:
3087 key:
3088 description: key is the label key
3089 that the selector applies to.
3090 type: string
3091 operator:
3092 description: |-
3093 operator represents a key's relationship to a set of values.
3094 Valid operators are In, NotIn, Exists and DoesNotExist.
3095 type: string
3096 values:
3097 description: |-
3098 values is an array of string values. If the operator is In or NotIn,
3099 the values array must be non-empty. If the operator is Exists or DoesNotExist,
3100 the values array must be empty. This array is replaced during a strategic
3101 merge patch.
3102 items:
3103 type: string
3104 type: array
3105 x-kubernetes-list-type: atomic
3106 required:
3107 - key
3108 - operator
3109 type: object
3110 type: array
3111 x-kubernetes-list-type: atomic
3112 matchLabels:
3113 additionalProperties:
3114 type: string
3115 description: |-
3116 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
3117 map is equivalent to an element of matchExpressions, whose key field is "key", the
3118 operator is "In", and the values array contains only "value". The requirements are ANDed.
3119 type: object
3120 type: object
3121 x-kubernetes-map-type: atomic
3122 namespaces:
3123 description: |-
3124 namespaces specifies a static list of namespace names that the term applies to.
3125 The term is applied to the union of the namespaces listed in this field
3126 and the ones selected by namespaceSelector.
3127 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
3128 items:
3129 type: string
3130 type: array
3131 x-kubernetes-list-type: atomic
3132 topologyKey:
3133 description: |-
3134 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
3135 the labelSelector in the specified namespaces, where co-located is defined as running on a node
3136 whose value of the label with key topologyKey matches that of any node on which any of the
3137 selected pods is running.
3138 Empty topologyKey is not allowed.
3139 type: string
3140 required:
3141 - topologyKey
3142 type: object
3143 type: array
3144 x-kubernetes-list-type: atomic
3145 type: object
3146 type: object
3147 nodeSelector:
3148 additionalProperties:
3149 type: string
3150 description: |-
3151 nodeSelector is the node selector applied to the relevant kind of pods
3152 It specifies a map of key-value pairs: for the pod to be eligible to run on a node,
3153 the node must have each of the indicated key-value pairs as labels
3154 (it can have additional labels as well).
3155 See https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector
3156 type: object
3157 tolerations:
3158 description: |-
3159 tolerations is a list of tolerations applied to the relevant kind of pods
3160 See https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ for more info.
3161 These are additional tolerations other than default ones.
3162 items:
3163 description: |-
3164 The pod this Toleration is attached to tolerates any taint that matches
3165 the triple <key,value,effect> using the matching operator <operator>.
3166 properties:
3167 effect:
3168 description: |-
3169 Effect indicates the taint effect to match. Empty means match all taint effects.
3170 When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
3171 type: string
3172 key:
3173 description: |-
3174 Key is the taint key that the toleration applies to. Empty means match all taint keys.
3175 If the key is empty, operator must be Exists; this combination means to match all values and all keys.
3176 type: string
3177 operator:
3178 description: |-
3179 Operator represents a key's relationship to the value.
3180 Valid operators are Exists and Equal. Defaults to Equal.
3181 Exists is equivalent to wildcard for value, so that a pod can
3182 tolerate all taints of a particular category.
3183 type: string
3184 tolerationSeconds:
3185 description: |-
3186 TolerationSeconds represents the period of time the toleration (which must be
3187 of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
3188 it is not set, which means tolerate the taint forever (do not evict). Zero and
3189 negative values will be treated as 0 (evict immediately) by the system.
3190 format: int64
3191 type: integer
3192 value:
3193 description: |-
3194 Value is the taint value the toleration matches to.
3195 If the operator is Exists, the value should be empty, otherwise just a regular string.
3196 type: string
3197 type: object
3198 type: array
3199 type: object
3200 replicas:
3201 description: |-
3202 replicas indicates how many replicas should be created for each KubeVirt infrastructure
3203 component (like virt-api or virt-controller). Defaults to 2.
3204 WARNING: this is an advanced feature that prevents auto-scaling for core kubevirt components. Please use with caution!
3205 type: integer
3206 type: object
3207 type: object
3208 status:
3209 description: KubeVirtStatus represents information pertaining to a KubeVirt
3210 deployment.
3211 properties:
3212 conditions:
3213 items:
3214 description: KubeVirtCondition represents a condition of a KubeVirt
3215 deployment
3216 properties:
3217 lastProbeTime:
3218 format: date-time
3219 nullable: true
3220 type: string
3221 lastTransitionTime:
3222 format: date-time
3223 nullable: true
3224 type: string
3225 message:
3226 type: string
3227 reason:
3228 type: string
3229 status:
3230 type: string
3231 type:
3232 type: string
3233 required:
3234 - status
3235 - type
3236 type: object
3237 type: array
3238 defaultArchitecture:
3239 type: string
3240 generations:
3241 items:
3242 description: GenerationStatus keeps track of the generation for
3243 a given resource so that decisions about forced updates can be
3244 made.
3245 properties:
3246 group:
3247 description: group is the group of the thing you're tracking
3248 type: string
3249 hash:
3250 description: hash is an optional field set for resources without
3251 generation that are content sensitive like secrets and configmaps
3252 type: string
3253 lastGeneration:
3254 description: lastGeneration is the last generation of the workload
3255 controller involved
3256 format: int64
3257 type: integer
3258 name:
3259 description: name is the name of the thing you're tracking
3260 type: string
3261 namespace:
3262 description: namespace is where the thing you're tracking is
3263 type: string
3264 resource:
3265 description: resource is the resource type of the thing you're
3266 tracking
3267 type: string
3268 required:
3269 - group
3270 - lastGeneration
3271 - name
3272 - resource
3273 type: object
3274 type: array
3275 x-kubernetes-list-type: atomic
3276 observedDeploymentConfig:
3277 type: string
3278 observedDeploymentID:
3279 type: string
3280 observedGeneration:
3281 format: int64
3282 type: integer
3283 observedKubeVirtRegistry:
3284 type: string
3285 observedKubeVirtVersion:
3286 type: string
3287 operatorVersion:
3288 type: string
3289 outdatedVirtualMachineInstanceWorkloads:
3290 type: integer
3291 phase:
3292 description: KubeVirtPhase is a label for the phase of a KubeVirt
3293 deployment at the current time.
3294 type: string
3295 targetDeploymentConfig:
3296 type: string
3297 targetDeploymentID:
3298 type: string
3299 targetKubeVirtRegistry:
3300 type: string
3301 targetKubeVirtVersion:
3302 type: string
3303 type: object
3304 required:
3305 - spec
3306 type: object
3307 served: true
3308 storage: true
3309 subresources:
3310 status: {}
3311 - additionalPrinterColumns:
3312 - jsonPath: .metadata.creationTimestamp
3313 name: Age
3314 type: date
3315 - jsonPath: .status.phase
3316 name: Phase
3317 type: string
3318 deprecated: true
3319 deprecationWarning: kubevirt.io/v1alpha3 is now deprecated and will be removed
3320 in a future release.
3321 name: v1alpha3
3322 schema:
3323 openAPIV3Schema:
3324 description: KubeVirt represents the object deploying all KubeVirt resources
3325 properties:
3326 apiVersion:
3327 description: |-
3328 APIVersion defines the versioned schema of this representation of an object.
3329 Servers should convert recognized schemas to the latest internal value, and
3330 may reject unrecognized values.
3331 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
3332 type: string
3333 kind:
3334 description: |-
3335 Kind is a string value representing the REST resource this object represents.
3336 Servers may infer this from the endpoint the client submits requests to.
3337 Cannot be updated.
3338 In CamelCase.
3339 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
3340 type: string
3341 metadata:
3342 type: object
3343 spec:
3344 properties:
3345 certificateRotateStrategy:
3346 properties:
3347 selfSigned:
3348 properties:
3349 ca:
3350 description: |-
3351 CA configuration
3352 CA certs are kept in the CA bundle as long as they are valid
3353 properties:
3354 duration:
3355 description: The requested 'duration' (i.e. lifetime)
3356 of the Certificate.
3357 type: string
3358 renewBefore:
3359 description: |-
3360 The amount of time before the currently issued certificate's "notAfter"
3361 time that we will begin to attempt to renew the certificate.
3362 type: string
3363 type: object
3364 caOverlapInterval:
3365 description: Deprecated. Use CA.Duration and CA.RenewBefore
3366 instead
3367 type: string
3368 caRotateInterval:
3369 description: Deprecated. Use CA.Duration instead
3370 type: string
3371 certRotateInterval:
3372 description: Deprecated. Use Server.Duration instead
3373 type: string
3374 server:
3375 description: |-
3376 Server configuration
3377 Certs are rotated and discarded
3378 properties:
3379 duration:
3380 description: The requested 'duration' (i.e. lifetime)
3381 of the Certificate.
3382 type: string
3383 renewBefore:
3384 description: |-
3385 The amount of time before the currently issued certificate's "notAfter"
3386 time that we will begin to attempt to renew the certificate.
3387 type: string
3388 type: object
3389 type: object
3390 type: object
3391 configuration:
3392 description: |-
3393 holds kubevirt configurations.
3394 same as the virt-configMap
3395 properties:
3396 additionalGuestMemoryOverheadRatio:
3397 description: |-
3398 AdditionalGuestMemoryOverheadRatio can be used to increase the virtualization infrastructure
3399 overhead. This is useful, since the calculation of this overhead is not accurate and cannot
3400 be entirely known in advance. The ratio that is being set determines by which factor to increase
3401 the overhead calculated by Kubevirt. A higher ratio means that the VMs would be less compromised
3402 by node pressures, but would mean that fewer VMs could be scheduled to a node.
3403 If not set, the default is 1.
3404 type: string
3405 apiConfiguration:
3406 description: |-
3407 ReloadableComponentConfiguration holds all generic k8s configuration options which can
3408 be reloaded by components without requiring a restart.
3409 properties:
3410 restClient:
3411 description: RestClient can be used to tune certain aspects
3412 of the k8s client in use.
3413 properties:
3414 rateLimiter:
3415 description: RateLimiter allows selecting and configuring
3416 different rate limiters for the k8s client.
3417 properties:
3418 tokenBucketRateLimiter:
3419 properties:
3420 burst:
3421 description: |-
3422 Maximum burst for throttle.
3423 If it's zero, the component default will be used
3424 type: integer
3425 qps:
3426 description: |-
3427 QPS indicates the maximum QPS to the apiserver from this client.
3428 If it's zero, the component default will be used
3429 type: number
3430 required:
3431 - burst
3432 - qps
3433 type: object
3434 type: object
3435 type: object
3436 type: object
3437 architectureConfiguration:
3438 properties:
3439 amd64:
3440 properties:
3441 emulatedMachines:
3442 items:
3443 type: string
3444 type: array
3445 x-kubernetes-list-type: atomic
3446 machineType:
3447 type: string
3448 ovmfPath:
3449 type: string
3450 type: object
3451 arm64:
3452 properties:
3453 emulatedMachines:
3454 items:
3455 type: string
3456 type: array
3457 x-kubernetes-list-type: atomic
3458 machineType:
3459 type: string
3460 ovmfPath:
3461 type: string
3462 type: object
3463 defaultArchitecture:
3464 type: string
3465 ppc64le:
3466 properties:
3467 emulatedMachines:
3468 items:
3469 type: string
3470 type: array
3471 x-kubernetes-list-type: atomic
3472 machineType:
3473 type: string
3474 ovmfPath:
3475 type: string
3476 type: object
3477 type: object
3478 autoCPULimitNamespaceLabelSelector:
3479 description: |-
3480 When set, AutoCPULimitNamespaceLabelSelector will set a CPU limit on virt-launcher for VMIs running inside
3481 namespaces that match the label selector.
3482 The CPU limit will equal the number of requested vCPUs.
3483 This setting does not apply to VMIs with dedicated CPUs.
3484 properties:
3485 matchExpressions:
3486 description: matchExpressions is a list of label selector
3487 requirements. The requirements are ANDed.
3488 items:
3489 description: |-
3490 A label selector requirement is a selector that contains values, a key, and an operator that
3491 relates the key and values.
3492 properties:
3493 key:
3494 description: key is the label key that the selector
3495 applies to.
3496 type: string
3497 operator:
3498 description: |-
3499 operator represents a key's relationship to a set of values.
3500 Valid operators are In, NotIn, Exists and DoesNotExist.
3501 type: string
3502 values:
3503 description: |-
3504 values is an array of string values. If the operator is In or NotIn,
3505 the values array must be non-empty. If the operator is Exists or DoesNotExist,
3506 the values array must be empty. This array is replaced during a strategic
3507 merge patch.
3508 items:
3509 type: string
3510 type: array
3511 x-kubernetes-list-type: atomic
3512 required:
3513 - key
3514 - operator
3515 type: object
3516 type: array
3517 x-kubernetes-list-type: atomic
3518 matchLabels:
3519 additionalProperties:
3520 type: string
3521 description: |-
3522 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
3523 map is equivalent to an element of matchExpressions, whose key field is "key", the
3524 operator is "In", and the values array contains only "value". The requirements are ANDed.
3525 type: object
3526 type: object
3527 x-kubernetes-map-type: atomic
3528 controllerConfiguration:
3529 description: |-
3530 ReloadableComponentConfiguration holds all generic k8s configuration options which can
3531 be reloaded by components without requiring a restart.
3532 properties:
3533 restClient:
3534 description: RestClient can be used to tune certain aspects
3535 of the k8s client in use.
3536 properties:
3537 rateLimiter:
3538 description: RateLimiter allows selecting and configuring
3539 different rate limiters for the k8s client.
3540 properties:
3541 tokenBucketRateLimiter:
3542 properties:
3543 burst:
3544 description: |-
3545 Maximum burst for throttle.
3546 If it's zero, the component default will be used
3547 type: integer
3548 qps:
3549 description: |-
3550 QPS indicates the maximum QPS to the apiserver from this client.
3551 If it's zero, the component default will be used
3552 type: number
3553 required:
3554 - burst
3555 - qps
3556 type: object
3557 type: object
3558 type: object
3559 type: object
3560 cpuModel:
3561 type: string
3562 cpuRequest:
3563 anyOf:
3564 - type: integer
3565 - type: string
3566 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
3567 x-kubernetes-int-or-string: true
3568 defaultRuntimeClass:
3569 type: string
3570 developerConfiguration:
3571 description: DeveloperConfiguration holds developer options
3572 properties:
3573 cpuAllocationRatio:
3574 description: |-
3575 For each requested virtual CPU, CPUAllocationRatio defines how much physical CPU to request per VMI
3576 from the hosting node. The value is in fraction of a CPU thread (or core on non-hyperthreaded nodes).
3577 For example, a value of 1 means 1 physical CPU thread per VMI CPU thread.
3578 A value of 100 would be 1% of a physical thread allocated for each requested VMI thread.
3579 This option has no effect on VMIs that request dedicated CPUs. More information at:
3580 https://kubevirt.io/user-guide/operations/node_overcommit/#node-cpu-allocation-ratio
3581 Defaults to 10
3582 type: integer
3583 diskVerification:
3584 description: DiskVerification holds container disks verification
3585 limits
3586 properties:
3587 memoryLimit:
3588 anyOf:
3589 - type: integer
3590 - type: string
3591 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
3592 x-kubernetes-int-or-string: true
3593 required:
3594 - memoryLimit
3595 type: object
3596 featureGates:
3597 description: FeatureGates is the list of experimental features
3598 to enable. Defaults to none
3599 items:
3600 type: string
3601 type: array
3602 logVerbosity:
3603 description: LogVerbosity sets log verbosity level of various
3604 components
3605 properties:
3606 nodeVerbosity:
3607 additionalProperties:
3608 type: integer
3609 description: NodeVerbosity represents a map of nodes with
3610 a specific verbosity level
3611 type: object
3612 virtAPI:
3613 type: integer
3614 virtController:
3615 type: integer
3616 virtHandler:
3617 type: integer
3618 virtLauncher:
3619 type: integer
3620 virtOperator:
3621 type: integer
3622 type: object
3623 memoryOvercommit:
3624 description: |-
3625 MemoryOvercommit is the percentage of memory we want to give VMIs compared to the amount
3626 given to its parent pod (virt-launcher). For example, a value of 102 means the VMI will
3627 "see" 2% more memory than its parent pod. Values under 100 are effectively "undercommits".
3628 Overcommits can lead to memory exhaustion, which in turn can lead to crashes. Use carefully.
3629 Defaults to 100
3630 type: integer
3631 minimumClusterTSCFrequency:
3632 description: |-
3633 Allow overriding the automatically determined minimum TSC frequency of the cluster
3634 and fixate the minimum to this frequency.
3635 format: int64
3636 type: integer
3637 minimumReservePVCBytes:
3638 description: |-
3639 MinimumReservePVCBytes is the amount of space, in bytes, to leave unused on disks.
3640 Defaults to 131072 (128KiB)
3641 format: int64
3642 type: integer
3643 nodeSelectors:
3644 additionalProperties:
3645 type: string
3646 description: |-
3647 NodeSelectors allows restricting VMI creation to nodes that match a set of labels.
3648 Defaults to none
3649 type: object
3650 pvcTolerateLessSpaceUpToPercent:
3651 description: |-
3652 LessPVCSpaceToleration determines how much smaller, in percentage, disk PVCs are
3653 allowed to be compared to the requested size (to account for various overheads).
3654 Defaults to 10
3655 type: integer
3656 useEmulation:
3657 description: |-
3658 UseEmulation can be set to true to allow fallback to software emulation
3659 in case hardware-assisted emulation is not available. Defaults to false
3660 type: boolean
3661 type: object
3662 emulatedMachines:
3663 description: Deprecated. Use architectureConfiguration instead.
3664 items:
3665 type: string
3666 type: array
3667 evictionStrategy:
3668 description: |-
3669 EvictionStrategy defines at the cluster level if the VirtualMachineInstance should be
3670 migrated instead of shut-off in case of a node drain. If the VirtualMachineInstance specific
3671 field is set it overrides the cluster level one.
3672 type: string
3673 handlerConfiguration:
3674 description: |-
3675 ReloadableComponentConfiguration holds all generic k8s configuration options which can
3676 be reloaded by components without requiring a restart.
3677 properties:
3678 restClient:
3679 description: RestClient can be used to tune certain aspects
3680 of the k8s client in use.
3681 properties:
3682 rateLimiter:
3683 description: RateLimiter allows selecting and configuring
3684 different rate limiters for the k8s client.
3685 properties:
3686 tokenBucketRateLimiter:
3687 properties:
3688 burst:
3689 description: |-
3690 Maximum burst for throttle.
3691 If it's zero, the component default will be used
3692 type: integer
3693 qps:
3694 description: |-
3695 QPS indicates the maximum QPS to the apiserver from this client.
3696 If it's zero, the component default will be used
3697 type: number
3698 required:
3699 - burst
3700 - qps
3701 type: object
3702 type: object
3703 type: object
3704 type: object
3705 imagePullPolicy:
3706 description: PullPolicy describes a policy for if/when to pull
3707 a container image
3708 type: string
3709 ksmConfiguration:
3710 description: KSMConfiguration holds the information regarding
3711 the enabling the KSM in the nodes (if available).
3712 properties:
3713 nodeLabelSelector:
3714 description: |-
3715 NodeLabelSelector is a selector that filters in which nodes the KSM will be enabled.
3716 Empty NodeLabelSelector will enable ksm for every node.
3717 properties:
3718 matchExpressions:
3719 description: matchExpressions is a list of label selector
3720 requirements. The requirements are ANDed.
3721 items:
3722 description: |-
3723 A label selector requirement is a selector that contains values, a key, and an operator that
3724 relates the key and values.
3725 properties:
3726 key:
3727 description: key is the label key that the selector
3728 applies to.
3729 type: string
3730 operator:
3731 description: |-
3732 operator represents a key's relationship to a set of values.
3733 Valid operators are In, NotIn, Exists and DoesNotExist.
3734 type: string
3735 values:
3736 description: |-
3737 values is an array of string values. If the operator is In or NotIn,
3738 the values array must be non-empty. If the operator is Exists or DoesNotExist,
3739 the values array must be empty. This array is replaced during a strategic
3740 merge patch.
3741 items:
3742 type: string
3743 type: array
3744 x-kubernetes-list-type: atomic
3745 required:
3746 - key
3747 - operator
3748 type: object
3749 type: array
3750 x-kubernetes-list-type: atomic
3751 matchLabels:
3752 additionalProperties:
3753 type: string
3754 description: |-
3755 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
3756 map is equivalent to an element of matchExpressions, whose key field is "key", the
3757 operator is "In", and the values array contains only "value". The requirements are ANDed.
3758 type: object
3759 type: object
3760 x-kubernetes-map-type: atomic
3761 type: object
3762 liveUpdateConfiguration:
3763 description: LiveUpdateConfiguration holds defaults for live update
3764 features
3765 properties:
3766 maxCpuSockets:
3767 description: MaxCpuSockets holds the maximum amount of sockets
3768 that can be hotplugged
3769 format: int32
3770 type: integer
3771 maxGuest:
3772 anyOf:
3773 - type: integer
3774 - type: string
3775 description: |-
3776 MaxGuest defines the maximum amount memory that can be allocated
3777 to the guest using hotplug.
3778 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
3779 x-kubernetes-int-or-string: true
3780 maxHotplugRatio:
3781 description: |-
3782 MaxHotplugRatio is the ratio used to define the max amount
3783 of a hotplug resource that can be made available to a VM
3784 when the specific Max* setting is not defined (MaxCpuSockets, MaxGuest)
3785 Example: VM is configured with 512Mi of guest memory, if MaxGuest is not
3786 defined and MaxHotplugRatio is 2 then MaxGuest = 1Gi
3787 defaults to 4
3788 format: int32
3789 type: integer
3790 type: object
3791 machineType:
3792 description: Deprecated. Use architectureConfiguration instead.
3793 type: string
3794 mediatedDevicesConfiguration:
3795 description: MediatedDevicesConfiguration holds information about
3796 MDEV types to be defined, if available
3797 properties:
3798 mediatedDeviceTypes:
3799 items:
3800 type: string
3801 type: array
3802 x-kubernetes-list-type: atomic
3803 mediatedDevicesTypes:
3804 description: Deprecated. Use mediatedDeviceTypes instead.
3805 items:
3806 type: string
3807 type: array
3808 x-kubernetes-list-type: atomic
3809 nodeMediatedDeviceTypes:
3810 items:
3811 description: NodeMediatedDeviceTypesConfig holds information
3812 about MDEV types to be defined in a specific node that
3813 matches the NodeSelector field.
3814 properties:
3815 mediatedDeviceTypes:
3816 items:
3817 type: string
3818 type: array
3819 x-kubernetes-list-type: atomic
3820 mediatedDevicesTypes:
3821 description: Deprecated. Use mediatedDeviceTypes instead.
3822 items:
3823 type: string
3824 type: array
3825 x-kubernetes-list-type: atomic
3826 nodeSelector:
3827 additionalProperties:
3828 type: string
3829 description: |-
3830 NodeSelector is a selector which must be true for the vmi to fit on a node.
3831 Selector which must match a node's labels for the vmi to be scheduled on that node.
3832 More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
3833 type: object
3834 required:
3835 - nodeSelector
3836 type: object
3837 type: array
3838 x-kubernetes-list-type: atomic
3839 type: object
3840 memBalloonStatsPeriod:
3841 format: int32
3842 type: integer
3843 migrations:
3844 description: |-
3845 MigrationConfiguration holds migration options.
3846 Can be overridden for specific groups of VMs though migration policies.
3847 Visit https://kubevirt.io/user-guide/operations/migration_policies/ for more information.
3848 properties:
3849 allowAutoConverge:
3850 description: |-
3851 AllowAutoConverge allows the platform to compromise performance/availability of VMIs to
3852 guarantee successful VMI live migrations. Defaults to false
3853 type: boolean
3854 allowPostCopy:
3855 description: |-
3856 AllowPostCopy enables post-copy live migrations. Such migrations allow even the busiest VMIs
3857 to successfully live-migrate. However, events like a network failure can cause a VMI crash.
3858 If set to true, migrations will still start in pre-copy, but switch to post-copy when
3859 CompletionTimeoutPerGiB triggers. Defaults to false
3860 type: boolean
3861 bandwidthPerMigration:
3862 anyOf:
3863 - type: integer
3864 - type: string
3865 description: |-
3866 BandwidthPerMigration limits the amount of network bandwidth live migrations are allowed to use.
3867 The value is in quantity per second. Defaults to 0 (no limit)
3868 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
3869 x-kubernetes-int-or-string: true
3870 completionTimeoutPerGiB:
3871 description: |-
3872 CompletionTimeoutPerGiB is the maximum number of seconds per GiB a migration is allowed to take.
3873 If a live-migration takes longer to migrate than this value multiplied by the size of the VMI,
3874 the migration will be cancelled, unless AllowPostCopy is true. Defaults to 800
3875 format: int64
3876 type: integer
3877 disableTLS:
3878 description: |-
3879 When set to true, DisableTLS will disable the additional layer of live migration encryption
3880 provided by KubeVirt. This is usually a bad idea. Defaults to false
3881 type: boolean
3882 matchSELinuxLevelOnMigration:
3883 description: |-
3884 By default, the SELinux level of target virt-launcher pods is forced to the level of the source virt-launcher.
3885 When set to true, MatchSELinuxLevelOnMigration lets the CRI auto-assign a random level to the target.
3886 That will ensure the target virt-launcher doesn't share categories with another pod on the node.
3887 However, migrations will fail when using RWX volumes that don't automatically deal with SELinux levels.
3888 type: boolean
3889 network:
3890 description: |-
3891 Network is the name of the CNI network to use for live migrations. By default, migrations go
3892 through the pod network.
3893 type: string
3894 nodeDrainTaintKey:
3895 description: |-
3896 NodeDrainTaintKey defines the taint key that indicates a node should be drained.
3897 Note: this option relies on the deprecated node taint feature. Default: kubevirt.io/drain
3898 type: string
3899 parallelMigrationsPerCluster:
3900 description: |-
3901 ParallelMigrationsPerCluster is the total number of concurrent live migrations
3902 allowed cluster-wide. Defaults to 5
3903 format: int32
3904 type: integer
3905 parallelOutboundMigrationsPerNode:
3906 description: |-
3907 ParallelOutboundMigrationsPerNode is the maximum number of concurrent outgoing live migrations
3908 allowed per node. Defaults to 2
3909 format: int32
3910 type: integer
3911 progressTimeout:
3912 description: |-
3913 ProgressTimeout is the maximum number of seconds a live migration is allowed to make no progress.
3914 Hitting this timeout means a migration transferred 0 data for that many seconds. The migration is
3915 then considered stuck and therefore cancelled. Defaults to 150
3916 format: int64
3917 type: integer
3918 unsafeMigrationOverride:
3919 description: |-
3920 UnsafeMigrationOverride allows live migrations to occur even if the compatibility check
3921 indicates the migration will be unsafe to the guest. Defaults to false
3922 type: boolean
3923 type: object
3924 minCPUModel:
3925 type: string
3926 network:
3927 description: NetworkConfiguration holds network options
3928 properties:
3929 binding:
3930 additionalProperties:
3931 properties:
3932 computeResourceOverhead:
3933 description: |-
3934 ComputeResourceOverhead specifies the resource overhead that should be added to the compute container when using the binding.
3935 version: v1alphav1
3936 properties:
3937 claims:
3938 description: |-
3939 Claims lists the names of resources, defined in spec.resourceClaims,
3940 that are used by this container.
3941
3942
3943 This is an alpha field and requires enabling the
3944 DynamicResourceAllocation feature gate.
3945
3946
3947 This field is immutable. It can only be set for containers.
3948 items:
3949 description: ResourceClaim references one entry
3950 in PodSpec.ResourceClaims.
3951 properties:
3952 name:
3953 description: |-
3954 Name must match the name of one entry in pod.spec.resourceClaims of
3955 the Pod where this field is used. It makes that resource available
3956 inside a container.
3957 type: string
3958 required:
3959 - name
3960 type: object
3961 type: array
3962 x-kubernetes-list-map-keys:
3963 - name
3964 x-kubernetes-list-type: map
3965 limits:
3966 additionalProperties:
3967 anyOf:
3968 - type: integer
3969 - type: string
3970 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
3971 x-kubernetes-int-or-string: true
3972 description: |-
3973 Limits describes the maximum amount of compute resources allowed.
3974 More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
3975 type: object
3976 requests:
3977 additionalProperties:
3978 anyOf:
3979 - type: integer
3980 - type: string
3981 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
3982 x-kubernetes-int-or-string: true
3983 description: |-
3984 Requests describes the minimum amount of compute resources required.
3985 If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
3986 otherwise to an implementation-defined value. Requests cannot exceed Limits.
3987 More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
3988 type: object
3989 type: object
3990 domainAttachmentType:
3991 description: |-
3992 DomainAttachmentType is a standard domain network attachment method kubevirt supports.
3993 Supported values: "tap".
3994 The standard domain attachment can be used instead or in addition to the sidecarImage.
3995 version: 1alphav1
3996 type: string
3997 downwardAPI:
3998 description: |-
3999 DownwardAPI specifies what kind of data should be exposed to the binding plugin sidecar.
4000 Supported values: "device-info"
4001 version: v1alphav1
4002 type: string
4003 migration:
4004 description: |-
4005 Migration means the VM using the plugin can be safely migrated
4006 version: 1alphav1
4007 properties:
4008 method:
4009 description: |-
4010 Method defines a pre-defined migration methodology
4011 version: 1alphav1
4012 type: string
4013 type: object
4014 networkAttachmentDefinition:
4015 description: |-
4016 NetworkAttachmentDefinition references to a NetworkAttachmentDefinition CR object.
4017 Format: <name>, <namespace>/<name>.
4018 If namespace is not specified, VMI namespace is assumed.
4019 version: 1alphav1
4020 type: string
4021 sidecarImage:
4022 description: |-
4023 SidecarImage references a container image that runs in the virt-launcher pod.
4024 The sidecar handles (libvirt) domain configuration and optional services.
4025 version: 1alphav1
4026 type: string
4027 type: object
4028 type: object
4029 defaultNetworkInterface:
4030 type: string
4031 permitBridgeInterfaceOnPodNetwork:
4032 type: boolean
4033 permitSlirpInterface:
4034 description: |-
4035 DeprecatedPermitSlirpInterface is an alias for the deprecated PermitSlirpInterface.
4036 Deprecated: Removed in v1.3.
4037 type: boolean
4038 type: object
4039 obsoleteCPUModels:
4040 additionalProperties:
4041 type: boolean
4042 type: object
4043 ovmfPath:
4044 description: Deprecated. Use architectureConfiguration instead.
4045 type: string
4046 permittedHostDevices:
4047 description: PermittedHostDevices holds information about devices
4048 allowed for passthrough
4049 properties:
4050 mediatedDevices:
4051 items:
4052 description: MediatedHostDevice represents a host mediated
4053 device allowed for passthrough
4054 properties:
4055 externalResourceProvider:
4056 type: boolean
4057 mdevNameSelector:
4058 type: string
4059 resourceName:
4060 type: string
4061 required:
4062 - mdevNameSelector
4063 - resourceName
4064 type: object
4065 type: array
4066 x-kubernetes-list-type: atomic
4067 pciHostDevices:
4068 items:
4069 description: PciHostDevice represents a host PCI device
4070 allowed for passthrough
4071 properties:
4072 externalResourceProvider:
4073 description: |-
4074 If true, KubeVirt will leave the allocation and monitoring to an
4075 external device plugin
4076 type: boolean
4077 pciVendorSelector:
4078 description: The vendor_id:product_id tuple of the PCI
4079 device
4080 type: string
4081 resourceName:
4082 description: |-
4083 The name of the resource that is representing the device. Exposed by
4084 a device plugin and requested by VMs. Typically of the form
4085 vendor.com/product_name
4086 type: string
4087 required:
4088 - pciVendorSelector
4089 - resourceName
4090 type: object
4091 type: array
4092 x-kubernetes-list-type: atomic
4093 usb:
4094 items:
4095 properties:
4096 externalResourceProvider:
4097 description: |-
4098 If true, KubeVirt will leave the allocation and monitoring to an
4099 external device plugin
4100 type: boolean
4101 resourceName:
4102 description: |-
4103 Identifies the list of USB host devices.
4104 e.g: kubevirt.io/storage, kubevirt.io/bootable-usb, etc
4105 type: string
4106 selectors:
4107 items:
4108 properties:
4109 product:
4110 type: string
4111 vendor:
4112 type: string
4113 required:
4114 - product
4115 - vendor
4116 type: object
4117 type: array
4118 x-kubernetes-list-type: atomic
4119 required:
4120 - resourceName
4121 type: object
4122 type: array
4123 x-kubernetes-list-type: atomic
4124 type: object
4125 seccompConfiguration:
4126 description: SeccompConfiguration holds Seccomp configuration
4127 for Kubevirt components
4128 properties:
4129 virtualMachineInstanceProfile:
4130 description: VirtualMachineInstanceProfile defines what profile
4131 should be used with virt-launcher. Defaults to none
4132 properties:
4133 customProfile:
4134 description: CustomProfile allows to request arbitrary
4135 profile for virt-launcher
4136 properties:
4137 localhostProfile:
4138 type: string
4139 runtimeDefaultProfile:
4140 type: boolean
4141 type: object
4142 type: object
4143 type: object
4144 selinuxLauncherType:
4145 type: string
4146 smbios:
4147 properties:
4148 family:
4149 type: string
4150 manufacturer:
4151 type: string
4152 product:
4153 type: string
4154 sku:
4155 type: string
4156 version:
4157 type: string
4158 type: object
4159 supportContainerResources:
4160 description: SupportContainerResources specifies the resource
4161 requirements for various types of supporting containers such
4162 as container disks/virtiofs/sidecars and hotplug attachment
4163 pods. If omitted a sensible default will be supplied.
4164 items:
4165 description: SupportContainerResources are used to specify the
4166 cpu/memory request and limits for the containers that support
4167 various features of Virtual Machines. These containers are
4168 usually idle and don't require a lot of memory or cpu.
4169 properties:
4170 resources:
4171 description: ResourceRequirements describes the compute
4172 resource requirements.
4173 properties:
4174 claims:
4175 description: |-
4176 Claims lists the names of resources, defined in spec.resourceClaims,
4177 that are used by this container.
4178
4179
4180 This is an alpha field and requires enabling the
4181 DynamicResourceAllocation feature gate.
4182
4183
4184 This field is immutable. It can only be set for containers.
4185 items:
4186 description: ResourceClaim references one entry in
4187 PodSpec.ResourceClaims.
4188 properties:
4189 name:
4190 description: |-
4191 Name must match the name of one entry in pod.spec.resourceClaims of
4192 the Pod where this field is used. It makes that resource available
4193 inside a container.
4194 type: string
4195 required:
4196 - name
4197 type: object
4198 type: array
4199 x-kubernetes-list-map-keys:
4200 - name
4201 x-kubernetes-list-type: map
4202 limits:
4203 additionalProperties:
4204 anyOf:
4205 - type: integer
4206 - type: string
4207 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
4208 x-kubernetes-int-or-string: true
4209 description: |-
4210 Limits describes the maximum amount of compute resources allowed.
4211 More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
4212 type: object
4213 requests:
4214 additionalProperties:
4215 anyOf:
4216 - type: integer
4217 - type: string
4218 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
4219 x-kubernetes-int-or-string: true
4220 description: |-
4221 Requests describes the minimum amount of compute resources required.
4222 If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
4223 otherwise to an implementation-defined value. Requests cannot exceed Limits.
4224 More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
4225 type: object
4226 type: object
4227 type:
4228 type: string
4229 required:
4230 - resources
4231 - type
4232 type: object
4233 type: array
4234 x-kubernetes-list-map-keys:
4235 - type
4236 x-kubernetes-list-type: map
4237 supportedGuestAgentVersions:
4238 description: deprecated
4239 items:
4240 type: string
4241 type: array
4242 tlsConfiguration:
4243 description: TLSConfiguration holds TLS options
4244 properties:
4245 ciphers:
4246 items:
4247 type: string
4248 type: array
4249 x-kubernetes-list-type: set
4250 minTLSVersion:
4251 description: |-
4252 MinTLSVersion is a way to specify the minimum protocol version that is acceptable for TLS connections.
4253 Protocol versions are based on the following most common TLS configurations:
4254
4255
4256 https://ssl-config.mozilla.org/
4257
4258
4259 Note that SSLv3.0 is not a supported protocol version due to well known
4260 vulnerabilities such as POODLE: https://en.wikipedia.org/wiki/POODLE
4261 enum:
4262 - VersionTLS10
4263 - VersionTLS11
4264 - VersionTLS12
4265 - VersionTLS13
4266 type: string
4267 type: object
4268 virtualMachineInstancesPerNode:
4269 type: integer
4270 virtualMachineOptions:
4271 description: VirtualMachineOptions holds the cluster level information
4272 regarding the virtual machine.
4273 properties:
4274 disableFreePageReporting:
4275 description: |-
4276 DisableFreePageReporting disable the free page reporting of
4277 memory balloon device https://libvirt.org/formatdomain.html#memory-balloon-device.
4278 This will have effect only if AutoattachMemBalloon is not false and the vmi is not
4279 requesting any high performance feature (dedicatedCPU/realtime/hugePages), in which free page reporting is always disabled.
4280 type: object
4281 disableSerialConsoleLog:
4282 description: |-
4283 DisableSerialConsoleLog disables logging the auto-attached default serial console.
4284 If not set, serial console logs will be written to a file and then streamed from a container named 'guest-console-log'.
4285 The value can be individually overridden for each VM, not relevant if AutoattachSerialConsole is disabled.
4286 type: object
4287 type: object
4288 vmRolloutStrategy:
4289 description: VMRolloutStrategy defines how changes to a VM object
4290 propagate to its VMI
4291 enum:
4292 - Stage
4293 - LiveUpdate
4294 nullable: true
4295 type: string
4296 vmStateStorageClass:
4297 description: |-
4298 VMStateStorageClass is the name of the storage class to use for the PVCs created to preserve VM state, like TPM.
4299 The storage class must support RWX in filesystem mode.
4300 type: string
4301 webhookConfiguration:
4302 description: |-
4303 ReloadableComponentConfiguration holds all generic k8s configuration options which can
4304 be reloaded by components without requiring a restart.
4305 properties:
4306 restClient:
4307 description: RestClient can be used to tune certain aspects
4308 of the k8s client in use.
4309 properties:
4310 rateLimiter:
4311 description: RateLimiter allows selecting and configuring
4312 different rate limiters for the k8s client.
4313 properties:
4314 tokenBucketRateLimiter:
4315 properties:
4316 burst:
4317 description: |-
4318 Maximum burst for throttle.
4319 If it's zero, the component default will be used
4320 type: integer
4321 qps:
4322 description: |-
4323 QPS indicates the maximum QPS to the apiserver from this client.
4324 If it's zero, the component default will be used
4325 type: number
4326 required:
4327 - burst
4328 - qps
4329 type: object
4330 type: object
4331 type: object
4332 type: object
4333 type: object
4334 customizeComponents:
4335 properties:
4336 flags:
4337 description: Configure the value used for deployment and daemonset
4338 resources
4339 properties:
4340 api:
4341 additionalProperties:
4342 type: string
4343 type: object
4344 controller:
4345 additionalProperties:
4346 type: string
4347 type: object
4348 handler:
4349 additionalProperties:
4350 type: string
4351 type: object
4352 type: object
4353 patches:
4354 items:
4355 properties:
4356 patch:
4357 type: string
4358 resourceName:
4359 minLength: 1
4360 type: string
4361 resourceType:
4362 minLength: 1
4363 type: string
4364 type:
4365 type: string
4366 required:
4367 - patch
4368 - resourceName
4369 - resourceType
4370 - type
4371 type: object
4372 type: array
4373 x-kubernetes-list-type: atomic
4374 type: object
4375 imagePullPolicy:
4376 description: The ImagePullPolicy to use.
4377 type: string
4378 imagePullSecrets:
4379 description: |-
4380 The imagePullSecrets to pull the container images from
4381 Defaults to none
4382 items:
4383 description: |-
4384 LocalObjectReference contains enough information to let you locate the
4385 referenced object inside the same namespace.
4386 properties:
4387 name:
4388 description: |-
4389 Name of the referent.
4390 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
4391 TODO: Add other useful fields. apiVersion, kind, uid?
4392 type: string
4393 type: object
4394 x-kubernetes-map-type: atomic
4395 type: array
4396 x-kubernetes-list-type: atomic
4397 imageRegistry:
4398 description: |-
4399 The image registry to pull the container images from
4400 Defaults to the same registry the operator's container image is pulled from.
4401 type: string
4402 imageTag:
4403 description: |-
4404 The image tag to use for the continer images installed.
4405 Defaults to the same tag as the operator's container image.
4406 type: string
4407 infra:
4408 description: selectors and tolerations that should apply to KubeVirt
4409 infrastructure components
4410 properties:
4411 nodePlacement:
4412 description: |-
4413 nodePlacement describes scheduling configuration for specific
4414 KubeVirt components
4415 properties:
4416 affinity:
4417 description: |-
4418 affinity enables pod affinity/anti-affinity placement expanding the types of constraints
4419 that can be expressed with nodeSelector.
4420 affinity is going to be applied to the relevant kind of pods in parallel with nodeSelector
4421 See https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity
4422 properties:
4423 nodeAffinity:
4424 description: Describes node affinity scheduling rules
4425 for the pod.
4426 properties:
4427 preferredDuringSchedulingIgnoredDuringExecution:
4428 description: |-
4429 The scheduler will prefer to schedule pods to nodes that satisfy
4430 the affinity expressions specified by this field, but it may choose
4431 a node that violates one or more of the expressions. The node that is
4432 most preferred is the one with the greatest sum of weights, i.e.
4433 for each node that meets all of the scheduling requirements (resource
4434 request, requiredDuringScheduling affinity expressions, etc.),
4435 compute a sum by iterating through the elements of this field and adding
4436 "weight" to the sum if the node matches the corresponding matchExpressions; the
4437 node(s) with the highest sum are the most preferred.
4438 items:
4439 description: |-
4440 An empty preferred scheduling term matches all objects with implicit weight 0
4441 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
4442 properties:
4443 preference:
4444 description: A node selector term, associated
4445 with the corresponding weight.
4446 properties:
4447 matchExpressions:
4448 description: A list of node selector requirements
4449 by node's labels.
4450 items:
4451 description: |-
4452 A node selector requirement is a selector that contains values, a key, and an operator
4453 that relates the key and values.
4454 properties:
4455 key:
4456 description: The label key that the
4457 selector applies to.
4458 type: string
4459 operator:
4460 description: |-
4461 Represents a key's relationship to a set of values.
4462 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
4463 type: string
4464 values:
4465 description: |-
4466 An array of string values. If the operator is In or NotIn,
4467 the values array must be non-empty. If the operator is Exists or DoesNotExist,
4468 the values array must be empty. If the operator is Gt or Lt, the values
4469 array must have a single element, which will be interpreted as an integer.
4470 This array is replaced during a strategic merge patch.
4471 items:
4472 type: string
4473 type: array
4474 x-kubernetes-list-type: atomic
4475 required:
4476 - key
4477 - operator
4478 type: object
4479 type: array
4480 x-kubernetes-list-type: atomic
4481 matchFields:
4482 description: A list of node selector requirements
4483 by node's fields.
4484 items:
4485 description: |-
4486 A node selector requirement is a selector that contains values, a key, and an operator
4487 that relates the key and values.
4488 properties:
4489 key:
4490 description: The label key that the
4491 selector applies to.
4492 type: string
4493 operator:
4494 description: |-
4495 Represents a key's relationship to a set of values.
4496 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
4497 type: string
4498 values:
4499 description: |-
4500 An array of string values. If the operator is In or NotIn,
4501 the values array must be non-empty. If the operator is Exists or DoesNotExist,
4502 the values array must be empty. If the operator is Gt or Lt, the values
4503 array must have a single element, which will be interpreted as an integer.
4504 This array is replaced during a strategic merge patch.
4505 items:
4506 type: string
4507 type: array
4508 x-kubernetes-list-type: atomic
4509 required:
4510 - key
4511 - operator
4512 type: object
4513 type: array
4514 x-kubernetes-list-type: atomic
4515 type: object
4516 x-kubernetes-map-type: atomic
4517 weight:
4518 description: Weight associated with matching
4519 the corresponding nodeSelectorTerm, in the
4520 range 1-100.
4521 format: int32
4522 type: integer
4523 required:
4524 - preference
4525 - weight
4526 type: object
4527 type: array
4528 x-kubernetes-list-type: atomic
4529 requiredDuringSchedulingIgnoredDuringExecution:
4530 description: |-
4531 If the affinity requirements specified by this field are not met at
4532 scheduling time, the pod will not be scheduled onto the node.
4533 If the affinity requirements specified by this field cease to be met
4534 at some point during pod execution (e.g. due to an update), the system
4535 may or may not try to eventually evict the pod from its node.
4536 properties:
4537 nodeSelectorTerms:
4538 description: Required. A list of node selector
4539 terms. The terms are ORed.
4540 items:
4541 description: |-
4542 A null or empty node selector term matches no objects. The requirements of
4543 them are ANDed.
4544 The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
4545 properties:
4546 matchExpressions:
4547 description: A list of node selector requirements
4548 by node's labels.
4549 items:
4550 description: |-
4551 A node selector requirement is a selector that contains values, a key, and an operator
4552 that relates the key and values.
4553 properties:
4554 key:
4555 description: The label key that the
4556 selector applies to.
4557 type: string
4558 operator:
4559 description: |-
4560 Represents a key's relationship to a set of values.
4561 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
4562 type: string
4563 values:
4564 description: |-
4565 An array of string values. If the operator is In or NotIn,
4566 the values array must be non-empty. If the operator is Exists or DoesNotExist,
4567 the values array must be empty. If the operator is Gt or Lt, the values
4568 array must have a single element, which will be interpreted as an integer.
4569 This array is replaced during a strategic merge patch.
4570 items:
4571 type: string
4572 type: array
4573 x-kubernetes-list-type: atomic
4574 required:
4575 - key
4576 - operator
4577 type: object
4578 type: array
4579 x-kubernetes-list-type: atomic
4580 matchFields:
4581 description: A list of node selector requirements
4582 by node's fields.
4583 items:
4584 description: |-
4585 A node selector requirement is a selector that contains values, a key, and an operator
4586 that relates the key and values.
4587 properties:
4588 key:
4589 description: The label key that the
4590 selector applies to.
4591 type: string
4592 operator:
4593 description: |-
4594 Represents a key's relationship to a set of values.
4595 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
4596 type: string
4597 values:
4598 description: |-
4599 An array of string values. If the operator is In or NotIn,
4600 the values array must be non-empty. If the operator is Exists or DoesNotExist,
4601 the values array must be empty. If the operator is Gt or Lt, the values
4602 array must have a single element, which will be interpreted as an integer.
4603 This array is replaced during a strategic merge patch.
4604 items:
4605 type: string
4606 type: array
4607 x-kubernetes-list-type: atomic
4608 required:
4609 - key
4610 - operator
4611 type: object
4612 type: array
4613 x-kubernetes-list-type: atomic
4614 type: object
4615 x-kubernetes-map-type: atomic
4616 type: array
4617 x-kubernetes-list-type: atomic
4618 required:
4619 - nodeSelectorTerms
4620 type: object
4621 x-kubernetes-map-type: atomic
4622 type: object
4623 podAffinity:
4624 description: Describes pod affinity scheduling rules (e.g.
4625 co-locate this pod in the same node, zone, etc. as some
4626 other pod(s)).
4627 properties:
4628 preferredDuringSchedulingIgnoredDuringExecution:
4629 description: |-
4630 The scheduler will prefer to schedule pods to nodes that satisfy
4631 the affinity expressions specified by this field, but it may choose
4632 a node that violates one or more of the expressions. The node that is
4633 most preferred is the one with the greatest sum of weights, i.e.
4634 for each node that meets all of the scheduling requirements (resource
4635 request, requiredDuringScheduling affinity expressions, etc.),
4636 compute a sum by iterating through the elements of this field and adding
4637 "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
4638 node(s) with the highest sum are the most preferred.
4639 items:
4640 description: The weights of all of the matched WeightedPodAffinityTerm
4641 fields are added per-node to find the most preferred
4642 node(s)
4643 properties:
4644 podAffinityTerm:
4645 description: Required. A pod affinity term,
4646 associated with the corresponding weight.
4647 properties:
4648 labelSelector:
4649 description: |-
4650 A label query over a set of resources, in this case pods.
4651 If it's null, this PodAffinityTerm matches with no Pods.
4652 properties:
4653 matchExpressions:
4654 description: matchExpressions is a list
4655 of label selector requirements. The
4656 requirements are ANDed.
4657 items:
4658 description: |-
4659 A label selector requirement is a selector that contains values, a key, and an operator that
4660 relates the key and values.
4661 properties:
4662 key:
4663 description: key is the label
4664 key that the selector applies
4665 to.
4666 type: string
4667 operator:
4668 description: |-
4669 operator represents a key's relationship to a set of values.
4670 Valid operators are In, NotIn, Exists and DoesNotExist.
4671 type: string
4672 values:
4673 description: |-
4674 values is an array of string values. If the operator is In or NotIn,
4675 the values array must be non-empty. If the operator is Exists or DoesNotExist,
4676 the values array must be empty. This array is replaced during a strategic
4677 merge patch.
4678 items:
4679 type: string
4680 type: array
4681 x-kubernetes-list-type: atomic
4682 required:
4683 - key
4684 - operator
4685 type: object
4686 type: array
4687 x-kubernetes-list-type: atomic
4688 matchLabels:
4689 additionalProperties:
4690 type: string
4691 description: |-
4692 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
4693 map is equivalent to an element of matchExpressions, whose key field is "key", the
4694 operator is "In", and the values array contains only "value". The requirements are ANDed.
4695 type: object
4696 type: object
4697 x-kubernetes-map-type: atomic
4698 matchLabelKeys:
4699 description: |-
4700 MatchLabelKeys is a set of pod label keys to select which pods will
4701 be taken into consideration. The keys are used to lookup values from the
4702 incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)'
4703 to select the group of existing pods which pods will be taken into consideration
4704 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
4705 pod labels will be ignored. The default value is empty.
4706 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
4707 Also, matchLabelKeys cannot be set when labelSelector isn't set.
4708 This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
4709 items:
4710 type: string
4711 type: array
4712 x-kubernetes-list-type: atomic
4713 mismatchLabelKeys:
4714 description: |-
4715 MismatchLabelKeys is a set of pod label keys to select which pods will
4716 be taken into consideration. The keys are used to lookup values from the
4717 incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)'
4718 to select the group of existing pods which pods will be taken into consideration
4719 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
4720 pod labels will be ignored. The default value is empty.
4721 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
4722 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
4723 This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
4724 items:
4725 type: string
4726 type: array
4727 x-kubernetes-list-type: atomic
4728 namespaceSelector:
4729 description: |-
4730 A label query over the set of namespaces that the term applies to.
4731 The term is applied to the union of the namespaces selected by this field
4732 and the ones listed in the namespaces field.
4733 null selector and null or empty namespaces list means "this pod's namespace".
4734 An empty selector ({}) matches all namespaces.
4735 properties:
4736 matchExpressions:
4737 description: matchExpressions is a list
4738 of label selector requirements. The
4739 requirements are ANDed.
4740 items:
4741 description: |-
4742 A label selector requirement is a selector that contains values, a key, and an operator that
4743 relates the key and values.
4744 properties:
4745 key:
4746 description: key is the label
4747 key that the selector applies
4748 to.
4749 type: string
4750 operator:
4751 description: |-
4752 operator represents a key's relationship to a set of values.
4753 Valid operators are In, NotIn, Exists and DoesNotExist.
4754 type: string
4755 values:
4756 description: |-
4757 values is an array of string values. If the operator is In or NotIn,
4758 the values array must be non-empty. If the operator is Exists or DoesNotExist,
4759 the values array must be empty. This array is replaced during a strategic
4760 merge patch.
4761 items:
4762 type: string
4763 type: array
4764 x-kubernetes-list-type: atomic
4765 required:
4766 - key
4767 - operator
4768 type: object
4769 type: array
4770 x-kubernetes-list-type: atomic
4771 matchLabels:
4772 additionalProperties:
4773 type: string
4774 description: |-
4775 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
4776 map is equivalent to an element of matchExpressions, whose key field is "key", the
4777 operator is "In", and the values array contains only "value". The requirements are ANDed.
4778 type: object
4779 type: object
4780 x-kubernetes-map-type: atomic
4781 namespaces:
4782 description: |-
4783 namespaces specifies a static list of namespace names that the term applies to.
4784 The term is applied to the union of the namespaces listed in this field
4785 and the ones selected by namespaceSelector.
4786 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
4787 items:
4788 type: string
4789 type: array
4790 x-kubernetes-list-type: atomic
4791 topologyKey:
4792 description: |-
4793 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
4794 the labelSelector in the specified namespaces, where co-located is defined as running on a node
4795 whose value of the label with key topologyKey matches that of any node on which any of the
4796 selected pods is running.
4797 Empty topologyKey is not allowed.
4798 type: string
4799 required:
4800 - topologyKey
4801 type: object
4802 weight:
4803 description: |-
4804 weight associated with matching the corresponding podAffinityTerm,
4805 in the range 1-100.
4806 format: int32
4807 type: integer
4808 required:
4809 - podAffinityTerm
4810 - weight
4811 type: object
4812 type: array
4813 x-kubernetes-list-type: atomic
4814 requiredDuringSchedulingIgnoredDuringExecution:
4815 description: |-
4816 If the affinity requirements specified by this field are not met at
4817 scheduling time, the pod will not be scheduled onto the node.
4818 If the affinity requirements specified by this field cease to be met
4819 at some point during pod execution (e.g. due to a pod label update), the
4820 system may or may not try to eventually evict the pod from its node.
4821 When there are multiple elements, the lists of nodes corresponding to each
4822 podAffinityTerm are intersected, i.e. all terms must be satisfied.
4823 items:
4824 description: |-
4825 Defines a set of pods (namely those matching the labelSelector
4826 relative to the given namespace(s)) that this pod should be
4827 co-located (affinity) or not co-located (anti-affinity) with,
4828 where co-located is defined as running on a node whose value of
4829 the label with key <topologyKey> matches that of any node on which
4830 a pod of the set of pods is running
4831 properties:
4832 labelSelector:
4833 description: |-
4834 A label query over a set of resources, in this case pods.
4835 If it's null, this PodAffinityTerm matches with no Pods.
4836 properties:
4837 matchExpressions:
4838 description: matchExpressions is a list
4839 of label selector requirements. The requirements
4840 are ANDed.
4841 items:
4842 description: |-
4843 A label selector requirement is a selector that contains values, a key, and an operator that
4844 relates the key and values.
4845 properties:
4846 key:
4847 description: key is the label key
4848 that the selector applies to.
4849 type: string
4850 operator:
4851 description: |-
4852 operator represents a key's relationship to a set of values.
4853 Valid operators are In, NotIn, Exists and DoesNotExist.
4854 type: string
4855 values:
4856 description: |-
4857 values is an array of string values. If the operator is In or NotIn,
4858 the values array must be non-empty. If the operator is Exists or DoesNotExist,
4859 the values array must be empty. This array is replaced during a strategic
4860 merge patch.
4861 items:
4862 type: string
4863 type: array
4864 x-kubernetes-list-type: atomic
4865 required:
4866 - key
4867 - operator
4868 type: object
4869 type: array
4870 x-kubernetes-list-type: atomic
4871 matchLabels:
4872 additionalProperties:
4873 type: string
4874 description: |-
4875 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
4876 map is equivalent to an element of matchExpressions, whose key field is "key", the
4877 operator is "In", and the values array contains only "value". The requirements are ANDed.
4878 type: object
4879 type: object
4880 x-kubernetes-map-type: atomic
4881 matchLabelKeys:
4882 description: |-
4883 MatchLabelKeys is a set of pod label keys to select which pods will
4884 be taken into consideration. The keys are used to lookup values from the
4885 incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)'
4886 to select the group of existing pods which pods will be taken into consideration
4887 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
4888 pod labels will be ignored. The default value is empty.
4889 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
4890 Also, matchLabelKeys cannot be set when labelSelector isn't set.
4891 This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
4892 items:
4893 type: string
4894 type: array
4895 x-kubernetes-list-type: atomic
4896 mismatchLabelKeys:
4897 description: |-
4898 MismatchLabelKeys is a set of pod label keys to select which pods will
4899 be taken into consideration. The keys are used to lookup values from the
4900 incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)'
4901 to select the group of existing pods which pods will be taken into consideration
4902 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
4903 pod labels will be ignored. The default value is empty.
4904 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
4905 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
4906 This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
4907 items:
4908 type: string
4909 type: array
4910 x-kubernetes-list-type: atomic
4911 namespaceSelector:
4912 description: |-
4913 A label query over the set of namespaces that the term applies to.
4914 The term is applied to the union of the namespaces selected by this field
4915 and the ones listed in the namespaces field.
4916 null selector and null or empty namespaces list means "this pod's namespace".
4917 An empty selector ({}) matches all namespaces.
4918 properties:
4919 matchExpressions:
4920 description: matchExpressions is a list
4921 of label selector requirements. The requirements
4922 are ANDed.
4923 items:
4924 description: |-
4925 A label selector requirement is a selector that contains values, a key, and an operator that
4926 relates the key and values.
4927 properties:
4928 key:
4929 description: key is the label key
4930 that the selector applies to.
4931 type: string
4932 operator:
4933 description: |-
4934 operator represents a key's relationship to a set of values.
4935 Valid operators are In, NotIn, Exists and DoesNotExist.
4936 type: string
4937 values:
4938 description: |-
4939 values is an array of string values. If the operator is In or NotIn,
4940 the values array must be non-empty. If the operator is Exists or DoesNotExist,
4941 the values array must be empty. This array is replaced during a strategic
4942 merge patch.
4943 items:
4944 type: string
4945 type: array
4946 x-kubernetes-list-type: atomic
4947 required:
4948 - key
4949 - operator
4950 type: object
4951 type: array
4952 x-kubernetes-list-type: atomic
4953 matchLabels:
4954 additionalProperties:
4955 type: string
4956 description: |-
4957 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
4958 map is equivalent to an element of matchExpressions, whose key field is "key", the
4959 operator is "In", and the values array contains only "value". The requirements are ANDed.
4960 type: object
4961 type: object
4962 x-kubernetes-map-type: atomic
4963 namespaces:
4964 description: |-
4965 namespaces specifies a static list of namespace names that the term applies to.
4966 The term is applied to the union of the namespaces listed in this field
4967 and the ones selected by namespaceSelector.
4968 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
4969 items:
4970 type: string
4971 type: array
4972 x-kubernetes-list-type: atomic
4973 topologyKey:
4974 description: |-
4975 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
4976 the labelSelector in the specified namespaces, where co-located is defined as running on a node
4977 whose value of the label with key topologyKey matches that of any node on which any of the
4978 selected pods is running.
4979 Empty topologyKey is not allowed.
4980 type: string
4981 required:
4982 - topologyKey
4983 type: object
4984 type: array
4985 x-kubernetes-list-type: atomic
4986 type: object
4987 podAntiAffinity:
4988 description: Describes pod anti-affinity scheduling rules
4989 (e.g. avoid putting this pod in the same node, zone,
4990 etc. as some other pod(s)).
4991 properties:
4992 preferredDuringSchedulingIgnoredDuringExecution:
4993 description: |-
4994 The scheduler will prefer to schedule pods to nodes that satisfy
4995 the anti-affinity expressions specified by this field, but it may choose
4996 a node that violates one or more of the expressions. The node that is
4997 most preferred is the one with the greatest sum of weights, i.e.
4998 for each node that meets all of the scheduling requirements (resource
4999 request, requiredDuringScheduling anti-affinity expressions, etc.),
5000 compute a sum by iterating through the elements of this field and adding
5001 "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
5002 node(s) with the highest sum are the most preferred.
5003 items:
5004 description: The weights of all of the matched WeightedPodAffinityTerm
5005 fields are added per-node to find the most preferred
5006 node(s)
5007 properties:
5008 podAffinityTerm:
5009 description: Required. A pod affinity term,
5010 associated with the corresponding weight.
5011 properties:
5012 labelSelector:
5013 description: |-
5014 A label query over a set of resources, in this case pods.
5015 If it's null, this PodAffinityTerm matches with no Pods.
5016 properties:
5017 matchExpressions:
5018 description: matchExpressions is a list
5019 of label selector requirements. The
5020 requirements are ANDed.
5021 items:
5022 description: |-
5023 A label selector requirement is a selector that contains values, a key, and an operator that
5024 relates the key and values.
5025 properties:
5026 key:
5027 description: key is the label
5028 key that the selector applies
5029 to.
5030 type: string
5031 operator:
5032 description: |-
5033 operator represents a key's relationship to a set of values.
5034 Valid operators are In, NotIn, Exists and DoesNotExist.
5035 type: string
5036 values:
5037 description: |-
5038 values is an array of string values. If the operator is In or NotIn,
5039 the values array must be non-empty. If the operator is Exists or DoesNotExist,
5040 the values array must be empty. This array is replaced during a strategic
5041 merge patch.
5042 items:
5043 type: string
5044 type: array
5045 x-kubernetes-list-type: atomic
5046 required:
5047 - key
5048 - operator
5049 type: object
5050 type: array
5051 x-kubernetes-list-type: atomic
5052 matchLabels:
5053 additionalProperties:
5054 type: string
5055 description: |-
5056 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
5057 map is equivalent to an element of matchExpressions, whose key field is "key", the
5058 operator is "In", and the values array contains only "value". The requirements are ANDed.
5059 type: object
5060 type: object
5061 x-kubernetes-map-type: atomic
5062 matchLabelKeys:
5063 description: |-
5064 MatchLabelKeys is a set of pod label keys to select which pods will
5065 be taken into consideration. The keys are used to lookup values from the
5066 incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)'
5067 to select the group of existing pods which pods will be taken into consideration
5068 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
5069 pod labels will be ignored. The default value is empty.
5070 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
5071 Also, matchLabelKeys cannot be set when labelSelector isn't set.
5072 This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
5073 items:
5074 type: string
5075 type: array
5076 x-kubernetes-list-type: atomic
5077 mismatchLabelKeys:
5078 description: |-
5079 MismatchLabelKeys is a set of pod label keys to select which pods will
5080 be taken into consideration. The keys are used to lookup values from the
5081 incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)'
5082 to select the group of existing pods which pods will be taken into consideration
5083 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
5084 pod labels will be ignored. The default value is empty.
5085 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
5086 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
5087 This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
5088 items:
5089 type: string
5090 type: array
5091 x-kubernetes-list-type: atomic
5092 namespaceSelector:
5093 description: |-
5094 A label query over the set of namespaces that the term applies to.
5095 The term is applied to the union of the namespaces selected by this field
5096 and the ones listed in the namespaces field.
5097 null selector and null or empty namespaces list means "this pod's namespace".
5098 An empty selector ({}) matches all namespaces.
5099 properties:
5100 matchExpressions:
5101 description: matchExpressions is a list
5102 of label selector requirements. The
5103 requirements are ANDed.
5104 items:
5105 description: |-
5106 A label selector requirement is a selector that contains values, a key, and an operator that
5107 relates the key and values.
5108 properties:
5109 key:
5110 description: key is the label
5111 key that the selector applies
5112 to.
5113 type: string
5114 operator:
5115 description: |-
5116 operator represents a key's relationship to a set of values.
5117 Valid operators are In, NotIn, Exists and DoesNotExist.
5118 type: string
5119 values:
5120 description: |-
5121 values is an array of string values. If the operator is In or NotIn,
5122 the values array must be non-empty. If the operator is Exists or DoesNotExist,
5123 the values array must be empty. This array is replaced during a strategic
5124 merge patch.
5125 items:
5126 type: string
5127 type: array
5128 x-kubernetes-list-type: atomic
5129 required:
5130 - key
5131 - operator
5132 type: object
5133 type: array
5134 x-kubernetes-list-type: atomic
5135 matchLabels:
5136 additionalProperties:
5137 type: string
5138 description: |-
5139 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
5140 map is equivalent to an element of matchExpressions, whose key field is "key", the
5141 operator is "In", and the values array contains only "value". The requirements are ANDed.
5142 type: object
5143 type: object
5144 x-kubernetes-map-type: atomic
5145 namespaces:
5146 description: |-
5147 namespaces specifies a static list of namespace names that the term applies to.
5148 The term is applied to the union of the namespaces listed in this field
5149 and the ones selected by namespaceSelector.
5150 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
5151 items:
5152 type: string
5153 type: array
5154 x-kubernetes-list-type: atomic
5155 topologyKey:
5156 description: |-
5157 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
5158 the labelSelector in the specified namespaces, where co-located is defined as running on a node
5159 whose value of the label with key topologyKey matches that of any node on which any of the
5160 selected pods is running.
5161 Empty topologyKey is not allowed.
5162 type: string
5163 required:
5164 - topologyKey
5165 type: object
5166 weight:
5167 description: |-
5168 weight associated with matching the corresponding podAffinityTerm,
5169 in the range 1-100.
5170 format: int32
5171 type: integer
5172 required:
5173 - podAffinityTerm
5174 - weight
5175 type: object
5176 type: array
5177 x-kubernetes-list-type: atomic
5178 requiredDuringSchedulingIgnoredDuringExecution:
5179 description: |-
5180 If the anti-affinity requirements specified by this field are not met at
5181 scheduling time, the pod will not be scheduled onto the node.
5182 If the anti-affinity requirements specified by this field cease to be met
5183 at some point during pod execution (e.g. due to a pod label update), the
5184 system may or may not try to eventually evict the pod from its node.
5185 When there are multiple elements, the lists of nodes corresponding to each
5186 podAffinityTerm are intersected, i.e. all terms must be satisfied.
5187 items:
5188 description: |-
5189 Defines a set of pods (namely those matching the labelSelector
5190 relative to the given namespace(s)) that this pod should be
5191 co-located (affinity) or not co-located (anti-affinity) with,
5192 where co-located is defined as running on a node whose value of
5193 the label with key <topologyKey> matches that of any node on which
5194 a pod of the set of pods is running
5195 properties:
5196 labelSelector:
5197 description: |-
5198 A label query over a set of resources, in this case pods.
5199 If it's null, this PodAffinityTerm matches with no Pods.
5200 properties:
5201 matchExpressions:
5202 description: matchExpressions is a list
5203 of label selector requirements. The requirements
5204 are ANDed.
5205 items:
5206 description: |-
5207 A label selector requirement is a selector that contains values, a key, and an operator that
5208 relates the key and values.
5209 properties:
5210 key:
5211 description: key is the label key
5212 that the selector applies to.
5213 type: string
5214 operator:
5215 description: |-
5216 operator represents a key's relationship to a set of values.
5217 Valid operators are In, NotIn, Exists and DoesNotExist.
5218 type: string
5219 values:
5220 description: |-
5221 values is an array of string values. If the operator is In or NotIn,
5222 the values array must be non-empty. If the operator is Exists or DoesNotExist,
5223 the values array must be empty. This array is replaced during a strategic
5224 merge patch.
5225 items:
5226 type: string
5227 type: array
5228 x-kubernetes-list-type: atomic
5229 required:
5230 - key
5231 - operator
5232 type: object
5233 type: array
5234 x-kubernetes-list-type: atomic
5235 matchLabels:
5236 additionalProperties:
5237 type: string
5238 description: |-
5239 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
5240 map is equivalent to an element of matchExpressions, whose key field is "key", the
5241 operator is "In", and the values array contains only "value". The requirements are ANDed.
5242 type: object
5243 type: object
5244 x-kubernetes-map-type: atomic
5245 matchLabelKeys:
5246 description: |-
5247 MatchLabelKeys is a set of pod label keys to select which pods will
5248 be taken into consideration. The keys are used to lookup values from the
5249 incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)'
5250 to select the group of existing pods which pods will be taken into consideration
5251 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
5252 pod labels will be ignored. The default value is empty.
5253 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
5254 Also, matchLabelKeys cannot be set when labelSelector isn't set.
5255 This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
5256 items:
5257 type: string
5258 type: array
5259 x-kubernetes-list-type: atomic
5260 mismatchLabelKeys:
5261 description: |-
5262 MismatchLabelKeys is a set of pod label keys to select which pods will
5263 be taken into consideration. The keys are used to lookup values from the
5264 incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)'
5265 to select the group of existing pods which pods will be taken into consideration
5266 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
5267 pod labels will be ignored. The default value is empty.
5268 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
5269 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
5270 This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
5271 items:
5272 type: string
5273 type: array
5274 x-kubernetes-list-type: atomic
5275 namespaceSelector:
5276 description: |-
5277 A label query over the set of namespaces that the term applies to.
5278 The term is applied to the union of the namespaces selected by this field
5279 and the ones listed in the namespaces field.
5280 null selector and null or empty namespaces list means "this pod's namespace".
5281 An empty selector ({}) matches all namespaces.
5282 properties:
5283 matchExpressions:
5284 description: matchExpressions is a list
5285 of label selector requirements. The requirements
5286 are ANDed.
5287 items:
5288 description: |-
5289 A label selector requirement is a selector that contains values, a key, and an operator that
5290 relates the key and values.
5291 properties:
5292 key:
5293 description: key is the label key
5294 that the selector applies to.
5295 type: string
5296 operator:
5297 description: |-
5298 operator represents a key's relationship to a set of values.
5299 Valid operators are In, NotIn, Exists and DoesNotExist.
5300 type: string
5301 values:
5302 description: |-
5303 values is an array of string values. If the operator is In or NotIn,
5304 the values array must be non-empty. If the operator is Exists or DoesNotExist,
5305 the values array must be empty. This array is replaced during a strategic
5306 merge patch.
5307 items:
5308 type: string
5309 type: array
5310 x-kubernetes-list-type: atomic
5311 required:
5312 - key
5313 - operator
5314 type: object
5315 type: array
5316 x-kubernetes-list-type: atomic
5317 matchLabels:
5318 additionalProperties:
5319 type: string
5320 description: |-
5321 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
5322 map is equivalent to an element of matchExpressions, whose key field is "key", the
5323 operator is "In", and the values array contains only "value". The requirements are ANDed.
5324 type: object
5325 type: object
5326 x-kubernetes-map-type: atomic
5327 namespaces:
5328 description: |-
5329 namespaces specifies a static list of namespace names that the term applies to.
5330 The term is applied to the union of the namespaces listed in this field
5331 and the ones selected by namespaceSelector.
5332 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
5333 items:
5334 type: string
5335 type: array
5336 x-kubernetes-list-type: atomic
5337 topologyKey:
5338 description: |-
5339 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
5340 the labelSelector in the specified namespaces, where co-located is defined as running on a node
5341 whose value of the label with key topologyKey matches that of any node on which any of the
5342 selected pods is running.
5343 Empty topologyKey is not allowed.
5344 type: string
5345 required:
5346 - topologyKey
5347 type: object
5348 type: array
5349 x-kubernetes-list-type: atomic
5350 type: object
5351 type: object
5352 nodeSelector:
5353 additionalProperties:
5354 type: string
5355 description: |-
5356 nodeSelector is the node selector applied to the relevant kind of pods
5357 It specifies a map of key-value pairs: for the pod to be eligible to run on a node,
5358 the node must have each of the indicated key-value pairs as labels
5359 (it can have additional labels as well).
5360 See https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector
5361 type: object
5362 tolerations:
5363 description: |-
5364 tolerations is a list of tolerations applied to the relevant kind of pods
5365 See https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ for more info.
5366 These are additional tolerations other than default ones.
5367 items:
5368 description: |-
5369 The pod this Toleration is attached to tolerates any taint that matches
5370 the triple <key,value,effect> using the matching operator <operator>.
5371 properties:
5372 effect:
5373 description: |-
5374 Effect indicates the taint effect to match. Empty means match all taint effects.
5375 When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
5376 type: string
5377 key:
5378 description: |-
5379 Key is the taint key that the toleration applies to. Empty means match all taint keys.
5380 If the key is empty, operator must be Exists; this combination means to match all values and all keys.
5381 type: string
5382 operator:
5383 description: |-
5384 Operator represents a key's relationship to the value.
5385 Valid operators are Exists and Equal. Defaults to Equal.
5386 Exists is equivalent to wildcard for value, so that a pod can
5387 tolerate all taints of a particular category.
5388 type: string
5389 tolerationSeconds:
5390 description: |-
5391 TolerationSeconds represents the period of time the toleration (which must be
5392 of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
5393 it is not set, which means tolerate the taint forever (do not evict). Zero and
5394 negative values will be treated as 0 (evict immediately) by the system.
5395 format: int64
5396 type: integer
5397 value:
5398 description: |-
5399 Value is the taint value the toleration matches to.
5400 If the operator is Exists, the value should be empty, otherwise just a regular string.
5401 type: string
5402 type: object
5403 type: array
5404 type: object
5405 replicas:
5406 description: |-
5407 replicas indicates how many replicas should be created for each KubeVirt infrastructure
5408 component (like virt-api or virt-controller). Defaults to 2.
5409 WARNING: this is an advanced feature that prevents auto-scaling for core kubevirt components. Please use with caution!
5410 type: integer
5411 type: object
5412 monitorAccount:
5413 description: |-
5414 The name of the Prometheus service account that needs read-access to KubeVirt endpoints
5415 Defaults to prometheus-k8s
5416 type: string
5417 monitorNamespace:
5418 description: |-
5419 The namespace Prometheus is deployed in
5420 Defaults to openshift-monitor
5421 type: string
5422 productComponent:
5423 description: |-
5424 Designate the apps.kubevirt.io/component label for KubeVirt components.
5425 Useful if KubeVirt is included as part of a product.
5426 If ProductComponent is not specified, the component label default value is kubevirt.
5427 type: string
5428 productName:
5429 description: |-
5430 Designate the apps.kubevirt.io/part-of label for KubeVirt components.
5431 Useful if KubeVirt is included as part of a product.
5432 If ProductName is not specified, the part-of label will be omitted.
5433 type: string
5434 productVersion:
5435 description: |-
5436 Designate the apps.kubevirt.io/version label for KubeVirt components.
5437 Useful if KubeVirt is included as part of a product.
5438 If ProductVersion is not specified, KubeVirt's version will be used.
5439 type: string
5440 serviceMonitorNamespace:
5441 description: |-
5442 The namespace the service monitor will be deployed
5443 When ServiceMonitorNamespace is set, then we'll install the service monitor object in that namespace
5444 otherwise we will use the monitoring namespace.
5445 type: string
5446 uninstallStrategy:
5447 description: |-
5448 Specifies if kubevirt can be deleted if workloads are still present.
5449 This is mainly a precaution to avoid accidental data loss
5450 type: string
5451 workloadUpdateStrategy:
5452 description: |-
5453 WorkloadUpdateStrategy defines at the cluster level how to handle
5454 automated workload updates
5455 properties:
5456 batchEvictionInterval:
5457 description: |-
5458 BatchEvictionInterval Represents the interval to wait before issuing the next
5459 batch of shutdowns
5460
5461
5462 Defaults to 1 minute
5463 type: string
5464 batchEvictionSize:
5465 description: |-
5466 BatchEvictionSize Represents the number of VMIs that can be forced updated per
5467 the BatchShutdownInteral interval
5468
5469
5470 Defaults to 10
5471 type: integer
5472 workloadUpdateMethods:
5473 description: |-
5474 WorkloadUpdateMethods defines the methods that can be used to disrupt workloads
5475 during automated workload updates.
5476 When multiple methods are present, the least disruptive method takes
5477 precedence over more disruptive methods. For example if both LiveMigrate and Shutdown
5478 methods are listed, only VMs which are not live migratable will be restarted/shutdown
5479
5480
5481 An empty list defaults to no automated workload updating
5482 items:
5483 type: string
5484 type: array
5485 x-kubernetes-list-type: atomic
5486 type: object
5487 workloads:
5488 description: selectors and tolerations that should apply to KubeVirt
5489 workloads
5490 properties:
5491 nodePlacement:
5492 description: |-
5493 nodePlacement describes scheduling configuration for specific
5494 KubeVirt components
5495 properties:
5496 affinity:
5497 description: |-
5498 affinity enables pod affinity/anti-affinity placement expanding the types of constraints
5499 that can be expressed with nodeSelector.
5500 affinity is going to be applied to the relevant kind of pods in parallel with nodeSelector
5501 See https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity
5502 properties:
5503 nodeAffinity:
5504 description: Describes node affinity scheduling rules
5505 for the pod.
5506 properties:
5507 preferredDuringSchedulingIgnoredDuringExecution:
5508 description: |-
5509 The scheduler will prefer to schedule pods to nodes that satisfy
5510 the affinity expressions specified by this field, but it may choose
5511 a node that violates one or more of the expressions. The node that is
5512 most preferred is the one with the greatest sum of weights, i.e.
5513 for each node that meets all of the scheduling requirements (resource
5514 request, requiredDuringScheduling affinity expressions, etc.),
5515 compute a sum by iterating through the elements of this field and adding
5516 "weight" to the sum if the node matches the corresponding matchExpressions; the
5517 node(s) with the highest sum are the most preferred.
5518 items:
5519 description: |-
5520 An empty preferred scheduling term matches all objects with implicit weight 0
5521 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
5522 properties:
5523 preference:
5524 description: A node selector term, associated
5525 with the corresponding weight.
5526 properties:
5527 matchExpressions:
5528 description: A list of node selector requirements
5529 by node's labels.
5530 items:
5531 description: |-
5532 A node selector requirement is a selector that contains values, a key, and an operator
5533 that relates the key and values.
5534 properties:
5535 key:
5536 description: The label key that the
5537 selector applies to.
5538 type: string
5539 operator:
5540 description: |-
5541 Represents a key's relationship to a set of values.
5542 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
5543 type: string
5544 values:
5545 description: |-
5546 An array of string values. If the operator is In or NotIn,
5547 the values array must be non-empty. If the operator is Exists or DoesNotExist,
5548 the values array must be empty. If the operator is Gt or Lt, the values
5549 array must have a single element, which will be interpreted as an integer.
5550 This array is replaced during a strategic merge patch.
5551 items:
5552 type: string
5553 type: array
5554 x-kubernetes-list-type: atomic
5555 required:
5556 - key
5557 - operator
5558 type: object
5559 type: array
5560 x-kubernetes-list-type: atomic
5561 matchFields:
5562 description: A list of node selector requirements
5563 by node's fields.
5564 items:
5565 description: |-
5566 A node selector requirement is a selector that contains values, a key, and an operator
5567 that relates the key and values.
5568 properties:
5569 key:
5570 description: The label key that the
5571 selector applies to.
5572 type: string
5573 operator:
5574 description: |-
5575 Represents a key's relationship to a set of values.
5576 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
5577 type: string
5578 values:
5579 description: |-
5580 An array of string values. If the operator is In or NotIn,
5581 the values array must be non-empty. If the operator is Exists or DoesNotExist,
5582 the values array must be empty. If the operator is Gt or Lt, the values
5583 array must have a single element, which will be interpreted as an integer.
5584 This array is replaced during a strategic merge patch.
5585 items:
5586 type: string
5587 type: array
5588 x-kubernetes-list-type: atomic
5589 required:
5590 - key
5591 - operator
5592 type: object
5593 type: array
5594 x-kubernetes-list-type: atomic
5595 type: object
5596 x-kubernetes-map-type: atomic
5597 weight:
5598 description: Weight associated with matching
5599 the corresponding nodeSelectorTerm, in the
5600 range 1-100.
5601 format: int32
5602 type: integer
5603 required:
5604 - preference
5605 - weight
5606 type: object
5607 type: array
5608 x-kubernetes-list-type: atomic
5609 requiredDuringSchedulingIgnoredDuringExecution:
5610 description: |-
5611 If the affinity requirements specified by this field are not met at
5612 scheduling time, the pod will not be scheduled onto the node.
5613 If the affinity requirements specified by this field cease to be met
5614 at some point during pod execution (e.g. due to an update), the system
5615 may or may not try to eventually evict the pod from its node.
5616 properties:
5617 nodeSelectorTerms:
5618 description: Required. A list of node selector
5619 terms. The terms are ORed.
5620 items:
5621 description: |-
5622 A null or empty node selector term matches no objects. The requirements of
5623 them are ANDed.
5624 The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
5625 properties:
5626 matchExpressions:
5627 description: A list of node selector requirements
5628 by node's labels.
5629 items:
5630 description: |-
5631 A node selector requirement is a selector that contains values, a key, and an operator
5632 that relates the key and values.
5633 properties:
5634 key:
5635 description: The label key that the
5636 selector applies to.
5637 type: string
5638 operator:
5639 description: |-
5640 Represents a key's relationship to a set of values.
5641 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
5642 type: string
5643 values:
5644 description: |-
5645 An array of string values. If the operator is In or NotIn,
5646 the values array must be non-empty. If the operator is Exists or DoesNotExist,
5647 the values array must be empty. If the operator is Gt or Lt, the values
5648 array must have a single element, which will be interpreted as an integer.
5649 This array is replaced during a strategic merge patch.
5650 items:
5651 type: string
5652 type: array
5653 x-kubernetes-list-type: atomic
5654 required:
5655 - key
5656 - operator
5657 type: object
5658 type: array
5659 x-kubernetes-list-type: atomic
5660 matchFields:
5661 description: A list of node selector requirements
5662 by node's fields.
5663 items:
5664 description: |-
5665 A node selector requirement is a selector that contains values, a key, and an operator
5666 that relates the key and values.
5667 properties:
5668 key:
5669 description: The label key that the
5670 selector applies to.
5671 type: string
5672 operator:
5673 description: |-
5674 Represents a key's relationship to a set of values.
5675 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
5676 type: string
5677 values:
5678 description: |-
5679 An array of string values. If the operator is In or NotIn,
5680 the values array must be non-empty. If the operator is Exists or DoesNotExist,
5681 the values array must be empty. If the operator is Gt or Lt, the values
5682 array must have a single element, which will be interpreted as an integer.
5683 This array is replaced during a strategic merge patch.
5684 items:
5685 type: string
5686 type: array
5687 x-kubernetes-list-type: atomic
5688 required:
5689 - key
5690 - operator
5691 type: object
5692 type: array
5693 x-kubernetes-list-type: atomic
5694 type: object
5695 x-kubernetes-map-type: atomic
5696 type: array
5697 x-kubernetes-list-type: atomic
5698 required:
5699 - nodeSelectorTerms
5700 type: object
5701 x-kubernetes-map-type: atomic
5702 type: object
5703 podAffinity:
5704 description: Describes pod affinity scheduling rules (e.g.
5705 co-locate this pod in the same node, zone, etc. as some
5706 other pod(s)).
5707 properties:
5708 preferredDuringSchedulingIgnoredDuringExecution:
5709 description: |-
5710 The scheduler will prefer to schedule pods to nodes that satisfy
5711 the affinity expressions specified by this field, but it may choose
5712 a node that violates one or more of the expressions. The node that is
5713 most preferred is the one with the greatest sum of weights, i.e.
5714 for each node that meets all of the scheduling requirements (resource
5715 request, requiredDuringScheduling affinity expressions, etc.),
5716 compute a sum by iterating through the elements of this field and adding
5717 "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
5718 node(s) with the highest sum are the most preferred.
5719 items:
5720 description: The weights of all of the matched WeightedPodAffinityTerm
5721 fields are added per-node to find the most preferred
5722 node(s)
5723 properties:
5724 podAffinityTerm:
5725 description: Required. A pod affinity term,
5726 associated with the corresponding weight.
5727 properties:
5728 labelSelector:
5729 description: |-
5730 A label query over a set of resources, in this case pods.
5731 If it's null, this PodAffinityTerm matches with no Pods.
5732 properties:
5733 matchExpressions:
5734 description: matchExpressions is a list
5735 of label selector requirements. The
5736 requirements are ANDed.
5737 items:
5738 description: |-
5739 A label selector requirement is a selector that contains values, a key, and an operator that
5740 relates the key and values.
5741 properties:
5742 key:
5743 description: key is the label
5744 key that the selector applies
5745 to.
5746 type: string
5747 operator:
5748 description: |-
5749 operator represents a key's relationship to a set of values.
5750 Valid operators are In, NotIn, Exists and DoesNotExist.
5751 type: string
5752 values:
5753 description: |-
5754 values is an array of string values. If the operator is In or NotIn,
5755 the values array must be non-empty. If the operator is Exists or DoesNotExist,
5756 the values array must be empty. This array is replaced during a strategic
5757 merge patch.
5758 items:
5759 type: string
5760 type: array
5761 x-kubernetes-list-type: atomic
5762 required:
5763 - key
5764 - operator
5765 type: object
5766 type: array
5767 x-kubernetes-list-type: atomic
5768 matchLabels:
5769 additionalProperties:
5770 type: string
5771 description: |-
5772 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
5773 map is equivalent to an element of matchExpressions, whose key field is "key", the
5774 operator is "In", and the values array contains only "value". The requirements are ANDed.
5775 type: object
5776 type: object
5777 x-kubernetes-map-type: atomic
5778 matchLabelKeys:
5779 description: |-
5780 MatchLabelKeys is a set of pod label keys to select which pods will
5781 be taken into consideration. The keys are used to lookup values from the
5782 incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)'
5783 to select the group of existing pods which pods will be taken into consideration
5784 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
5785 pod labels will be ignored. The default value is empty.
5786 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
5787 Also, matchLabelKeys cannot be set when labelSelector isn't set.
5788 This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
5789 items:
5790 type: string
5791 type: array
5792 x-kubernetes-list-type: atomic
5793 mismatchLabelKeys:
5794 description: |-
5795 MismatchLabelKeys is a set of pod label keys to select which pods will
5796 be taken into consideration. The keys are used to lookup values from the
5797 incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)'
5798 to select the group of existing pods which pods will be taken into consideration
5799 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
5800 pod labels will be ignored. The default value is empty.
5801 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
5802 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
5803 This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
5804 items:
5805 type: string
5806 type: array
5807 x-kubernetes-list-type: atomic
5808 namespaceSelector:
5809 description: |-
5810 A label query over the set of namespaces that the term applies to.
5811 The term is applied to the union of the namespaces selected by this field
5812 and the ones listed in the namespaces field.
5813 null selector and null or empty namespaces list means "this pod's namespace".
5814 An empty selector ({}) matches all namespaces.
5815 properties:
5816 matchExpressions:
5817 description: matchExpressions is a list
5818 of label selector requirements. The
5819 requirements are ANDed.
5820 items:
5821 description: |-
5822 A label selector requirement is a selector that contains values, a key, and an operator that
5823 relates the key and values.
5824 properties:
5825 key:
5826 description: key is the label
5827 key that the selector applies
5828 to.
5829 type: string
5830 operator:
5831 description: |-
5832 operator represents a key's relationship to a set of values.
5833 Valid operators are In, NotIn, Exists and DoesNotExist.
5834 type: string
5835 values:
5836 description: |-
5837 values is an array of string values. If the operator is In or NotIn,
5838 the values array must be non-empty. If the operator is Exists or DoesNotExist,
5839 the values array must be empty. This array is replaced during a strategic
5840 merge patch.
5841 items:
5842 type: string
5843 type: array
5844 x-kubernetes-list-type: atomic
5845 required:
5846 - key
5847 - operator
5848 type: object
5849 type: array
5850 x-kubernetes-list-type: atomic
5851 matchLabels:
5852 additionalProperties:
5853 type: string
5854 description: |-
5855 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
5856 map is equivalent to an element of matchExpressions, whose key field is "key", the
5857 operator is "In", and the values array contains only "value". The requirements are ANDed.
5858 type: object
5859 type: object
5860 x-kubernetes-map-type: atomic
5861 namespaces:
5862 description: |-
5863 namespaces specifies a static list of namespace names that the term applies to.
5864 The term is applied to the union of the namespaces listed in this field
5865 and the ones selected by namespaceSelector.
5866 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
5867 items:
5868 type: string
5869 type: array
5870 x-kubernetes-list-type: atomic
5871 topologyKey:
5872 description: |-
5873 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
5874 the labelSelector in the specified namespaces, where co-located is defined as running on a node
5875 whose value of the label with key topologyKey matches that of any node on which any of the
5876 selected pods is running.
5877 Empty topologyKey is not allowed.
5878 type: string
5879 required:
5880 - topologyKey
5881 type: object
5882 weight:
5883 description: |-
5884 weight associated with matching the corresponding podAffinityTerm,
5885 in the range 1-100.
5886 format: int32
5887 type: integer
5888 required:
5889 - podAffinityTerm
5890 - weight
5891 type: object
5892 type: array
5893 x-kubernetes-list-type: atomic
5894 requiredDuringSchedulingIgnoredDuringExecution:
5895 description: |-
5896 If the affinity requirements specified by this field are not met at
5897 scheduling time, the pod will not be scheduled onto the node.
5898 If the affinity requirements specified by this field cease to be met
5899 at some point during pod execution (e.g. due to a pod label update), the
5900 system may or may not try to eventually evict the pod from its node.
5901 When there are multiple elements, the lists of nodes corresponding to each
5902 podAffinityTerm are intersected, i.e. all terms must be satisfied.
5903 items:
5904 description: |-
5905 Defines a set of pods (namely those matching the labelSelector
5906 relative to the given namespace(s)) that this pod should be
5907 co-located (affinity) or not co-located (anti-affinity) with,
5908 where co-located is defined as running on a node whose value of
5909 the label with key <topologyKey> matches that of any node on which
5910 a pod of the set of pods is running
5911 properties:
5912 labelSelector:
5913 description: |-
5914 A label query over a set of resources, in this case pods.
5915 If it's null, this PodAffinityTerm matches with no Pods.
5916 properties:
5917 matchExpressions:
5918 description: matchExpressions is a list
5919 of label selector requirements. The requirements
5920 are ANDed.
5921 items:
5922 description: |-
5923 A label selector requirement is a selector that contains values, a key, and an operator that
5924 relates the key and values.
5925 properties:
5926 key:
5927 description: key is the label key
5928 that the selector applies to.
5929 type: string
5930 operator:
5931 description: |-
5932 operator represents a key's relationship to a set of values.
5933 Valid operators are In, NotIn, Exists and DoesNotExist.
5934 type: string
5935 values:
5936 description: |-
5937 values is an array of string values. If the operator is In or NotIn,
5938 the values array must be non-empty. If the operator is Exists or DoesNotExist,
5939 the values array must be empty. This array is replaced during a strategic
5940 merge patch.
5941 items:
5942 type: string
5943 type: array
5944 x-kubernetes-list-type: atomic
5945 required:
5946 - key
5947 - operator
5948 type: object
5949 type: array
5950 x-kubernetes-list-type: atomic
5951 matchLabels:
5952 additionalProperties:
5953 type: string
5954 description: |-
5955 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
5956 map is equivalent to an element of matchExpressions, whose key field is "key", the
5957 operator is "In", and the values array contains only "value". The requirements are ANDed.
5958 type: object
5959 type: object
5960 x-kubernetes-map-type: atomic
5961 matchLabelKeys:
5962 description: |-
5963 MatchLabelKeys is a set of pod label keys to select which pods will
5964 be taken into consideration. The keys are used to lookup values from the
5965 incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)'
5966 to select the group of existing pods which pods will be taken into consideration
5967 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
5968 pod labels will be ignored. The default value is empty.
5969 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
5970 Also, matchLabelKeys cannot be set when labelSelector isn't set.
5971 This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
5972 items:
5973 type: string
5974 type: array
5975 x-kubernetes-list-type: atomic
5976 mismatchLabelKeys:
5977 description: |-
5978 MismatchLabelKeys is a set of pod label keys to select which pods will
5979 be taken into consideration. The keys are used to lookup values from the
5980 incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)'
5981 to select the group of existing pods which pods will be taken into consideration
5982 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
5983 pod labels will be ignored. The default value is empty.
5984 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
5985 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
5986 This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
5987 items:
5988 type: string
5989 type: array
5990 x-kubernetes-list-type: atomic
5991 namespaceSelector:
5992 description: |-
5993 A label query over the set of namespaces that the term applies to.
5994 The term is applied to the union of the namespaces selected by this field
5995 and the ones listed in the namespaces field.
5996 null selector and null or empty namespaces list means "this pod's namespace".
5997 An empty selector ({}) matches all namespaces.
5998 properties:
5999 matchExpressions:
6000 description: matchExpressions is a list
6001 of label selector requirements. The requirements
6002 are ANDed.
6003 items:
6004 description: |-
6005 A label selector requirement is a selector that contains values, a key, and an operator that
6006 relates the key and values.
6007 properties:
6008 key:
6009 description: key is the label key
6010 that the selector applies to.
6011 type: string
6012 operator:
6013 description: |-
6014 operator represents a key's relationship to a set of values.
6015 Valid operators are In, NotIn, Exists and DoesNotExist.
6016 type: string
6017 values:
6018 description: |-
6019 values is an array of string values. If the operator is In or NotIn,
6020 the values array must be non-empty. If the operator is Exists or DoesNotExist,
6021 the values array must be empty. This array is replaced during a strategic
6022 merge patch.
6023 items:
6024 type: string
6025 type: array
6026 x-kubernetes-list-type: atomic
6027 required:
6028 - key
6029 - operator
6030 type: object
6031 type: array
6032 x-kubernetes-list-type: atomic
6033 matchLabels:
6034 additionalProperties:
6035 type: string
6036 description: |-
6037 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
6038 map is equivalent to an element of matchExpressions, whose key field is "key", the
6039 operator is "In", and the values array contains only "value". The requirements are ANDed.
6040 type: object
6041 type: object
6042 x-kubernetes-map-type: atomic
6043 namespaces:
6044 description: |-
6045 namespaces specifies a static list of namespace names that the term applies to.
6046 The term is applied to the union of the namespaces listed in this field
6047 and the ones selected by namespaceSelector.
6048 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
6049 items:
6050 type: string
6051 type: array
6052 x-kubernetes-list-type: atomic
6053 topologyKey:
6054 description: |-
6055 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
6056 the labelSelector in the specified namespaces, where co-located is defined as running on a node
6057 whose value of the label with key topologyKey matches that of any node on which any of the
6058 selected pods is running.
6059 Empty topologyKey is not allowed.
6060 type: string
6061 required:
6062 - topologyKey
6063 type: object
6064 type: array
6065 x-kubernetes-list-type: atomic
6066 type: object
6067 podAntiAffinity:
6068 description: Describes pod anti-affinity scheduling rules
6069 (e.g. avoid putting this pod in the same node, zone,
6070 etc. as some other pod(s)).
6071 properties:
6072 preferredDuringSchedulingIgnoredDuringExecution:
6073 description: |-
6074 The scheduler will prefer to schedule pods to nodes that satisfy
6075 the anti-affinity expressions specified by this field, but it may choose
6076 a node that violates one or more of the expressions. The node that is
6077 most preferred is the one with the greatest sum of weights, i.e.
6078 for each node that meets all of the scheduling requirements (resource
6079 request, requiredDuringScheduling anti-affinity expressions, etc.),
6080 compute a sum by iterating through the elements of this field and adding
6081 "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
6082 node(s) with the highest sum are the most preferred.
6083 items:
6084 description: The weights of all of the matched WeightedPodAffinityTerm
6085 fields are added per-node to find the most preferred
6086 node(s)
6087 properties:
6088 podAffinityTerm:
6089 description: Required. A pod affinity term,
6090 associated with the corresponding weight.
6091 properties:
6092 labelSelector:
6093 description: |-
6094 A label query over a set of resources, in this case pods.
6095 If it's null, this PodAffinityTerm matches with no Pods.
6096 properties:
6097 matchExpressions:
6098 description: matchExpressions is a list
6099 of label selector requirements. The
6100 requirements are ANDed.
6101 items:
6102 description: |-
6103 A label selector requirement is a selector that contains values, a key, and an operator that
6104 relates the key and values.
6105 properties:
6106 key:
6107 description: key is the label
6108 key that the selector applies
6109 to.
6110 type: string
6111 operator:
6112 description: |-
6113 operator represents a key's relationship to a set of values.
6114 Valid operators are In, NotIn, Exists and DoesNotExist.
6115 type: string
6116 values:
6117 description: |-
6118 values is an array of string values. If the operator is In or NotIn,
6119 the values array must be non-empty. If the operator is Exists or DoesNotExist,
6120 the values array must be empty. This array is replaced during a strategic
6121 merge patch.
6122 items:
6123 type: string
6124 type: array
6125 x-kubernetes-list-type: atomic
6126 required:
6127 - key
6128 - operator
6129 type: object
6130 type: array
6131 x-kubernetes-list-type: atomic
6132 matchLabels:
6133 additionalProperties:
6134 type: string
6135 description: |-
6136 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
6137 map is equivalent to an element of matchExpressions, whose key field is "key", the
6138 operator is "In", and the values array contains only "value". The requirements are ANDed.
6139 type: object
6140 type: object
6141 x-kubernetes-map-type: atomic
6142 matchLabelKeys:
6143 description: |-
6144 MatchLabelKeys is a set of pod label keys to select which pods will
6145 be taken into consideration. The keys are used to lookup values from the
6146 incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)'
6147 to select the group of existing pods which pods will be taken into consideration
6148 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
6149 pod labels will be ignored. The default value is empty.
6150 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
6151 Also, matchLabelKeys cannot be set when labelSelector isn't set.
6152 This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
6153 items:
6154 type: string
6155 type: array
6156 x-kubernetes-list-type: atomic
6157 mismatchLabelKeys:
6158 description: |-
6159 MismatchLabelKeys is a set of pod label keys to select which pods will
6160 be taken into consideration. The keys are used to lookup values from the
6161 incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)'
6162 to select the group of existing pods which pods will be taken into consideration
6163 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
6164 pod labels will be ignored. The default value is empty.
6165 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
6166 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
6167 This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
6168 items:
6169 type: string
6170 type: array
6171 x-kubernetes-list-type: atomic
6172 namespaceSelector:
6173 description: |-
6174 A label query over the set of namespaces that the term applies to.
6175 The term is applied to the union of the namespaces selected by this field
6176 and the ones listed in the namespaces field.
6177 null selector and null or empty namespaces list means "this pod's namespace".
6178 An empty selector ({}) matches all namespaces.
6179 properties:
6180 matchExpressions:
6181 description: matchExpressions is a list
6182 of label selector requirements. The
6183 requirements are ANDed.
6184 items:
6185 description: |-
6186 A label selector requirement is a selector that contains values, a key, and an operator that
6187 relates the key and values.
6188 properties:
6189 key:
6190 description: key is the label
6191 key that the selector applies
6192 to.
6193 type: string
6194 operator:
6195 description: |-
6196 operator represents a key's relationship to a set of values.
6197 Valid operators are In, NotIn, Exists and DoesNotExist.
6198 type: string
6199 values:
6200 description: |-
6201 values is an array of string values. If the operator is In or NotIn,
6202 the values array must be non-empty. If the operator is Exists or DoesNotExist,
6203 the values array must be empty. This array is replaced during a strategic
6204 merge patch.
6205 items:
6206 type: string
6207 type: array
6208 x-kubernetes-list-type: atomic
6209 required:
6210 - key
6211 - operator
6212 type: object
6213 type: array
6214 x-kubernetes-list-type: atomic
6215 matchLabels:
6216 additionalProperties:
6217 type: string
6218 description: |-
6219 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
6220 map is equivalent to an element of matchExpressions, whose key field is "key", the
6221 operator is "In", and the values array contains only "value". The requirements are ANDed.
6222 type: object
6223 type: object
6224 x-kubernetes-map-type: atomic
6225 namespaces:
6226 description: |-
6227 namespaces specifies a static list of namespace names that the term applies to.
6228 The term is applied to the union of the namespaces listed in this field
6229 and the ones selected by namespaceSelector.
6230 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
6231 items:
6232 type: string
6233 type: array
6234 x-kubernetes-list-type: atomic
6235 topologyKey:
6236 description: |-
6237 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
6238 the labelSelector in the specified namespaces, where co-located is defined as running on a node
6239 whose value of the label with key topologyKey matches that of any node on which any of the
6240 selected pods is running.
6241 Empty topologyKey is not allowed.
6242 type: string
6243 required:
6244 - topologyKey
6245 type: object
6246 weight:
6247 description: |-
6248 weight associated with matching the corresponding podAffinityTerm,
6249 in the range 1-100.
6250 format: int32
6251 type: integer
6252 required:
6253 - podAffinityTerm
6254 - weight
6255 type: object
6256 type: array
6257 x-kubernetes-list-type: atomic
6258 requiredDuringSchedulingIgnoredDuringExecution:
6259 description: |-
6260 If the anti-affinity requirements specified by this field are not met at
6261 scheduling time, the pod will not be scheduled onto the node.
6262 If the anti-affinity requirements specified by this field cease to be met
6263 at some point during pod execution (e.g. due to a pod label update), the
6264 system may or may not try to eventually evict the pod from its node.
6265 When there are multiple elements, the lists of nodes corresponding to each
6266 podAffinityTerm are intersected, i.e. all terms must be satisfied.
6267 items:
6268 description: |-
6269 Defines a set of pods (namely those matching the labelSelector
6270 relative to the given namespace(s)) that this pod should be
6271 co-located (affinity) or not co-located (anti-affinity) with,
6272 where co-located is defined as running on a node whose value of
6273 the label with key <topologyKey> matches that of any node on which
6274 a pod of the set of pods is running
6275 properties:
6276 labelSelector:
6277 description: |-
6278 A label query over a set of resources, in this case pods.
6279 If it's null, this PodAffinityTerm matches with no Pods.
6280 properties:
6281 matchExpressions:
6282 description: matchExpressions is a list
6283 of label selector requirements. The requirements
6284 are ANDed.
6285 items:
6286 description: |-
6287 A label selector requirement is a selector that contains values, a key, and an operator that
6288 relates the key and values.
6289 properties:
6290 key:
6291 description: key is the label key
6292 that the selector applies to.
6293 type: string
6294 operator:
6295 description: |-
6296 operator represents a key's relationship to a set of values.
6297 Valid operators are In, NotIn, Exists and DoesNotExist.
6298 type: string
6299 values:
6300 description: |-
6301 values is an array of string values. If the operator is In or NotIn,
6302 the values array must be non-empty. If the operator is Exists or DoesNotExist,
6303 the values array must be empty. This array is replaced during a strategic
6304 merge patch.
6305 items:
6306 type: string
6307 type: array
6308 x-kubernetes-list-type: atomic
6309 required:
6310 - key
6311 - operator
6312 type: object
6313 type: array
6314 x-kubernetes-list-type: atomic
6315 matchLabels:
6316 additionalProperties:
6317 type: string
6318 description: |-
6319 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
6320 map is equivalent to an element of matchExpressions, whose key field is "key", the
6321 operator is "In", and the values array contains only "value". The requirements are ANDed.
6322 type: object
6323 type: object
6324 x-kubernetes-map-type: atomic
6325 matchLabelKeys:
6326 description: |-
6327 MatchLabelKeys is a set of pod label keys to select which pods will
6328 be taken into consideration. The keys are used to lookup values from the
6329 incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)'
6330 to select the group of existing pods which pods will be taken into consideration
6331 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
6332 pod labels will be ignored. The default value is empty.
6333 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
6334 Also, matchLabelKeys cannot be set when labelSelector isn't set.
6335 This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
6336 items:
6337 type: string
6338 type: array
6339 x-kubernetes-list-type: atomic
6340 mismatchLabelKeys:
6341 description: |-
6342 MismatchLabelKeys is a set of pod label keys to select which pods will
6343 be taken into consideration. The keys are used to lookup values from the
6344 incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)'
6345 to select the group of existing pods which pods will be taken into consideration
6346 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
6347 pod labels will be ignored. The default value is empty.
6348 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
6349 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
6350 This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
6351 items:
6352 type: string
6353 type: array
6354 x-kubernetes-list-type: atomic
6355 namespaceSelector:
6356 description: |-
6357 A label query over the set of namespaces that the term applies to.
6358 The term is applied to the union of the namespaces selected by this field
6359 and the ones listed in the namespaces field.
6360 null selector and null or empty namespaces list means "this pod's namespace".
6361 An empty selector ({}) matches all namespaces.
6362 properties:
6363 matchExpressions:
6364 description: matchExpressions is a list
6365 of label selector requirements. The requirements
6366 are ANDed.
6367 items:
6368 description: |-
6369 A label selector requirement is a selector that contains values, a key, and an operator that
6370 relates the key and values.
6371 properties:
6372 key:
6373 description: key is the label key
6374 that the selector applies to.
6375 type: string
6376 operator:
6377 description: |-
6378 operator represents a key's relationship to a set of values.
6379 Valid operators are In, NotIn, Exists and DoesNotExist.
6380 type: string
6381 values:
6382 description: |-
6383 values is an array of string values. If the operator is In or NotIn,
6384 the values array must be non-empty. If the operator is Exists or DoesNotExist,
6385 the values array must be empty. This array is replaced during a strategic
6386 merge patch.
6387 items:
6388 type: string
6389 type: array
6390 x-kubernetes-list-type: atomic
6391 required:
6392 - key
6393 - operator
6394 type: object
6395 type: array
6396 x-kubernetes-list-type: atomic
6397 matchLabels:
6398 additionalProperties:
6399 type: string
6400 description: |-
6401 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
6402 map is equivalent to an element of matchExpressions, whose key field is "key", the
6403 operator is "In", and the values array contains only "value". The requirements are ANDed.
6404 type: object
6405 type: object
6406 x-kubernetes-map-type: atomic
6407 namespaces:
6408 description: |-
6409 namespaces specifies a static list of namespace names that the term applies to.
6410 The term is applied to the union of the namespaces listed in this field
6411 and the ones selected by namespaceSelector.
6412 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
6413 items:
6414 type: string
6415 type: array
6416 x-kubernetes-list-type: atomic
6417 topologyKey:
6418 description: |-
6419 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
6420 the labelSelector in the specified namespaces, where co-located is defined as running on a node
6421 whose value of the label with key topologyKey matches that of any node on which any of the
6422 selected pods is running.
6423 Empty topologyKey is not allowed.
6424 type: string
6425 required:
6426 - topologyKey
6427 type: object
6428 type: array
6429 x-kubernetes-list-type: atomic
6430 type: object
6431 type: object
6432 nodeSelector:
6433 additionalProperties:
6434 type: string
6435 description: |-
6436 nodeSelector is the node selector applied to the relevant kind of pods
6437 It specifies a map of key-value pairs: for the pod to be eligible to run on a node,
6438 the node must have each of the indicated key-value pairs as labels
6439 (it can have additional labels as well).
6440 See https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector
6441 type: object
6442 tolerations:
6443 description: |-
6444 tolerations is a list of tolerations applied to the relevant kind of pods
6445 See https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ for more info.
6446 These are additional tolerations other than default ones.
6447 items:
6448 description: |-
6449 The pod this Toleration is attached to tolerates any taint that matches
6450 the triple <key,value,effect> using the matching operator <operator>.
6451 properties:
6452 effect:
6453 description: |-
6454 Effect indicates the taint effect to match. Empty means match all taint effects.
6455 When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
6456 type: string
6457 key:
6458 description: |-
6459 Key is the taint key that the toleration applies to. Empty means match all taint keys.
6460 If the key is empty, operator must be Exists; this combination means to match all values and all keys.
6461 type: string
6462 operator:
6463 description: |-
6464 Operator represents a key's relationship to the value.
6465 Valid operators are Exists and Equal. Defaults to Equal.
6466 Exists is equivalent to wildcard for value, so that a pod can
6467 tolerate all taints of a particular category.
6468 type: string
6469 tolerationSeconds:
6470 description: |-
6471 TolerationSeconds represents the period of time the toleration (which must be
6472 of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
6473 it is not set, which means tolerate the taint forever (do not evict). Zero and
6474 negative values will be treated as 0 (evict immediately) by the system.
6475 format: int64
6476 type: integer
6477 value:
6478 description: |-
6479 Value is the taint value the toleration matches to.
6480 If the operator is Exists, the value should be empty, otherwise just a regular string.
6481 type: string
6482 type: object
6483 type: array
6484 type: object
6485 replicas:
6486 description: |-
6487 replicas indicates how many replicas should be created for each KubeVirt infrastructure
6488 component (like virt-api or virt-controller). Defaults to 2.
6489 WARNING: this is an advanced feature that prevents auto-scaling for core kubevirt components. Please use with caution!
6490 type: integer
6491 type: object
6492 type: object
6493 status:
6494 description: KubeVirtStatus represents information pertaining to a KubeVirt
6495 deployment.
6496 properties:
6497 conditions:
6498 items:
6499 description: KubeVirtCondition represents a condition of a KubeVirt
6500 deployment
6501 properties:
6502 lastProbeTime:
6503 format: date-time
6504 nullable: true
6505 type: string
6506 lastTransitionTime:
6507 format: date-time
6508 nullable: true
6509 type: string
6510 message:
6511 type: string
6512 reason:
6513 type: string
6514 status:
6515 type: string
6516 type:
6517 type: string
6518 required:
6519 - status
6520 - type
6521 type: object
6522 type: array
6523 defaultArchitecture:
6524 type: string
6525 generations:
6526 items:
6527 description: GenerationStatus keeps track of the generation for
6528 a given resource so that decisions about forced updates can be
6529 made.
6530 properties:
6531 group:
6532 description: group is the group of the thing you're tracking
6533 type: string
6534 hash:
6535 description: hash is an optional field set for resources without
6536 generation that are content sensitive like secrets and configmaps
6537 type: string
6538 lastGeneration:
6539 description: lastGeneration is the last generation of the workload
6540 controller involved
6541 format: int64
6542 type: integer
6543 name:
6544 description: name is the name of the thing you're tracking
6545 type: string
6546 namespace:
6547 description: namespace is where the thing you're tracking is
6548 type: string
6549 resource:
6550 description: resource is the resource type of the thing you're
6551 tracking
6552 type: string
6553 required:
6554 - group
6555 - lastGeneration
6556 - name
6557 - resource
6558 type: object
6559 type: array
6560 x-kubernetes-list-type: atomic
6561 observedDeploymentConfig:
6562 type: string
6563 observedDeploymentID:
6564 type: string
6565 observedGeneration:
6566 format: int64
6567 type: integer
6568 observedKubeVirtRegistry:
6569 type: string
6570 observedKubeVirtVersion:
6571 type: string
6572 operatorVersion:
6573 type: string
6574 outdatedVirtualMachineInstanceWorkloads:
6575 type: integer
6576 phase:
6577 description: KubeVirtPhase is a label for the phase of a KubeVirt
6578 deployment at the current time.
6579 type: string
6580 targetDeploymentConfig:
6581 type: string
6582 targetDeploymentID:
6583 type: string
6584 targetKubeVirtRegistry:
6585 type: string
6586 targetKubeVirtVersion:
6587 type: string
6588 type: object
6589 required:
6590 - spec
6591 type: object
6592 served: true
6593 storage: false
6594 subresources:
6595 status: {}
6596
6597---
6598apiVersion: scheduling.k8s.io/v1
6599kind: PriorityClass
6600metadata:
6601 name: kubevirt-cluster-critical
6602value: 1000000000
6603globalDefault: false
6604description: "This priority class should be used for core kubevirt components only."
6605---
6606apiVersion: rbac.authorization.k8s.io/v1
6607kind: ClusterRole
6608metadata:
6609 name: kubevirt.io:operator
6610 labels:
6611 operator.kubevirt.io: ""
6612 rbac.authorization.k8s.io/aggregate-to-admin: "true"
6613rules:
6614 - apiGroups:
6615 - kubevirt.io
6616 resources:
6617 - kubevirts
6618 verbs:
6619 - get
6620 - delete
6621 - create
6622 - update
6623 - patch
6624 - list
6625 - watch
6626 - deletecollection
6627---
6628apiVersion: v1
6629kind: ServiceAccount
6630metadata:
6631 labels:
6632 kubevirt.io: ""
6633 name: kubevirt-operator
6634 namespace: kubevirt
6635---
6636apiVersion: rbac.authorization.k8s.io/v1
6637kind: Role
6638metadata:
6639 labels:
6640 kubevirt.io: ""
6641 name: kubevirt-operator
6642 namespace: kubevirt
6643rules:
6644- apiGroups:
6645 - ""
6646 resourceNames:
6647 - kubevirt-ca
6648 - kubevirt-export-ca
6649 - kubevirt-virt-handler-certs
6650 - kubevirt-virt-handler-server-certs
6651 - kubevirt-operator-certs
6652 - kubevirt-virt-api-certs
6653 - kubevirt-controller-certs
6654 - kubevirt-exportproxy-certs
6655 resources:
6656 - secrets
6657 verbs:
6658 - create
6659 - get
6660 - list
6661 - watch
6662 - patch
6663 - delete
6664- apiGroups:
6665 - ""
6666 resources:
6667 - configmaps
6668 verbs:
6669 - create
6670 - get
6671 - list
6672 - watch
6673 - patch
6674 - delete
6675- apiGroups:
6676 - route.openshift.io
6677 resources:
6678 - routes
6679 verbs:
6680 - create
6681 - get
6682 - list
6683 - watch
6684 - patch
6685 - delete
6686- apiGroups:
6687 - route.openshift.io
6688 resources:
6689 - routes/custom-host
6690 verbs:
6691 - create
6692- apiGroups:
6693 - coordination.k8s.io
6694 resources:
6695 - leases
6696 verbs:
6697 - get
6698 - list
6699 - watch
6700 - delete
6701 - update
6702 - create
6703 - patch
6704- apiGroups:
6705 - ""
6706 resources:
6707 - configmaps
6708 verbs:
6709 - get
6710 - list
6711 - watch
6712- apiGroups:
6713 - route.openshift.io
6714 resources:
6715 - routes
6716 verbs:
6717 - list
6718 - get
6719 - watch
6720- apiGroups:
6721 - ""
6722 resources:
6723 - secrets
6724 verbs:
6725 - list
6726 - get
6727 - watch
6728- apiGroups:
6729 - networking.k8s.io
6730 resources:
6731 - ingresses
6732 verbs:
6733 - list
6734 - get
6735 - watch
6736- apiGroups:
6737 - coordination.k8s.io
6738 resources:
6739 - leases
6740 verbs:
6741 - get
6742 - list
6743 - watch
6744 - delete
6745 - update
6746 - create
6747 - patch
6748- apiGroups:
6749 - ""
6750 resources:
6751 - configmaps
6752 verbs:
6753 - get
6754 - list
6755 - watch
6756- apiGroups:
6757 - ""
6758 resourceNames:
6759 - kubevirt-export-ca
6760 resources:
6761 - configmaps
6762 verbs:
6763 - get
6764 - list
6765 - watch
6766---
6767apiVersion: rbac.authorization.k8s.io/v1
6768kind: RoleBinding
6769metadata:
6770 labels:
6771 kubevirt.io: ""
6772 name: kubevirt-operator-rolebinding
6773 namespace: kubevirt
6774roleRef:
6775 apiGroup: rbac.authorization.k8s.io
6776 kind: Role
6777 name: kubevirt-operator
6778subjects:
6779- kind: ServiceAccount
6780 name: kubevirt-operator
6781 namespace: kubevirt
6782---
6783apiVersion: rbac.authorization.k8s.io/v1
6784kind: ClusterRole
6785metadata:
6786 labels:
6787 kubevirt.io: ""
6788 name: kubevirt-operator
6789rules:
6790- apiGroups:
6791 - kubevirt.io
6792 resources:
6793 - kubevirts
6794 verbs:
6795 - get
6796 - list
6797 - watch
6798 - patch
6799 - update
6800 - patch
6801- apiGroups:
6802 - ""
6803 resources:
6804 - serviceaccounts
6805 - services
6806 - endpoints
6807 - pods/exec
6808 verbs:
6809 - get
6810 - list
6811 - watch
6812 - create
6813 - update
6814 - delete
6815 - patch
6816- apiGroups:
6817 - ""
6818 resources:
6819 - configmaps
6820 verbs:
6821 - patch
6822 - delete
6823- apiGroups:
6824 - batch
6825 resources:
6826 - jobs
6827 verbs:
6828 - get
6829 - list
6830 - watch
6831 - create
6832 - delete
6833 - patch
6834- apiGroups:
6835 - apps
6836 resources:
6837 - controllerrevisions
6838 verbs:
6839 - watch
6840 - list
6841 - create
6842 - delete
6843 - patch
6844- apiGroups:
6845 - apps
6846 resources:
6847 - deployments
6848 - daemonsets
6849 verbs:
6850 - get
6851 - list
6852 - watch
6853 - create
6854 - delete
6855 - patch
6856- apiGroups:
6857 - rbac.authorization.k8s.io
6858 resources:
6859 - clusterroles
6860 - clusterrolebindings
6861 - roles
6862 - rolebindings
6863 verbs:
6864 - get
6865 - list
6866 - watch
6867 - create
6868 - delete
6869 - patch
6870 - update
6871- apiGroups:
6872 - apiextensions.k8s.io
6873 resources:
6874 - customresourcedefinitions
6875 verbs:
6876 - get
6877 - list
6878 - watch
6879 - create
6880 - delete
6881 - patch
6882- apiGroups:
6883 - security.openshift.io
6884 resources:
6885 - securitycontextconstraints
6886 verbs:
6887 - create
6888 - get
6889 - list
6890 - watch
6891- apiGroups:
6892 - security.openshift.io
6893 resourceNames:
6894 - privileged
6895 resources:
6896 - securitycontextconstraints
6897 verbs:
6898 - get
6899 - patch
6900 - update
6901- apiGroups:
6902 - security.openshift.io
6903 resourceNames:
6904 - kubevirt-handler
6905 - kubevirt-controller
6906 resources:
6907 - securitycontextconstraints
6908 verbs:
6909 - get
6910 - list
6911 - watch
6912 - update
6913 - delete
6914- apiGroups:
6915 - admissionregistration.k8s.io
6916 resources:
6917 - validatingwebhookconfigurations
6918 - mutatingwebhookconfigurations
6919 - validatingadmissionpolicybindings
6920 - validatingadmissionpolicies
6921 verbs:
6922 - get
6923 - list
6924 - watch
6925 - create
6926 - delete
6927 - update
6928 - patch
6929- apiGroups:
6930 - apiregistration.k8s.io
6931 resources:
6932 - apiservices
6933 verbs:
6934 - get
6935 - list
6936 - watch
6937 - create
6938 - delete
6939 - update
6940 - patch
6941- apiGroups:
6942 - monitoring.coreos.com
6943 resources:
6944 - servicemonitors
6945 - prometheusrules
6946 verbs:
6947 - get
6948 - list
6949 - watch
6950 - create
6951 - delete
6952 - update
6953 - patch
6954- apiGroups:
6955 - ""
6956 resources:
6957 - namespaces
6958 verbs:
6959 - get
6960 - list
6961 - watch
6962 - patch
6963- apiGroups:
6964 - ""
6965 resources:
6966 - pods
6967 verbs:
6968 - get
6969 - list
6970 - delete
6971 - patch
6972- apiGroups:
6973 - kubevirt.io
6974 resources:
6975 - virtualmachines
6976 - virtualmachineinstances
6977 verbs:
6978 - get
6979 - list
6980 - watch
6981 - patch
6982 - update
6983- apiGroups:
6984 - ""
6985 resources:
6986 - persistentvolumeclaims
6987 verbs:
6988 - get
6989- apiGroups:
6990 - kubevirt.io
6991 resources:
6992 - virtualmachines/status
6993 verbs:
6994 - patch
6995- apiGroups:
6996 - kubevirt.io
6997 resources:
6998 - virtualmachineinstancemigrations
6999 verbs:
7000 - create
7001 - get
7002 - list
7003 - watch
7004 - patch
7005- apiGroups:
7006 - kubevirt.io
7007 resources:
7008 - virtualmachineinstancepresets
7009 verbs:
7010 - watch
7011 - list
7012- apiGroups:
7013 - ""
7014 resources:
7015 - configmaps
7016 verbs:
7017 - get
7018 - list
7019 - watch
7020- apiGroups:
7021 - ""
7022 resources:
7023 - limitranges
7024 verbs:
7025 - watch
7026 - list
7027- apiGroups:
7028 - apiextensions.k8s.io
7029 resources:
7030 - customresourcedefinitions
7031 verbs:
7032 - get
7033 - list
7034 - watch
7035- apiGroups:
7036 - kubevirt.io
7037 resources:
7038 - kubevirts
7039 verbs:
7040 - get
7041 - list
7042 - watch
7043- apiGroups:
7044 - snapshot.kubevirt.io
7045 resources:
7046 - virtualmachinesnapshots
7047 - virtualmachinerestores
7048 - virtualmachinesnapshotcontents
7049 verbs:
7050 - get
7051 - list
7052 - watch
7053- apiGroups:
7054 - cdi.kubevirt.io
7055 resources:
7056 - datasources
7057 - datavolumes
7058 verbs:
7059 - get
7060 - list
7061 - watch
7062- apiGroups:
7063 - ""
7064 resources:
7065 - namespaces
7066 verbs:
7067 - get
7068 - list
7069 - watch
7070- apiGroups:
7071 - instancetype.kubevirt.io
7072 resources:
7073 - virtualmachineinstancetypes
7074 - virtualmachineclusterinstancetypes
7075 - virtualmachinepreferences
7076 - virtualmachineclusterpreferences
7077 verbs:
7078 - get
7079 - list
7080 - watch
7081- apiGroups:
7082 - migrations.kubevirt.io
7083 resources:
7084 - migrationpolicies
7085 verbs:
7086 - get
7087 - list
7088 - watch
7089- apiGroups:
7090 - apps
7091 resources:
7092 - controllerrevisions
7093 verbs:
7094 - create
7095 - list
7096 - get
7097- apiGroups:
7098 - ""
7099 resources:
7100 - namespaces
7101 verbs:
7102 - get
7103 - list
7104 - watch
7105 - patch
7106- apiGroups:
7107 - policy
7108 resources:
7109 - poddisruptionbudgets
7110 verbs:
7111 - get
7112 - list
7113 - watch
7114 - delete
7115 - create
7116 - patch
7117- apiGroups:
7118 - ""
7119 resources:
7120 - pods
7121 - configmaps
7122 - endpoints
7123 - services
7124 verbs:
7125 - get
7126 - list
7127 - watch
7128 - delete
7129 - update
7130 - create
7131 - patch
7132- apiGroups:
7133 - ""
7134 resources:
7135 - events
7136 verbs:
7137 - update
7138 - create
7139 - patch
7140- apiGroups:
7141 - ""
7142 resources:
7143 - secrets
7144 verbs:
7145 - create
7146- apiGroups:
7147 - ""
7148 resources:
7149 - pods/finalizers
7150 verbs:
7151 - update
7152- apiGroups:
7153 - ""
7154 resources:
7155 - pods/eviction
7156 verbs:
7157 - create
7158- apiGroups:
7159 - ""
7160 resources:
7161 - pods/status
7162 verbs:
7163 - patch
7164- apiGroups:
7165 - ""
7166 resources:
7167 - nodes
7168 verbs:
7169 - get
7170 - list
7171 - watch
7172 - update
7173 - patch
7174- apiGroups:
7175 - apps
7176 resources:
7177 - daemonsets
7178 verbs:
7179 - list
7180- apiGroups:
7181 - apps
7182 resources:
7183 - controllerrevisions
7184 verbs:
7185 - watch
7186 - list
7187 - create
7188 - delete
7189 - get
7190 - update
7191- apiGroups:
7192 - ""
7193 resources:
7194 - persistentvolumeclaims
7195 verbs:
7196 - get
7197 - list
7198 - watch
7199 - create
7200 - update
7201 - delete
7202 - patch
7203- apiGroups:
7204 - snapshot.kubevirt.io
7205 resources:
7206 - '*'
7207 verbs:
7208 - '*'
7209- apiGroups:
7210 - export.kubevirt.io
7211 resources:
7212 - '*'
7213 verbs:
7214 - '*'
7215- apiGroups:
7216 - pool.kubevirt.io
7217 resources:
7218 - virtualmachinepools
7219 - virtualmachinepools/finalizers
7220 - virtualmachinepools/status
7221 - virtualmachinepools/scale
7222 verbs:
7223 - watch
7224 - list
7225 - create
7226 - delete
7227 - update
7228 - patch
7229 - get
7230- apiGroups:
7231 - kubevirt.io
7232 resources:
7233 - '*'
7234 verbs:
7235 - '*'
7236- apiGroups:
7237 - subresources.kubevirt.io
7238 resources:
7239 - virtualmachineinstances/addvolume
7240 - virtualmachineinstances/removevolume
7241 - virtualmachineinstances/freeze
7242 - virtualmachineinstances/unfreeze
7243 - virtualmachineinstances/softreboot
7244 - virtualmachineinstances/sev/setupsession
7245 - virtualmachineinstances/sev/injectlaunchsecret
7246 verbs:
7247 - update
7248- apiGroups:
7249 - cdi.kubevirt.io
7250 resources:
7251 - '*'
7252 verbs:
7253 - '*'
7254- apiGroups:
7255 - k8s.cni.cncf.io
7256 resources:
7257 - network-attachment-definitions
7258 verbs:
7259 - get
7260- apiGroups:
7261 - apiextensions.k8s.io
7262 resources:
7263 - customresourcedefinitions
7264 verbs:
7265 - get
7266 - list
7267 - watch
7268- apiGroups:
7269 - authorization.k8s.io
7270 resources:
7271 - subjectaccessreviews
7272 verbs:
7273 - create
7274- apiGroups:
7275 - snapshot.storage.k8s.io
7276 resources:
7277 - volumesnapshotclasses
7278 verbs:
7279 - get
7280 - list
7281 - watch
7282- apiGroups:
7283 - snapshot.storage.k8s.io
7284 resources:
7285 - volumesnapshots
7286 verbs:
7287 - get
7288 - list
7289 - watch
7290 - create
7291 - update
7292 - delete
7293- apiGroups:
7294 - storage.k8s.io
7295 resources:
7296 - storageclasses
7297 verbs:
7298 - get
7299 - list
7300 - watch
7301- apiGroups:
7302 - instancetype.kubevirt.io
7303 resources:
7304 - virtualmachineinstancetypes
7305 - virtualmachineclusterinstancetypes
7306 - virtualmachinepreferences
7307 - virtualmachineclusterpreferences
7308 verbs:
7309 - get
7310 - list
7311 - watch
7312- apiGroups:
7313 - migrations.kubevirt.io
7314 resources:
7315 - migrationpolicies
7316 verbs:
7317 - get
7318 - list
7319 - watch
7320- apiGroups:
7321 - clone.kubevirt.io
7322 resources:
7323 - virtualmachineclones
7324 - virtualmachineclones/status
7325 - virtualmachineclones/finalizers
7326 verbs:
7327 - get
7328 - list
7329 - watch
7330 - update
7331 - patch
7332 - delete
7333- apiGroups:
7334 - ""
7335 resources:
7336 - namespaces
7337 verbs:
7338 - get
7339- apiGroups:
7340 - ""
7341 resources:
7342 - resourcequotas
7343 verbs:
7344 - list
7345 - watch
7346- apiGroups:
7347 - kubevirt.io
7348 resources:
7349 - virtualmachineinstances
7350 verbs:
7351 - update
7352 - list
7353 - watch
7354- apiGroups:
7355 - ""
7356 resources:
7357 - nodes
7358 verbs:
7359 - patch
7360 - list
7361 - watch
7362 - get
7363- apiGroups:
7364 - ""
7365 resources:
7366 - configmaps
7367 verbs:
7368 - get
7369 - list
7370 - watch
7371- apiGroups:
7372 - ""
7373 resources:
7374 - events
7375 verbs:
7376 - create
7377 - patch
7378- apiGroups:
7379 - apiextensions.k8s.io
7380 resources:
7381 - customresourcedefinitions
7382 verbs:
7383 - get
7384 - list
7385 - watch
7386- apiGroups:
7387 - kubevirt.io
7388 resources:
7389 - kubevirts
7390 verbs:
7391 - get
7392 - list
7393 - watch
7394- apiGroups:
7395 - migrations.kubevirt.io
7396 resources:
7397 - migrationpolicies
7398 verbs:
7399 - get
7400 - list
7401 - watch
7402- apiGroups:
7403 - export.kubevirt.io
7404 resources:
7405 - virtualmachineexports
7406 verbs:
7407 - get
7408 - list
7409 - watch
7410- apiGroups:
7411 - kubevirt.io
7412 resources:
7413 - kubevirts
7414 verbs:
7415 - list
7416 - watch
7417- apiGroups:
7418 - kubevirt.io
7419 resources:
7420 - kubevirts
7421 verbs:
7422 - get
7423 - list
7424- apiGroups:
7425 - subresources.kubevirt.io
7426 resources:
7427 - version
7428 - guestfs
7429 verbs:
7430 - get
7431 - list
7432- apiGroups:
7433 - subresources.kubevirt.io
7434 resources:
7435 - virtualmachineinstances/console
7436 - virtualmachineinstances/vnc
7437 - virtualmachineinstances/vnc/screenshot
7438 - virtualmachineinstances/portforward
7439 - virtualmachineinstances/guestosinfo
7440 - virtualmachineinstances/filesystemlist
7441 - virtualmachineinstances/userlist
7442 - virtualmachineinstances/sev/fetchcertchain
7443 - virtualmachineinstances/sev/querylaunchmeasurement
7444 verbs:
7445 - get
7446- apiGroups:
7447 - subresources.kubevirt.io
7448 resources:
7449 - virtualmachineinstances/pause
7450 - virtualmachineinstances/unpause
7451 - virtualmachineinstances/addvolume
7452 - virtualmachineinstances/removevolume
7453 - virtualmachineinstances/freeze
7454 - virtualmachineinstances/unfreeze
7455 - virtualmachineinstances/softreboot
7456 - virtualmachineinstances/sev/setupsession
7457 - virtualmachineinstances/sev/injectlaunchsecret
7458 verbs:
7459 - update
7460- apiGroups:
7461 - subresources.kubevirt.io
7462 resources:
7463 - virtualmachines/expand-spec
7464 - virtualmachines/portforward
7465 verbs:
7466 - get
7467- apiGroups:
7468 - subresources.kubevirt.io
7469 resources:
7470 - virtualmachines/start
7471 - virtualmachines/stop
7472 - virtualmachines/restart
7473 - virtualmachines/addvolume
7474 - virtualmachines/removevolume
7475 - virtualmachines/migrate
7476 - virtualmachines/memorydump
7477 verbs:
7478 - update
7479- apiGroups:
7480 - subresources.kubevirt.io
7481 resources:
7482 - expand-vm-spec
7483 verbs:
7484 - update
7485- apiGroups:
7486 - kubevirt.io
7487 resources:
7488 - virtualmachines
7489 - virtualmachineinstances
7490 - virtualmachineinstancepresets
7491 - virtualmachineinstancereplicasets
7492 - virtualmachineinstancemigrations
7493 verbs:
7494 - get
7495 - delete
7496 - create
7497 - update
7498 - patch
7499 - list
7500 - watch
7501 - deletecollection
7502- apiGroups:
7503 - snapshot.kubevirt.io
7504 resources:
7505 - virtualmachinesnapshots
7506 - virtualmachinesnapshotcontents
7507 - virtualmachinerestores
7508 verbs:
7509 - get
7510 - delete
7511 - create
7512 - update
7513 - patch
7514 - list
7515 - watch
7516 - deletecollection
7517- apiGroups:
7518 - export.kubevirt.io
7519 resources:
7520 - virtualmachineexports
7521 verbs:
7522 - get
7523 - delete
7524 - create
7525 - update
7526 - patch
7527 - list
7528 - watch
7529 - deletecollection
7530- apiGroups:
7531 - clone.kubevirt.io
7532 resources:
7533 - virtualmachineclones
7534 verbs:
7535 - get
7536 - delete
7537 - create
7538 - update
7539 - patch
7540 - list
7541 - watch
7542 - deletecollection
7543- apiGroups:
7544 - instancetype.kubevirt.io
7545 resources:
7546 - virtualmachineinstancetypes
7547 - virtualmachineclusterinstancetypes
7548 - virtualmachinepreferences
7549 - virtualmachineclusterpreferences
7550 verbs:
7551 - get
7552 - delete
7553 - create
7554 - update
7555 - patch
7556 - list
7557 - watch
7558 - deletecollection
7559- apiGroups:
7560 - pool.kubevirt.io
7561 resources:
7562 - virtualmachinepools
7563 verbs:
7564 - get
7565 - delete
7566 - create
7567 - update
7568 - patch
7569 - list
7570 - watch
7571 - deletecollection
7572- apiGroups:
7573 - migrations.kubevirt.io
7574 resources:
7575 - migrationpolicies
7576 verbs:
7577 - get
7578 - list
7579 - watch
7580- apiGroups:
7581 - subresources.kubevirt.io
7582 resources:
7583 - virtualmachineinstances/console
7584 - virtualmachineinstances/vnc
7585 - virtualmachineinstances/vnc/screenshot
7586 - virtualmachineinstances/portforward
7587 - virtualmachineinstances/guestosinfo
7588 - virtualmachineinstances/filesystemlist
7589 - virtualmachineinstances/userlist
7590 - virtualmachineinstances/sev/fetchcertchain
7591 - virtualmachineinstances/sev/querylaunchmeasurement
7592 verbs:
7593 - get
7594- apiGroups:
7595 - subresources.kubevirt.io
7596 resources:
7597 - virtualmachineinstances/pause
7598 - virtualmachineinstances/unpause
7599 - virtualmachineinstances/addvolume
7600 - virtualmachineinstances/removevolume
7601 - virtualmachineinstances/freeze
7602 - virtualmachineinstances/unfreeze
7603 - virtualmachineinstances/softreboot
7604 - virtualmachineinstances/sev/setupsession
7605 - virtualmachineinstances/sev/injectlaunchsecret
7606 verbs:
7607 - update
7608- apiGroups:
7609 - subresources.kubevirt.io
7610 resources:
7611 - virtualmachines/expand-spec
7612 - virtualmachines/portforward
7613 verbs:
7614 - get
7615- apiGroups:
7616 - subresources.kubevirt.io
7617 resources:
7618 - virtualmachines/start
7619 - virtualmachines/stop
7620 - virtualmachines/restart
7621 - virtualmachines/addvolume
7622 - virtualmachines/removevolume
7623 - virtualmachines/migrate
7624 - virtualmachines/memorydump
7625 verbs:
7626 - update
7627- apiGroups:
7628 - subresources.kubevirt.io
7629 resources:
7630 - expand-vm-spec
7631 verbs:
7632 - update
7633- apiGroups:
7634 - kubevirt.io
7635 resources:
7636 - virtualmachines
7637 - virtualmachineinstances
7638 - virtualmachineinstancepresets
7639 - virtualmachineinstancereplicasets
7640 - virtualmachineinstancemigrations
7641 verbs:
7642 - get
7643 - delete
7644 - create
7645 - update
7646 - patch
7647 - list
7648 - watch
7649- apiGroups:
7650 - snapshot.kubevirt.io
7651 resources:
7652 - virtualmachinesnapshots
7653 - virtualmachinesnapshotcontents
7654 - virtualmachinerestores
7655 verbs:
7656 - get
7657 - delete
7658 - create
7659 - update
7660 - patch
7661 - list
7662 - watch
7663- apiGroups:
7664 - export.kubevirt.io
7665 resources:
7666 - virtualmachineexports
7667 verbs:
7668 - get
7669 - delete
7670 - create
7671 - update
7672 - patch
7673 - list
7674 - watch
7675- apiGroups:
7676 - clone.kubevirt.io
7677 resources:
7678 - virtualmachineclones
7679 verbs:
7680 - get
7681 - delete
7682 - create
7683 - update
7684 - patch
7685 - list
7686 - watch
7687- apiGroups:
7688 - instancetype.kubevirt.io
7689 resources:
7690 - virtualmachineinstancetypes
7691 - virtualmachineclusterinstancetypes
7692 - virtualmachinepreferences
7693 - virtualmachineclusterpreferences
7694 verbs:
7695 - get
7696 - delete
7697 - create
7698 - update
7699 - patch
7700 - list
7701 - watch
7702- apiGroups:
7703 - pool.kubevirt.io
7704 resources:
7705 - virtualmachinepools
7706 verbs:
7707 - get
7708 - delete
7709 - create
7710 - update
7711 - patch
7712 - list
7713 - watch
7714- apiGroups:
7715 - kubevirt.io
7716 resources:
7717 - kubevirts
7718 verbs:
7719 - get
7720 - list
7721- apiGroups:
7722 - migrations.kubevirt.io
7723 resources:
7724 - migrationpolicies
7725 verbs:
7726 - get
7727 - list
7728 - watch
7729- apiGroups:
7730 - kubevirt.io
7731 resources:
7732 - kubevirts
7733 verbs:
7734 - get
7735 - list
7736- apiGroups:
7737 - subresources.kubevirt.io
7738 resources:
7739 - virtualmachines/expand-spec
7740 - virtualmachineinstances/guestosinfo
7741 - virtualmachineinstances/filesystemlist
7742 - virtualmachineinstances/userlist
7743 - virtualmachineinstances/sev/fetchcertchain
7744 - virtualmachineinstances/sev/querylaunchmeasurement
7745 verbs:
7746 - get
7747- apiGroups:
7748 - subresources.kubevirt.io
7749 resources:
7750 - expand-vm-spec
7751 verbs:
7752 - update
7753- apiGroups:
7754 - kubevirt.io
7755 resources:
7756 - virtualmachines
7757 - virtualmachineinstances
7758 - virtualmachineinstancepresets
7759 - virtualmachineinstancereplicasets
7760 - virtualmachineinstancemigrations
7761 verbs:
7762 - get
7763 - list
7764 - watch
7765- apiGroups:
7766 - snapshot.kubevirt.io
7767 resources:
7768 - virtualmachinesnapshots
7769 - virtualmachinesnapshotcontents
7770 - virtualmachinerestores
7771 verbs:
7772 - get
7773 - list
7774 - watch
7775- apiGroups:
7776 - export.kubevirt.io
7777 resources:
7778 - virtualmachineexports
7779 verbs:
7780 - get
7781 - list
7782 - watch
7783- apiGroups:
7784 - clone.kubevirt.io
7785 resources:
7786 - virtualmachineclones
7787 verbs:
7788 - get
7789 - list
7790 - watch
7791- apiGroups:
7792 - instancetype.kubevirt.io
7793 resources:
7794 - virtualmachineinstancetypes
7795 - virtualmachineclusterinstancetypes
7796 - virtualmachinepreferences
7797 - virtualmachineclusterpreferences
7798 verbs:
7799 - get
7800 - list
7801 - watch
7802- apiGroups:
7803 - pool.kubevirt.io
7804 resources:
7805 - virtualmachinepools
7806 verbs:
7807 - get
7808 - list
7809 - watch
7810- apiGroups:
7811 - migrations.kubevirt.io
7812 resources:
7813 - migrationpolicies
7814 verbs:
7815 - get
7816 - list
7817 - watch
7818- apiGroups:
7819 - instancetype.kubevirt.io
7820 resources:
7821 - virtualmachineclusterinstancetypes
7822 - virtualmachineclusterpreferences
7823 verbs:
7824 - get
7825 - list
7826 - watch
7827- apiGroups:
7828 - authentication.k8s.io
7829 resources:
7830 - tokenreviews
7831 verbs:
7832 - create
7833- apiGroups:
7834 - authorization.k8s.io
7835 resources:
7836 - subjectaccessreviews
7837 verbs:
7838 - create
7839---
7840apiVersion: rbac.authorization.k8s.io/v1
7841kind: ClusterRoleBinding
7842metadata:
7843 labels:
7844 kubevirt.io: ""
7845 name: kubevirt-operator
7846roleRef:
7847 apiGroup: rbac.authorization.k8s.io
7848 kind: ClusterRole
7849 name: kubevirt-operator
7850subjects:
7851- kind: ServiceAccount
7852 name: kubevirt-operator
7853 namespace: kubevirt
7854
7855---
7856apiVersion: apps/v1
7857kind: Deployment
7858metadata:
7859 labels:
7860 kubevirt.io: virt-operator
7861 name: virt-operator
7862 namespace: kubevirt
7863spec:
7864 replicas: 2
7865 selector:
7866 matchLabels:
7867 kubevirt.io: virt-operator
7868 strategy:
7869 type: RollingUpdate
7870 template:
7871 metadata:
7872 labels:
7873 kubevirt.io: virt-operator
7874 name: virt-operator
7875 prometheus.kubevirt.io: "true"
7876 name: virt-operator
7877 spec:
7878 affinity:
7879 podAntiAffinity:
7880 preferredDuringSchedulingIgnoredDuringExecution:
7881 - podAffinityTerm:
7882 labelSelector:
7883 matchExpressions:
7884 - key: kubevirt.io
7885 operator: In
7886 values:
7887 - virt-operator
7888 topologyKey: kubernetes.io/hostname
7889 weight: 1
7890 containers:
7891 - args:
7892 - --port
7893 - "8443"
7894 - -v
7895 - "2"
7896 command:
7897 - virt-operator
7898 env:
7899 - name: VIRT_OPERATOR_IMAGE
7900 value: quay.io/kubevirt/virt-operator:v1.3.1
7901 - name: WATCH_NAMESPACE
7902 valueFrom:
7903 fieldRef:
7904 fieldPath: metadata.annotations['olm.targetNamespaces']
7905 - name: KUBEVIRT_VERSION
7906 value: v1.3.1
7907 image: quay.io/kubevirt/virt-operator:v1.3.1
7908 imagePullPolicy: IfNotPresent
7909 name: virt-operator
7910 ports:
7911 - containerPort: 8443
7912 name: metrics
7913 protocol: TCP
7914 - containerPort: 8444
7915 name: webhooks
7916 protocol: TCP
7917 readinessProbe:
7918 httpGet:
7919 path: /metrics
7920 port: 8443
7921 scheme: HTTPS
7922 initialDelaySeconds: 5
7923 timeoutSeconds: 10
7924 resources:
7925 requests:
7926 cpu: 10m
7927 memory: 450Mi
7928 securityContext:
7929 allowPrivilegeEscalation: false
7930 capabilities:
7931 drop:
7932 - ALL
7933 seccompProfile:
7934 type: RuntimeDefault
7935 volumeMounts:
7936 - mountPath: /etc/virt-operator/certificates
7937 name: kubevirt-operator-certs
7938 readOnly: true
7939 - mountPath: /profile-data
7940 name: profile-data
7941 nodeSelector:
7942 kubernetes.io/os: linux
7943 priorityClassName: kubevirt-cluster-critical
7944 securityContext:
7945 runAsNonRoot: true
7946 seccompProfile:
7947 type: RuntimeDefault
7948 serviceAccountName: kubevirt-operator
7949 tolerations:
7950 - key: CriticalAddonsOnly
7951 operator: Exists
7952 volumes:
7953 - name: kubevirt-operator-certs
7954 secret:
7955 optional: true
7956 secretName: kubevirt-operator-certs
7957 - emptyDir: {}
7958 name: profile-data