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