summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--kud/deployment_infra/helm/kubevirt-operator/Chart.yaml4
-rw-r--r--kud/deployment_infra/helm/kubevirt-operator/crds/kubevirt.yaml2728
-rw-r--r--kud/deployment_infra/helm/kubevirt-operator/templates/clusterrole.yaml234
-rw-r--r--kud/deployment_infra/helm/kubevirt-operator/templates/deployment.yaml10
-rw-r--r--kud/deployment_infra/helm/kubevirt-operator/values.yaml2
-rw-r--r--kud/deployment_infra/helm/kubevirt/Chart.yaml4
-rw-r--r--kud/deployment_infra/helm/kubevirt/templates/kubevirt.yaml5
-rw-r--r--kud/deployment_infra/helm/kubevirt/values.yaml6
8 files changed, 2547 insertions, 446 deletions
diff --git a/kud/deployment_infra/helm/kubevirt-operator/Chart.yaml b/kud/deployment_infra/helm/kubevirt-operator/Chart.yaml
index d515ea83..141d3d65 100644
--- a/kud/deployment_infra/helm/kubevirt-operator/Chart.yaml
+++ b/kud/deployment_infra/helm/kubevirt-operator/Chart.yaml
@@ -13,7 +13,7 @@
# limitations under the License.
apiVersion: v2
-appVersion: v0.41.0
+appVersion: v0.49.0
description: |
KubeVirt is a virtual machine management add-on for Kubernetes.
name: kubevirt-operator
@@ -21,4 +21,4 @@ sources:
- https://github.com/kubevirt/kubevirt
home: https://github.com/kubevirt/kubevirt
type: application
-version: 0.1.0
+version: 0.1.1
diff --git a/kud/deployment_infra/helm/kubevirt-operator/crds/kubevirt.yaml b/kud/deployment_infra/helm/kubevirt-operator/crds/kubevirt.yaml
index bdba1fac..10b5a875 100644
--- a/kud/deployment_infra/helm/kubevirt-operator/crds/kubevirt.yaml
+++ b/kud/deployment_infra/helm/kubevirt-operator/crds/kubevirt.yaml
@@ -30,10 +30,14 @@ spec:
description: KubeVirt represents the object deploying all KubeVirt resources
properties:
apiVersion:
- description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
- description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
@@ -44,17 +48,22 @@ spec:
selfSigned:
properties:
ca:
- description: CA configuration CA certs are kept in the CA bundle as long as they are valid
+ description: CA configuration CA certs are kept in the CA
+ bundle as long as they are valid
properties:
duration:
- description: The requested 'duration' (i.e. lifetime) of the Certificate.
+ description: The requested 'duration' (i.e. lifetime)
+ of the Certificate.
type: string
renewBefore:
- description: The amount of time before the currently issued certificate's "notAfter" time that we will begin to attempt to renew the certificate.
+ description: The amount of time before the currently issued
+ certificate's "notAfter" time that we will begin to
+ attempt to renew the certificate.
type: string
type: object
caOverlapInterval:
- description: Deprecated. Use CA.Duration and CA.RenewBefore instead
+ description: Deprecated. Use CA.Duration and CA.RenewBefore
+ instead
type: string
caRotateInterval:
description: Deprecated. Use CA.Duration instead
@@ -66,10 +75,13 @@ spec:
description: Server configuration Certs are rotated and discarded
properties:
duration:
- description: The requested 'duration' (i.e. lifetime) of the Certificate.
+ description: The requested 'duration' (i.e. lifetime)
+ of the Certificate.
type: string
renewBefore:
- description: The amount of time before the currently issued certificate's "notAfter" time that we will begin to attempt to renew the certificate.
+ description: The amount of time before the currently issued
+ certificate's "notAfter" time that we will begin to
+ attempt to renew the certificate.
type: string
type: object
type: object
@@ -77,6 +89,68 @@ spec:
configuration:
description: holds kubevirt configurations. same as the virt-configMap
properties:
+ apiConfiguration:
+ description: ReloadableComponentConfiguration holds all generic
+ k8s configuration options which can be reloaded by components
+ without requiring a restart.
+ properties:
+ restClient:
+ description: RestClient can be used to tune certain aspects
+ of the k8s client in use.
+ properties:
+ rateLimiter:
+ description: RateLimiter allows selecting and configuring
+ different rate limiters for the k8s client.
+ properties:
+ tokenBucketRateLimiter:
+ properties:
+ burst:
+ description: Maximum burst for throttle. If it's
+ zero, the component default will be used
+ type: integer
+ qps:
+ description: QPS indicates the maximum QPS to
+ the apiserver from this client. If it's zero,
+ the component default will be used
+ type: number
+ required:
+ - burst
+ - qps
+ type: object
+ type: object
+ type: object
+ type: object
+ controllerConfiguration:
+ description: ReloadableComponentConfiguration holds all generic
+ k8s configuration options which can be reloaded by components
+ without requiring a restart.
+ properties:
+ restClient:
+ description: RestClient can be used to tune certain aspects
+ of the k8s client in use.
+ properties:
+ rateLimiter:
+ description: RateLimiter allows selecting and configuring
+ different rate limiters for the k8s client.
+ properties:
+ tokenBucketRateLimiter:
+ properties:
+ burst:
+ description: Maximum burst for throttle. If it's
+ zero, the component default will be used
+ type: integer
+ qps:
+ description: QPS indicates the maximum QPS to
+ the apiserver from this client. If it's zero,
+ the component default will be used
+ type: number
+ required:
+ - burst
+ - qps
+ type: object
+ type: object
+ type: object
+ type: object
cpuModel:
type: string
cpuRequest:
@@ -85,22 +159,39 @@ spec:
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
+ defaultRuntimeClass:
+ type: string
developerConfiguration:
description: DeveloperConfiguration holds developer options
properties:
cpuAllocationRatio:
type: integer
+ diskVerification:
+ description: DiskVerification holds container disks verification
+ limits
+ properties:
+ memoryLimit:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ required:
+ - memoryLimit
+ type: object
featureGates:
items:
type: string
type: array
logVerbosity:
- description: LogVerbosity sets log verbosity level of various components
+ description: LogVerbosity sets log verbosity level of various
+ components
properties:
nodeVerbosity:
additionalProperties:
type: integer
- description: NodeVerbosity represents a map of nodes with a specific verbosity level
+ description: NodeVerbosity represents a map of nodes with
+ a specific verbosity level
type: object
virtAPI:
type: integer
@@ -115,6 +206,15 @@ spec:
type: object
memoryOvercommit:
type: integer
+ minimumClusterTSCFrequency:
+ description: Allow overriding the automatically determined
+ minimum TSC frequency of the cluster and fixate the minimum
+ to this frequency.
+ format: int64
+ type: integer
+ minimumReservePVCBytes:
+ format: int64
+ type: integer
nodeSelectors:
additionalProperties:
type: string
@@ -122,17 +222,87 @@ spec:
pvcTolerateLessSpaceUpToPercent:
type: integer
useEmulation:
+ description: UseEmulation can be set to true to allow fallback
+ to software emulation in case hardware-assisted emulation
+ is not available.
type: boolean
type: object
emulatedMachines:
items:
type: string
type: array
+ handlerConfiguration:
+ description: ReloadableComponentConfiguration holds all generic
+ k8s configuration options which can be reloaded by components
+ without requiring a restart.
+ properties:
+ restClient:
+ description: RestClient can be used to tune certain aspects
+ of the k8s client in use.
+ properties:
+ rateLimiter:
+ description: RateLimiter allows selecting and configuring
+ different rate limiters for the k8s client.
+ properties:
+ tokenBucketRateLimiter:
+ properties:
+ burst:
+ description: Maximum burst for throttle. If it's
+ zero, the component default will be used
+ type: integer
+ qps:
+ description: QPS indicates the maximum QPS to
+ the apiserver from this client. If it's zero,
+ the component default will be used
+ type: number
+ required:
+ - burst
+ - qps
+ type: object
+ type: object
+ type: object
+ type: object
imagePullPolicy:
- description: PullPolicy describes a policy for if/when to pull a container image
+ description: PullPolicy describes a policy for if/when to pull
+ a container image
type: string
machineType:
type: string
+ mediatedDevicesConfiguration:
+ description: MediatedDevicesConfiguration holds inforamtion about
+ MDEV types to be defined, if available
+ properties:
+ mediatedDevicesTypes:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ nodeMediatedDeviceTypes:
+ items:
+ description: NodeMediatedDeviceTypesConfig holds inforamtion
+ about MDEV types to be defined in a specifc node that
+ matches the NodeSelector field.
+ properties:
+ mediatedDevicesTypes:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ nodeSelector:
+ additionalProperties:
+ type: string
+ description: 'NodeSelector is a selector which must
+ be true for the vmi to fit on a node. Selector which
+ must match a node''s labels for the vmi to be scheduled
+ on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/'
+ type: object
+ required:
+ - mediatedDevicesTypes
+ - nodeSelector
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
memBalloonStatsPeriod:
format: int32
type: integer
@@ -152,6 +322,10 @@ spec:
completionTimeoutPerGiB:
format: int64
type: integer
+ disableTLS:
+ type: boolean
+ network:
+ type: string
nodeDrainTaintKey:
type: string
parallelMigrationsPerCluster:
@@ -185,11 +359,13 @@ spec:
ovmfPath:
type: string
permittedHostDevices:
- description: PermittedHostDevices holds inforamtion about devices allowed for passthrough
+ description: PermittedHostDevices holds inforamtion about devices
+ allowed for passthrough
properties:
mediatedDevices:
items:
- description: MediatedHostDevice represents a host mediated device allowed for passthrough
+ description: MediatedHostDevice represents a host mediated
+ device allowed for passthrough
properties:
externalResourceProvider:
type: boolean
@@ -205,13 +381,24 @@ spec:
x-kubernetes-list-type: atomic
pciHostDevices:
items:
- description: PciHostDevice represents a host PCI device allowed for passthrough
+ description: PciHostDevice represents a host PCI device
+ allowed for passthrough
properties:
externalResourceProvider:
+ description: If true, KubeVirt will leave the allocation
+ and monitoring to an external device plugin
type: boolean
pciVendorSelector:
+ description: The vendor_id:product_id tuple of the PCI
+ device
type: string
resourceName:
+ description: The name of the resource that is representing
+ the device. Exposed by a device plugin and requested
+ by VMs. Typically of the form vendor.com/product_nameThe
+ name of the resource that is representing the device.
+ Exposed by a device plugin and requested by VMs. Typically
+ of the form vendor.com/product_name
type: string
required:
- pciVendorSelector
@@ -240,9 +427,59 @@ spec:
items:
type: string
type: array
+ virtualMachineInstancesPerNode:
+ type: integer
+ webhookConfiguration:
+ description: ReloadableComponentConfiguration holds all generic
+ k8s configuration options which can be reloaded by components
+ without requiring a restart.
+ properties:
+ restClient:
+ description: RestClient can be used to tune certain aspects
+ of the k8s client in use.
+ properties:
+ rateLimiter:
+ description: RateLimiter allows selecting and configuring
+ different rate limiters for the k8s client.
+ properties:
+ tokenBucketRateLimiter:
+ properties:
+ burst:
+ description: Maximum burst for throttle. If it's
+ zero, the component default will be used
+ type: integer
+ qps:
+ description: QPS indicates the maximum QPS to
+ the apiserver from this client. If it's zero,
+ the component default will be used
+ type: number
+ required:
+ - burst
+ - qps
+ type: object
+ type: object
+ type: object
+ type: object
type: object
customizeComponents:
properties:
+ flags:
+ description: Configure the value used for deployment and daemonset
+ resources
+ properties:
+ api:
+ additionalProperties:
+ type: string
+ type: object
+ controller:
+ additionalProperties:
+ type: string
+ type: object
+ handler:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
patches:
items:
properties:
@@ -269,44 +506,86 @@ spec:
description: The ImagePullPolicy to use.
type: string
imageRegistry:
- description: The image registry to pull the container images from Defaults to the same registry the operator's container image is pulled from.
+ description: The image registry to pull the container images from
+ Defaults to the same registry the operator's container image is
+ pulled from.
type: string
imageTag:
- description: The image tag to use for the continer images installed. Defaults to the same tag as the operator's container image.
+ description: The image tag to use for the continer images installed.
+ Defaults to the same tag as the operator's container image.
type: string
infra:
- description: selectors and tolerations that should apply to KubeVirt infrastructure components
+ description: selectors and tolerations that should apply to KubeVirt
+ infrastructure components
properties:
nodePlacement:
- description: nodePlacement decsribes scheduling confiuguration for specific KubeVirt components
+ description: nodePlacement describes scheduling configuration
+ for specific KubeVirt components
properties:
affinity:
- description: affinity enables pod affinity/anti-affinity placement expanding the types of constraints that can be expressed with nodeSelector. affinity is going to be applied to the relevant kind of pods in parallel with nodeSelector See https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity
+ description: affinity enables pod affinity/anti-affinity placement
+ expanding the types of constraints that can be expressed
+ with nodeSelector. affinity is going to be applied to the
+ relevant kind of pods in parallel with nodeSelector See
+ https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity
properties:
nodeAffinity:
- description: Describes node affinity scheduling rules for the pod.
+ description: Describes node affinity scheduling rules
+ for the pod.
properties:
preferredDuringSchedulingIgnoredDuringExecution:
- description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
+ description: The scheduler will prefer to schedule
+ pods to nodes that satisfy the affinity expressions
+ specified by this field, but it may choose a node
+ that violates one or more of the expressions. The
+ node that is most preferred is the one with the
+ greatest sum of weights, i.e. for each node that
+ meets all of the scheduling requirements (resource
+ request, requiredDuringScheduling affinity expressions,
+ etc.), compute a sum by iterating through the elements
+ of this field and adding "weight" to the sum if
+ the node matches the corresponding matchExpressions;
+ the node(s) with the highest sum are the most preferred.
items:
- description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
+ description: An empty preferred scheduling term
+ matches all objects with implicit weight 0 (i.e.
+ it's a no-op). A null preferred scheduling term
+ matches no objects (i.e. is also a no-op).
properties:
preference:
- description: A node selector term, associated with the corresponding weight.
+ description: A node selector term, associated
+ with the corresponding weight.
properties:
matchExpressions:
- description: A list of node selector requirements by node's labels.
+ description: A list of node selector requirements
+ by node's labels.
items:
- description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
+ description: A node selector requirement
+ is a selector that contains values,
+ a key, and an operator that relates
+ the key and values.
properties:
key:
- description: The label key that the selector applies to.
+ description: The label key that the
+ selector applies to.
type: string
operator:
- description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
+ description: Represents a key's relationship
+ to a set of values. Valid operators
+ are In, NotIn, Exists, DoesNotExist.
+ Gt, and Lt.
type: string
values:
- description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
+ description: An array of string values.
+ If the operator is In or NotIn,
+ the values array must be non-empty.
+ If the operator is Exists or DoesNotExist,
+ the values array must be empty.
+ If the operator is Gt or Lt, the
+ values array must have a single
+ element, which will be interpreted
+ as an integer. This array is replaced
+ during a strategic merge patch.
items:
type: string
type: array
@@ -316,18 +595,35 @@ spec:
type: object
type: array
matchFields:
- description: A list of node selector requirements by node's fields.
+ description: A list of node selector requirements
+ by node's fields.
items:
- description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
+ description: A node selector requirement
+ is a selector that contains values,
+ a key, and an operator that relates
+ the key and values.
properties:
key:
- description: The label key that the selector applies to.
+ description: The label key that the
+ selector applies to.
type: string
operator:
- description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
+ description: Represents a key's relationship
+ to a set of values. Valid operators
+ are In, NotIn, Exists, DoesNotExist.
+ Gt, and Lt.
type: string
values:
- description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
+ description: An array of string values.
+ If the operator is In or NotIn,
+ the values array must be non-empty.
+ If the operator is Exists or DoesNotExist,
+ the values array must be empty.
+ If the operator is Gt or Lt, the
+ values array must have a single
+ element, which will be interpreted
+ as an integer. This array is replaced
+ during a strategic merge patch.
items:
type: string
type: array
@@ -338,7 +634,9 @@ spec:
type: array
type: object
weight:
- description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
+ description: Weight associated with matching
+ the corresponding nodeSelectorTerm, in the
+ range 1-100.
format: int32
type: integer
required:
@@ -347,26 +645,53 @@ spec:
type: object
type: array
requiredDuringSchedulingIgnoredDuringExecution:
- description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
+ description: If the affinity requirements specified
+ by this field are not met at scheduling time, the
+ pod will not be scheduled onto the node. If the
+ affinity requirements specified by this field cease
+ to be met at some point during pod execution (e.g.
+ due to an update), the system may or may not try
+ to eventually evict the pod from its node.
properties:
nodeSelectorTerms:
- description: Required. A list of node selector terms. The terms are ORed.
+ description: Required. A list of node selector
+ terms. The terms are ORed.
items:
- description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
+ description: A null or empty node selector term
+ matches no objects. The requirements of them
+ are ANDed. The TopologySelectorTerm type implements
+ a subset of the NodeSelectorTerm.
properties:
matchExpressions:
- description: A list of node selector requirements by node's labels.
+ description: A list of node selector requirements
+ by node's labels.
items:
- description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
+ description: A node selector requirement
+ is a selector that contains values,
+ a key, and an operator that relates
+ the key and values.
properties:
key:
- description: The label key that the selector applies to.
+ description: The label key that the
+ selector applies to.
type: string
operator:
- description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
+ description: Represents a key's relationship
+ to a set of values. Valid operators
+ are In, NotIn, Exists, DoesNotExist.
+ Gt, and Lt.
type: string
values:
- description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
+ description: An array of string values.
+ If the operator is In or NotIn,
+ the values array must be non-empty.
+ If the operator is Exists or DoesNotExist,
+ the values array must be empty.
+ If the operator is Gt or Lt, the
+ values array must have a single
+ element, which will be interpreted
+ as an integer. This array is replaced
+ during a strategic merge patch.
items:
type: string
type: array
@@ -376,18 +701,35 @@ spec:
type: object
type: array
matchFields:
- description: A list of node selector requirements by node's fields.
+ description: A list of node selector requirements
+ by node's fields.
items:
- description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
+ description: A node selector requirement
+ is a selector that contains values,
+ a key, and an operator that relates
+ the key and values.
properties:
key:
- description: The label key that the selector applies to.
+ description: The label key that the
+ selector applies to.
type: string
operator:
- description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
+ description: Represents a key's relationship
+ to a set of values. Valid operators
+ are In, NotIn, Exists, DoesNotExist.
+ Gt, and Lt.
type: string
values:
- description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
+ description: An array of string values.
+ If the operator is In or NotIn,
+ the values array must be non-empty.
+ If the operator is Exists or DoesNotExist,
+ the values array must be empty.
+ If the operator is Gt or Lt, the
+ values array must have a single
+ element, which will be interpreted
+ as an integer. This array is replaced
+ during a strategic merge patch.
items:
type: string
type: array
@@ -403,32 +745,67 @@ spec:
type: object
type: object
podAffinity:
- description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
+ description: Describes pod affinity scheduling rules (e.g.
+ co-locate this pod in the same node, zone, etc. as some
+ other pod(s)).
properties:
preferredDuringSchedulingIgnoredDuringExecution:
- description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
+ description: The scheduler will prefer to schedule
+ pods to nodes that satisfy the affinity expressions
+ specified by this field, but it may choose a node
+ that violates one or more of the expressions. The
+ node that is most preferred is the one with the
+ greatest sum of weights, i.e. for each node that
+ meets all of the scheduling requirements (resource
+ request, requiredDuringScheduling affinity expressions,
+ etc.), compute a sum by iterating through the elements
+ of this field and adding "weight" to the sum if
+ the node has pods which matches the corresponding
+ podAffinityTerm; the node(s) with the highest sum
+ are the most preferred.
items:
- description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
+ description: The weights of all of the matched WeightedPodAffinityTerm
+ fields are added per-node to find the most preferred
+ node(s)
properties:
podAffinityTerm:
- description: Required. A pod affinity term, associated with the corresponding weight.
+ description: Required. A pod affinity term,
+ associated with the corresponding weight.
properties:
labelSelector:
- description: A label query over a set of resources, in this case pods.
+ description: A label query over a set of
+ resources, in this case pods.
properties:
matchExpressions:
- description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
+ description: matchExpressions is a list
+ of label selector requirements. The
+ requirements are ANDed.
items:
- description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
+ description: A label selector requirement
+ is a selector that contains values,
+ a key, and an operator that relates
+ the key and values.
properties:
key:
- description: key is the label key that the selector applies to.
+ description: key is the label
+ key that the selector applies
+ to.
type: string
operator:
- description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
+ description: operator represents
+ a key's relationship to a set
+ of values. Valid operators are
+ In, NotIn, Exists and DoesNotExist.
type: string
values:
- description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
+ description: values is an array
+ of string values. If the operator
+ is In or NotIn, the values array
+ must be non-empty. If the operator
+ is Exists or DoesNotExist, the
+ values array must be empty.
+ This array is replaced during
+ a strategic merge patch.
items:
type: string
type: array
@@ -440,22 +817,42 @@ spec:
matchLabels:
additionalProperties:
type: string
- description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
+ description: matchLabels is a map of
+ {key,value} pairs. A single {key,value}
+ in the matchLabels map is equivalent
+ to an element of matchExpressions,
+ whose key field is "key", the operator
+ is "In", and the values array contains
+ only "value". The requirements are
+ ANDed.
type: object
type: object
namespaces:
- description: namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means "this pod's namespace"
+ description: namespaces specifies which
+ namespaces the labelSelector applies to
+ (matches against); null or empty list
+ means "this pod's namespace"
items:
type: string
type: array
topologyKey:
- description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
+ description: This pod should be co-located
+ (affinity) or not co-located (anti-affinity)
+ with the pods matching the labelSelector
+ in the specified namespaces, where co-located
+ is defined as running on a node whose
+ value of the label with key topologyKey
+ matches that of any node on which any
+ of the selected pods is running. Empty
+ topologyKey is not allowed.
type: string
required:
- topologyKey
type: object
weight:
- description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
+ description: weight associated with matching
+ the corresponding podAffinityTerm, in the
+ range 1-100.
format: int32
type: integer
required:
@@ -464,26 +861,59 @@ spec:
type: object
type: array
requiredDuringSchedulingIgnoredDuringExecution:
- description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
+ description: If the affinity requirements specified
+ by this field are not met at scheduling time, the
+ pod will not be scheduled onto the node. If the
+ affinity requirements specified by this field cease
+ to be met at some point during pod execution (e.g.
+ due to a pod label update), the system may or may
+ not try to eventually evict the pod from its node.
+ When there are multiple elements, the lists of nodes
+ corresponding to each podAffinityTerm are intersected,
+ i.e. all terms must be satisfied.
items:
- description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
+ description: Defines a set of pods (namely those
+ matching the labelSelector relative to the given
+ namespace(s)) that this pod should be co-located
+ (affinity) or not co-located (anti-affinity) with,
+ where co-located is defined as running on a node
+ whose value of the label with key <topologyKey>
+ matches that of any node on which a pod of the
+ set of pods is running
properties:
labelSelector:
- description: A label query over a set of resources, in this case pods.
+ description: A label query over a set of resources,
+ in this case pods.
properties:
matchExpressions:
- description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
+ description: matchExpressions is a list
+ of label selector requirements. The requirements
+ are ANDed.
items:
- description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
+ description: A label selector requirement
+ is a selector that contains values,
+ a key, and an operator that relates
+ the key and values.
properties:
key:
- description: key is the label key that the selector applies to.
+ description: key is the label key
+ that the selector applies to.
type: string
operator:
- description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
+ description: operator represents a
+ key's relationship to a set of values.
+ Valid operators are In, NotIn, Exists
+ and DoesNotExist.
type: string
values:
- description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
+ description: values is an array of
+ string values. If the operator is
+ In or NotIn, the values array must
+ be non-empty. If the operator is
+ Exists or DoesNotExist, the values
+ array must be empty. This array
+ is replaced during a strategic merge
+ patch.
items:
type: string
type: array
@@ -495,16 +925,30 @@ spec:
matchLabels:
additionalProperties:
type: string
- description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
+ description: matchLabels is a map of {key,value}
+ pairs. A single {key,value} in the matchLabels
+ map is equivalent to an element of matchExpressions,
+ whose key field is "key", the operator
+ is "In", and the values array contains
+ only "value". The requirements are ANDed.
type: object
type: object
namespaces:
- description: namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means "this pod's namespace"
+ description: namespaces specifies which namespaces
+ the labelSelector applies to (matches against);
+ null or empty list means "this pod's namespace"
items:
type: string
type: array
topologyKey:
- description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
+ description: This pod should be co-located (affinity)
+ or not co-located (anti-affinity) with the
+ pods matching the labelSelector in the specified
+ namespaces, where co-located is defined as
+ running on a node whose value of the label
+ with key topologyKey matches that of any node
+ on which any of the selected pods is running.
+ Empty topologyKey is not allowed.
type: string
required:
- topologyKey
@@ -512,32 +956,67 @@ spec:
type: array
type: object
podAntiAffinity:
- description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
+ description: Describes pod anti-affinity scheduling rules
+ (e.g. avoid putting this pod in the same node, zone,
+ etc. as some other pod(s)).
properties:
preferredDuringSchedulingIgnoredDuringExecution:
- description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
+ description: The scheduler will prefer to schedule
+ pods to nodes that satisfy the anti-affinity expressions
+ specified by this field, but it may choose a node
+ that violates one or more of the expressions. The
+ node that is most preferred is the one with the
+ greatest sum of weights, i.e. for each node that
+ meets all of the scheduling requirements (resource
+ request, requiredDuringScheduling anti-affinity
+ expressions, etc.), compute a sum by iterating through
+ the elements of this field and adding "weight" to
+ the sum if the node has pods which matches the corresponding
+ podAffinityTerm; the node(s) with the highest sum
+ are the most preferred.
items:
- description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
+ description: The weights of all of the matched WeightedPodAffinityTerm
+ fields are added per-node to find the most preferred
+ node(s)
properties:
podAffinityTerm:
- description: Required. A pod affinity term, associated with the corresponding weight.
+ description: Required. A pod affinity term,
+ associated with the corresponding weight.
properties:
labelSelector:
- description: A label query over a set of resources, in this case pods.
+ description: A label query over a set of
+ resources, in this case pods.
properties:
matchExpressions:
- description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
+ description: matchExpressions is a list
+ of label selector requirements. The
+ requirements are ANDed.
items:
- description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
+ description: A label selector requirement
+ is a selector that contains values,
+ a key, and an operator that relates
+ the key and values.
properties:
key:
- description: key is the label key that the selector applies to.
+ description: key is the label
+ key that the selector applies
+ to.
type: string
operator:
- description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
+ description: operator represents
+ a key's relationship to a set
+ of values. Valid operators are
+ In, NotIn, Exists and DoesNotExist.
type: string
values:
- description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
+ description: values is an array
+ of string values. If the operator
+ is In or NotIn, the values array
+ must be non-empty. If the operator
+ is Exists or DoesNotExist, the
+ values array must be empty.
+ This array is replaced during
+ a strategic merge patch.
items:
type: string
type: array
@@ -549,22 +1028,42 @@ spec:
matchLabels:
additionalProperties:
type: string
- description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
+ description: matchLabels is a map of
+ {key,value} pairs. A single {key,value}
+ in the matchLabels map is equivalent
+ to an element of matchExpressions,
+ whose key field is "key", the operator
+ is "In", and the values array contains
+ only "value". The requirements are
+ ANDed.
type: object
type: object
namespaces:
- description: namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means "this pod's namespace"
+ description: namespaces specifies which
+ namespaces the labelSelector applies to
+ (matches against); null or empty list
+ means "this pod's namespace"
items:
type: string
type: array
topologyKey:
- description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
+ description: This pod should be co-located
+ (affinity) or not co-located (anti-affinity)
+ with the pods matching the labelSelector
+ in the specified namespaces, where co-located
+ is defined as running on a node whose
+ value of the label with key topologyKey
+ matches that of any node on which any
+ of the selected pods is running. Empty
+ topologyKey is not allowed.
type: string
required:
- topologyKey
type: object
weight:
- description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
+ description: weight associated with matching
+ the corresponding podAffinityTerm, in the
+ range 1-100.
format: int32
type: integer
required:
@@ -573,26 +1072,59 @@ spec:
type: object
type: array
requiredDuringSchedulingIgnoredDuringExecution:
- description: If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
+ description: If the anti-affinity requirements specified
+ by this field are not met at scheduling time, the
+ pod will not be scheduled onto the node. If the
+ anti-affinity requirements specified by this field
+ cease to be met at some point during pod execution
+ (e.g. due to a pod label update), the system may
+ or may not try to eventually evict the pod from
+ its node. When there are multiple elements, the
+ lists of nodes corresponding to each podAffinityTerm
+ are intersected, i.e. all terms must be satisfied.
items:
- description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
+ description: Defines a set of pods (namely those
+ matching the labelSelector relative to the given
+ namespace(s)) that this pod should be co-located
+ (affinity) or not co-located (anti-affinity) with,
+ where co-located is defined as running on a node
+ whose value of the label with key <topologyKey>
+ matches that of any node on which a pod of the
+ set of pods is running
properties:
labelSelector:
- description: A label query over a set of resources, in this case pods.
+ description: A label query over a set of resources,
+ in this case pods.
properties:
matchExpressions:
- description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
+ description: matchExpressions is a list
+ of label selector requirements. The requirements
+ are ANDed.
items:
- description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
+ description: A label selector requirement
+ is a selector that contains values,
+ a key, and an operator that relates
+ the key and values.
properties:
key:
- description: key is the label key that the selector applies to.
+ description: key is the label key
+ that the selector applies to.
type: string
operator:
- description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
+ description: operator represents a
+ key's relationship to a set of values.
+ Valid operators are In, NotIn, Exists
+ and DoesNotExist.
type: string
values:
- description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
+ description: values is an array of
+ string values. If the operator is
+ In or NotIn, the values array must
+ be non-empty. If the operator is
+ Exists or DoesNotExist, the values
+ array must be empty. This array
+ is replaced during a strategic merge
+ patch.
items:
type: string
type: array
@@ -604,16 +1136,30 @@ spec:
matchLabels:
additionalProperties:
type: string
- description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
+ description: matchLabels is a map of {key,value}
+ pairs. A single {key,value} in the matchLabels
+ map is equivalent to an element of matchExpressions,
+ whose key field is "key", the operator
+ is "In", and the values array contains
+ only "value". The requirements are ANDed.
type: object
type: object
namespaces:
- description: namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means "this pod's namespace"
+ description: namespaces specifies which namespaces
+ the labelSelector applies to (matches against);
+ null or empty list means "this pod's namespace"
items:
type: string
type: array
topologyKey:
- description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
+ description: This pod should be co-located (affinity)
+ or not co-located (anti-affinity) with the
+ pods matching the labelSelector in the specified
+ namespaces, where co-located is defined as
+ running on a node whose value of the label
+ with key topologyKey matches that of any node
+ on which any of the selected pods is running.
+ Empty topologyKey is not allowed.
type: string
required:
- topologyKey
@@ -624,97 +1170,191 @@ spec:
nodeSelector:
additionalProperties:
type: string
- description: 'nodeSelector is the node selector applied to the relevant kind of pods It specifies a map of key-value pairs: for the pod to be eligible to run on a node, the node must have each of the indicated key-value pairs as labels (it can have additional labels as well). See https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector'
+ description: 'nodeSelector is the node selector applied to
+ the relevant kind of pods It specifies a map of key-value
+ pairs: for the pod to be eligible to run on a node, the
+ node must have each of the indicated key-value pairs as
+ labels (it can have additional labels as well). See https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector'
type: object
tolerations:
- description: tolerations is a list of tolerations applied to the relevant kind of pods See https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ for more info. These are additional tolerations other than default ones.
+ description: tolerations is a list of tolerations applied
+ to the relevant kind of pods See https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
+ for more info. These are additional tolerations other than
+ default ones.
items:
- description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
+ description: The pod this Toleration is attached to tolerates
+ any taint that matches the triple <key,value,effect> using
+ the matching operator <operator>.
properties:
effect:
- description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
+ description: Effect indicates the taint effect to match.
+ Empty means match all taint effects. When specified,
+ allowed values are NoSchedule, PreferNoSchedule and
+ NoExecute.
type: string
key:
- description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
+ description: Key is the taint key that the toleration
+ applies to. Empty means match all taint keys. If the
+ key is empty, operator must be Exists; this combination
+ means to match all values and all keys.
type: string
operator:
- description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
+ description: Operator represents a key's relationship
+ to the value. Valid operators are Exists and Equal.
+ Defaults to Equal. Exists is equivalent to wildcard
+ for value, so that a pod can tolerate all taints of
+ a particular category.
type: string
tolerationSeconds:
- description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
+ description: TolerationSeconds represents the period
+ of time the toleration (which must be of effect NoExecute,
+ otherwise this field is ignored) tolerates the taint.
+ By default, it is not set, which means tolerate the
+ taint forever (do not evict). Zero and negative values
+ will be treated as 0 (evict immediately) by the system.
format: int64
type: integer
value:
- description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
+ description: Value is the taint value the toleration
+ matches to. If the operator is Exists, the value should
+ be empty, otherwise just a regular string.
type: string
type: object
type: array
type: object
+ replicas:
+ description: replicas indicates how many replicas should be created
+ for each KubeVirt infrastructure component (like virt-api or
+ virt-controller). Defaults to 2.
+ type: integer
type: object
monitorAccount:
- description: The name of the Prometheus service account that needs read-access to KubeVirt endpoints Defaults to prometheus-k8s
+ description: The name of the Prometheus service account that needs
+ read-access to KubeVirt endpoints Defaults to prometheus-k8s
type: string
monitorNamespace:
description: The namespace Prometheus is deployed in Defaults to openshift-monitor
type: string
+ productComponent:
+ description: Designate the apps.kubevirt.io/component label for KubeVirt
+ components. Useful if KubeVirt is included as part of a product.
+ If ProductComponent is not specified, the component label default
+ value is kubevirt.
+ type: string
productName:
- description: Designate the apps.kubevirt.io/part-of label for KubeVirt components. Useful if KubeVirt is included as part of a product. If ProductName is not specified, the part-of label will be omitted.
+ description: Designate the apps.kubevirt.io/part-of label for KubeVirt
+ components. Useful if KubeVirt is included as part of a product.
+ If ProductName is not specified, the part-of label will be omitted.
type: string
productVersion:
- description: Designate the apps.kubevirt.io/version label for KubeVirt components. Useful if KubeVirt is included as part of a product. If ProductVersion is not specified, KubeVirt's version will be used.
+ description: Designate the apps.kubevirt.io/version label for KubeVirt
+ components. Useful if KubeVirt is included as part of a product.
+ If ProductVersion is not specified, KubeVirt's version will be used.
type: string
uninstallStrategy:
- description: Specifies if kubevirt can be deleted if workloads are still present. This is mainly a precaution to avoid accidental data loss
+ description: Specifies if kubevirt can be deleted if workloads are
+ still present. This is mainly a precaution to avoid accidental data
+ loss
type: string
workloadUpdateStrategy:
- description: WorkloadUpdateStrategy defines at the cluster level how to handle automated workload updates
+ description: WorkloadUpdateStrategy defines at the cluster level how
+ to handle automated workload updates
properties:
batchEvictionInterval:
- description: "BatchEvictionInterval Represents the interval to wait before issuing the next batch of shutdowns \n Defaults to 1 minute"
+ description: "BatchEvictionInterval Represents the interval to
+ wait before issuing the next batch of shutdowns \n Defaults
+ to 1 minute"
type: string
batchEvictionSize:
- description: "BatchEvictionSize Represents the number of VMIs that can be forced updated per the BatchShutdownInteral interval \n Defaults to 10"
+ description: "BatchEvictionSize Represents the number of VMIs
+ that can be forced updated per the BatchShutdownInteral interval
+ \n Defaults to 10"
type: integer
workloadUpdateMethods:
- description: "WorkloadUpdateMethods defines the methods that can be used to disrupt workloads during automated workload updates. When multiple methods are present, the least disruptive method takes precedence over more disruptive methods. For example if both LiveMigrate and Shutdown methods are listed, only VMs which are not live migratable will be restarted/shutdown \n An empty list defaults to no automated workload updating"
+ description: "WorkloadUpdateMethods defines the methods that can
+ be used to disrupt workloads during automated workload updates.
+ When multiple methods are present, the least disruptive method
+ takes precedence over more disruptive methods. For example if
+ both LiveMigrate and Shutdown methods are listed, only VMs which
+ are not live migratable will be restarted/shutdown \n An empty
+ list defaults to no automated workload updating"
items:
type: string
type: array
x-kubernetes-list-type: atomic
type: object
workloads:
- description: selectors and tolerations that should apply to KubeVirt workloads
+ description: selectors and tolerations that should apply to KubeVirt
+ workloads
properties:
nodePlacement:
- description: nodePlacement decsribes scheduling confiuguration for specific KubeVirt components
+ description: nodePlacement describes scheduling configuration
+ for specific KubeVirt components
properties:
affinity:
- description: affinity enables pod affinity/anti-affinity placement expanding the types of constraints that can be expressed with nodeSelector. affinity is going to be applied to the relevant kind of pods in parallel with nodeSelector See https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity
+ description: affinity enables pod affinity/anti-affinity placement
+ expanding the types of constraints that can be expressed
+ with nodeSelector. affinity is going to be applied to the
+ relevant kind of pods in parallel with nodeSelector See
+ https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity
properties:
nodeAffinity:
- description: Describes node affinity scheduling rules for the pod.
+ description: Describes node affinity scheduling rules
+ for the pod.
properties:
preferredDuringSchedulingIgnoredDuringExecution:
- description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
+ description: The scheduler will prefer to schedule
+ pods to nodes that satisfy the affinity expressions
+ specified by this field, but it may choose a node
+ that violates one or more of the expressions. The
+ node that is most preferred is the one with the
+ greatest sum of weights, i.e. for each node that
+ meets all of the scheduling requirements (resource
+ request, requiredDuringScheduling affinity expressions,
+ etc.), compute a sum by iterating through the elements
+ of this field and adding "weight" to the sum if
+ the node matches the corresponding matchExpressions;
+ the node(s) with the highest sum are the most preferred.
items:
- description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
+ description: An empty preferred scheduling term
+ matches all objects with implicit weight 0 (i.e.
+ it's a no-op). A null preferred scheduling term
+ matches no objects (i.e. is also a no-op).
properties:
preference:
- description: A node selector term, associated with the corresponding weight.
+ description: A node selector term, associated
+ with the corresponding weight.
properties:
matchExpressions:
- description: A list of node selector requirements by node's labels.
+ description: A list of node selector requirements
+ by node's labels.
items:
- description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
+ description: A node selector requirement
+ is a selector that contains values,
+ a key, and an operator that relates
+ the key and values.
properties:
key:
- description: The label key that the selector applies to.
+ description: The label key that the
+ selector applies to.
type: string
operator:
- description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
+ description: Represents a key's relationship
+ to a set of values. Valid operators
+ are In, NotIn, Exists, DoesNotExist.
+ Gt, and Lt.
type: string
values:
- description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
+ description: An array of string values.
+ If the operator is In or NotIn,
+ the values array must be non-empty.
+ If the operator is Exists or DoesNotExist,
+ the values array must be empty.
+ If the operator is Gt or Lt, the
+ values array must have a single
+ element, which will be interpreted
+ as an integer. This array is replaced
+ during a strategic merge patch.
items:
type: string
type: array
@@ -724,18 +1364,35 @@ spec:
type: object
type: array
matchFields:
- description: A list of node selector requirements by node's fields.
+ description: A list of node selector requirements
+ by node's fields.
items:
- description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
+ description: A node selector requirement
+ is a selector that contains values,
+ a key, and an operator that relates
+ the key and values.
properties:
key:
- description: The label key that the selector applies to.
+ description: The label key that the
+ selector applies to.
type: string
operator:
- description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
+ description: Represents a key's relationship
+ to a set of values. Valid operators
+ are In, NotIn, Exists, DoesNotExist.
+ Gt, and Lt.
type: string
values:
- description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
+ description: An array of string values.
+ If the operator is In or NotIn,
+ the values array must be non-empty.
+ If the operator is Exists or DoesNotExist,
+ the values array must be empty.
+ If the operator is Gt or Lt, the
+ values array must have a single
+ element, which will be interpreted
+ as an integer. This array is replaced
+ during a strategic merge patch.
items:
type: string
type: array
@@ -746,7 +1403,9 @@ spec:
type: array
type: object
weight:
- description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
+ description: Weight associated with matching
+ the corresponding nodeSelectorTerm, in the
+ range 1-100.
format: int32
type: integer
required:
@@ -755,26 +1414,53 @@ spec:
type: object
type: array
requiredDuringSchedulingIgnoredDuringExecution:
- description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
+ description: If the affinity requirements specified
+ by this field are not met at scheduling time, the
+ pod will not be scheduled onto the node. If the
+ affinity requirements specified by this field cease
+ to be met at some point during pod execution (e.g.
+ due to an update), the system may or may not try
+ to eventually evict the pod from its node.
properties:
nodeSelectorTerms:
- description: Required. A list of node selector terms. The terms are ORed.
+ description: Required. A list of node selector
+ terms. The terms are ORed.
items:
- description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
+ description: A null or empty node selector term
+ matches no objects. The requirements of them
+ are ANDed. The TopologySelectorTerm type implements
+ a subset of the NodeSelectorTerm.
properties:
matchExpressions:
- description: A list of node selector requirements by node's labels.
+ description: A list of node selector requirements
+ by node's labels.
items:
- description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
+ description: A node selector requirement
+ is a selector that contains values,
+ a key, and an operator that relates
+ the key and values.
properties:
key:
- description: The label key that the selector applies to.
+ description: The label key that the
+ selector applies to.
type: string
operator:
- description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
+ description: Represents a key's relationship
+ to a set of values. Valid operators
+ are In, NotIn, Exists, DoesNotExist.
+ Gt, and Lt.
type: string
values:
- description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
+ description: An array of string values.
+ If the operator is In or NotIn,
+ the values array must be non-empty.
+ If the operator is Exists or DoesNotExist,
+ the values array must be empty.
+ If the operator is Gt or Lt, the
+ values array must have a single
+ element, which will be interpreted
+ as an integer. This array is replaced
+ during a strategic merge patch.
items:
type: string
type: array
@@ -784,18 +1470,35 @@ spec:
type: object
type: array
matchFields:
- description: A list of node selector requirements by node's fields.
+ description: A list of node selector requirements
+ by node's fields.
items:
- description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
+ description: A node selector requirement
+ is a selector that contains values,
+ a key, and an operator that relates
+ the key and values.
properties:
key:
- description: The label key that the selector applies to.
+ description: The label key that the
+ selector applies to.
type: string
operator:
- description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
+ description: Represents a key's relationship
+ to a set of values. Valid operators
+ are In, NotIn, Exists, DoesNotExist.
+ Gt, and Lt.
type: string
values:
- description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
+ description: An array of string values.
+ If the operator is In or NotIn,
+ the values array must be non-empty.
+ If the operator is Exists or DoesNotExist,
+ the values array must be empty.
+ If the operator is Gt or Lt, the
+ values array must have a single
+ element, which will be interpreted
+ as an integer. This array is replaced
+ during a strategic merge patch.
items:
type: string
type: array
@@ -811,32 +1514,67 @@ spec:
type: object
type: object
podAffinity:
- description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
+ description: Describes pod affinity scheduling rules (e.g.
+ co-locate this pod in the same node, zone, etc. as some
+ other pod(s)).
properties:
preferredDuringSchedulingIgnoredDuringExecution:
- description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
+ description: The scheduler will prefer to schedule
+ pods to nodes that satisfy the affinity expressions
+ specified by this field, but it may choose a node
+ that violates one or more of the expressions. The
+ node that is most preferred is the one with the
+ greatest sum of weights, i.e. for each node that
+ meets all of the scheduling requirements (resource
+ request, requiredDuringScheduling affinity expressions,
+ etc.), compute a sum by iterating through the elements
+ of this field and adding "weight" to the sum if
+ the node has pods which matches the corresponding
+ podAffinityTerm; the node(s) with the highest sum
+ are the most preferred.
items:
- description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
+ description: The weights of all of the matched WeightedPodAffinityTerm
+ fields are added per-node to find the most preferred
+ node(s)
properties:
podAffinityTerm:
- description: Required. A pod affinity term, associated with the corresponding weight.
+ description: Required. A pod affinity term,
+ associated with the corresponding weight.
properties:
labelSelector:
- description: A label query over a set of resources, in this case pods.
+ description: A label query over a set of
+ resources, in this case pods.
properties:
matchExpressions:
- description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
+ description: matchExpressions is a list
+ of label selector requirements. The
+ requirements are ANDed.
items:
- description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
+ description: A label selector requirement
+ is a selector that contains values,
+ a key, and an operator that relates
+ the key and values.
properties:
key:
- description: key is the label key that the selector applies to.
+ description: key is the label
+ key that the selector applies
+ to.
type: string
operator:
- description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
+ description: operator represents
+ a key's relationship to a set
+ of values. Valid operators are
+ In, NotIn, Exists and DoesNotExist.
type: string
values:
- description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
+ description: values is an array
+ of string values. If the operator
+ is In or NotIn, the values array
+ must be non-empty. If the operator
+ is Exists or DoesNotExist, the
+ values array must be empty.
+ This array is replaced during
+ a strategic merge patch.
items:
type: string
type: array
@@ -848,22 +1586,42 @@ spec:
matchLabels:
additionalProperties:
type: string
- description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
+ description: matchLabels is a map of
+ {key,value} pairs. A single {key,value}
+ in the matchLabels map is equivalent
+ to an element of matchExpressions,
+ whose key field is "key", the operator
+ is "In", and the values array contains
+ only "value". The requirements are
+ ANDed.
type: object
type: object
namespaces:
- description: namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means "this pod's namespace"
+ description: namespaces specifies which
+ namespaces the labelSelector applies to
+ (matches against); null or empty list
+ means "this pod's namespace"
items:
type: string
type: array
topologyKey:
- description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
+ description: This pod should be co-located
+ (affinity) or not co-located (anti-affinity)
+ with the pods matching the labelSelector
+ in the specified namespaces, where co-located
+ is defined as running on a node whose
+ value of the label with key topologyKey
+ matches that of any node on which any
+ of the selected pods is running. Empty
+ topologyKey is not allowed.
type: string
required:
- topologyKey
type: object
weight:
- description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
+ description: weight associated with matching
+ the corresponding podAffinityTerm, in the
+ range 1-100.
format: int32
type: integer
required:
@@ -872,26 +1630,59 @@ spec:
type: object
type: array
requiredDuringSchedulingIgnoredDuringExecution:
- description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
+ description: If the affinity requirements specified
+ by this field are not met at scheduling time, the
+ pod will not be scheduled onto the node. If the
+ affinity requirements specified by this field cease
+ to be met at some point during pod execution (e.g.
+ due to a pod label update), the system may or may
+ not try to eventually evict the pod from its node.
+ When there are multiple elements, the lists of nodes
+ corresponding to each podAffinityTerm are intersected,
+ i.e. all terms must be satisfied.
items:
- description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
+ description: Defines a set of pods (namely those
+ matching the labelSelector relative to the given
+ namespace(s)) that this pod should be co-located
+ (affinity) or not co-located (anti-affinity) with,
+ where co-located is defined as running on a node
+ whose value of the label with key <topologyKey>
+ matches that of any node on which a pod of the
+ set of pods is running
properties:
labelSelector:
- description: A label query over a set of resources, in this case pods.
+ description: A label query over a set of resources,
+ in this case pods.
properties:
matchExpressions:
- description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
+ description: matchExpressions is a list
+ of label selector requirements. The requirements
+ are ANDed.
items:
- description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
+ description: A label selector requirement
+ is a selector that contains values,
+ a key, and an operator that relates
+ the key and values.
properties:
key:
- description: key is the label key that the selector applies to.
+ description: key is the label key
+ that the selector applies to.
type: string
operator:
- description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
+ description: operator represents a
+ key's relationship to a set of values.
+ Valid operators are In, NotIn, Exists
+ and DoesNotExist.
type: string
values:
- description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
+ description: values is an array of
+ string values. If the operator is
+ In or NotIn, the values array must
+ be non-empty. If the operator is
+ Exists or DoesNotExist, the values
+ array must be empty. This array
+ is replaced during a strategic merge
+ patch.
items:
type: string
type: array
@@ -903,16 +1694,30 @@ spec:
matchLabels:
additionalProperties:
type: string
- description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
+ description: matchLabels is a map of {key,value}
+ pairs. A single {key,value} in the matchLabels
+ map is equivalent to an element of matchExpressions,
+ whose key field is "key", the operator
+ is "In", and the values array contains
+ only "value". The requirements are ANDed.
type: object
type: object
namespaces:
- description: namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means "this pod's namespace"
+ description: namespaces specifies which namespaces
+ the labelSelector applies to (matches against);
+ null or empty list means "this pod's namespace"
items:
type: string
type: array
topologyKey:
- description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
+ description: This pod should be co-located (affinity)
+ or not co-located (anti-affinity) with the
+ pods matching the labelSelector in the specified
+ namespaces, where co-located is defined as
+ running on a node whose value of the label
+ with key topologyKey matches that of any node
+ on which any of the selected pods is running.
+ Empty topologyKey is not allowed.
type: string
required:
- topologyKey
@@ -920,32 +1725,67 @@ spec:
type: array
type: object
podAntiAffinity:
- description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
+ description: Describes pod anti-affinity scheduling rules
+ (e.g. avoid putting this pod in the same node, zone,
+ etc. as some other pod(s)).
properties:
preferredDuringSchedulingIgnoredDuringExecution:
- description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
+ description: The scheduler will prefer to schedule
+ pods to nodes that satisfy the anti-affinity expressions
+ specified by this field, but it may choose a node
+ that violates one or more of the expressions. The
+ node that is most preferred is the one with the
+ greatest sum of weights, i.e. for each node that
+ meets all of the scheduling requirements (resource
+ request, requiredDuringScheduling anti-affinity
+ expressions, etc.), compute a sum by iterating through
+ the elements of this field and adding "weight" to
+ the sum if the node has pods which matches the corresponding
+ podAffinityTerm; the node(s) with the highest sum
+ are the most preferred.
items:
- description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
+ description: The weights of all of the matched WeightedPodAffinityTerm
+ fields are added per-node to find the most preferred
+ node(s)
properties:
podAffinityTerm:
- description: Required. A pod affinity term, associated with the corresponding weight.
+ description: Required. A pod affinity term,
+ associated with the corresponding weight.
properties:
labelSelector:
- description: A label query over a set of resources, in this case pods.
+ description: A label query over a set of
+ resources, in this case pods.
properties:
matchExpressions:
- description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
+ description: matchExpressions is a list
+ of label selector requirements. The
+ requirements are ANDed.
items:
- description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
+ description: A label selector requirement
+ is a selector that contains values,
+ a key, and an operator that relates
+ the key and values.
properties:
key:
- description: key is the label key that the selector applies to.
+ description: key is the label
+ key that the selector applies
+ to.
type: string
operator:
- description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
+ description: operator represents
+ a key's relationship to a set
+ of values. Valid operators are
+ In, NotIn, Exists and DoesNotExist.
type: string
values:
- description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
+ description: values is an array
+ of string values. If the operator
+ is In or NotIn, the values array
+ must be non-empty. If the operator
+ is Exists or DoesNotExist, the
+ values array must be empty.
+ This array is replaced during
+ a strategic merge patch.
items:
type: string
type: array
@@ -957,22 +1797,42 @@ spec:
matchLabels:
additionalProperties:
type: string
- description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
+ description: matchLabels is a map of
+ {key,value} pairs. A single {key,value}
+ in the matchLabels map is equivalent
+ to an element of matchExpressions,
+ whose key field is "key", the operator
+ is "In", and the values array contains
+ only "value". The requirements are
+ ANDed.
type: object
type: object
namespaces:
- description: namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means "this pod's namespace"
+ description: namespaces specifies which
+ namespaces the labelSelector applies to
+ (matches against); null or empty list
+ means "this pod's namespace"
items:
type: string
type: array
topologyKey:
- description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
+ description: This pod should be co-located
+ (affinity) or not co-located (anti-affinity)
+ with the pods matching the labelSelector
+ in the specified namespaces, where co-located
+ is defined as running on a node whose
+ value of the label with key topologyKey
+ matches that of any node on which any
+ of the selected pods is running. Empty
+ topologyKey is not allowed.
type: string
required:
- topologyKey
type: object
weight:
- description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
+ description: weight associated with matching
+ the corresponding podAffinityTerm, in the
+ range 1-100.
format: int32
type: integer
required:
@@ -981,26 +1841,59 @@ spec:
type: object
type: array
requiredDuringSchedulingIgnoredDuringExecution:
- description: If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
+ description: If the anti-affinity requirements specified
+ by this field are not met at scheduling time, the
+ pod will not be scheduled onto the node. If the
+ anti-affinity requirements specified by this field
+ cease to be met at some point during pod execution
+ (e.g. due to a pod label update), the system may
+ or may not try to eventually evict the pod from
+ its node. When there are multiple elements, the
+ lists of nodes corresponding to each podAffinityTerm
+ are intersected, i.e. all terms must be satisfied.
items:
- description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
+ description: Defines a set of pods (namely those
+ matching the labelSelector relative to the given
+ namespace(s)) that this pod should be co-located
+ (affinity) or not co-located (anti-affinity) with,
+ where co-located is defined as running on a node
+ whose value of the label with key <topologyKey>
+ matches that of any node on which a pod of the
+ set of pods is running
properties:
labelSelector:
- description: A label query over a set of resources, in this case pods.
+ description: A label query over a set of resources,
+ in this case pods.
properties:
matchExpressions:
- description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
+ description: matchExpressions is a list
+ of label selector requirements. The requirements
+ are ANDed.
items:
- description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
+ description: A label selector requirement
+ is a selector that contains values,
+ a key, and an operator that relates
+ the key and values.
properties:
key:
- description: key is the label key that the selector applies to.
+ description: key is the label key
+ that the selector applies to.
type: string
operator:
- description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
+ description: operator represents a
+ key's relationship to a set of values.
+ Valid operators are In, NotIn, Exists
+ and DoesNotExist.
type: string
values:
- description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
+ description: values is an array of
+ string values. If the operator is
+ In or NotIn, the values array must
+ be non-empty. If the operator is
+ Exists or DoesNotExist, the values
+ array must be empty. This array
+ is replaced during a strategic merge
+ patch.
items:
type: string
type: array
@@ -1012,16 +1905,30 @@ spec:
matchLabels:
additionalProperties:
type: string
- description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
+ description: matchLabels is a map of {key,value}
+ pairs. A single {key,value} in the matchLabels
+ map is equivalent to an element of matchExpressions,
+ whose key field is "key", the operator
+ is "In", and the values array contains
+ only "value". The requirements are ANDed.
type: object
type: object
namespaces:
- description: namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means "this pod's namespace"
+ description: namespaces specifies which namespaces
+ the labelSelector applies to (matches against);
+ null or empty list means "this pod's namespace"
items:
type: string
type: array
topologyKey:
- description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
+ description: This pod should be co-located (affinity)
+ or not co-located (anti-affinity) with the
+ pods matching the labelSelector in the specified
+ namespaces, where co-located is defined as
+ running on a node whose value of the label
+ with key topologyKey matches that of any node
+ on which any of the selected pods is running.
+ Empty topologyKey is not allowed.
type: string
required:
- topologyKey
@@ -1032,40 +1939,73 @@ spec:
nodeSelector:
additionalProperties:
type: string
- description: 'nodeSelector is the node selector applied to the relevant kind of pods It specifies a map of key-value pairs: for the pod to be eligible to run on a node, the node must have each of the indicated key-value pairs as labels (it can have additional labels as well). See https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector'
+ description: 'nodeSelector is the node selector applied to
+ the relevant kind of pods It specifies a map of key-value
+ pairs: for the pod to be eligible to run on a node, the
+ node must have each of the indicated key-value pairs as
+ labels (it can have additional labels as well). See https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector'
type: object
tolerations:
- description: tolerations is a list of tolerations applied to the relevant kind of pods See https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ for more info. These are additional tolerations other than default ones.
+ description: tolerations is a list of tolerations applied
+ to the relevant kind of pods See https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
+ for more info. These are additional tolerations other than
+ default ones.
items:
- description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
+ description: The pod this Toleration is attached to tolerates
+ any taint that matches the triple <key,value,effect> using
+ the matching operator <operator>.
properties:
effect:
- description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
+ description: Effect indicates the taint effect to match.
+ Empty means match all taint effects. When specified,
+ allowed values are NoSchedule, PreferNoSchedule and
+ NoExecute.
type: string
key:
- description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
+ description: Key is the taint key that the toleration
+ applies to. Empty means match all taint keys. If the
+ key is empty, operator must be Exists; this combination
+ means to match all values and all keys.
type: string
operator:
- description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
+ description: Operator represents a key's relationship
+ to the value. Valid operators are Exists and Equal.
+ Defaults to Equal. Exists is equivalent to wildcard
+ for value, so that a pod can tolerate all taints of
+ a particular category.
type: string
tolerationSeconds:
- description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
+ description: TolerationSeconds represents the period
+ of time the toleration (which must be of effect NoExecute,
+ otherwise this field is ignored) tolerates the taint.
+ By default, it is not set, which means tolerate the
+ taint forever (do not evict). Zero and negative values
+ will be treated as 0 (evict immediately) by the system.
format: int64
type: integer
value:
- description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
+ description: Value is the taint value the toleration
+ matches to. If the operator is Exists, the value should
+ be empty, otherwise just a regular string.
type: string
type: object
type: array
type: object
+ replicas:
+ description: replicas indicates how many replicas should be created
+ for each KubeVirt infrastructure component (like virt-api or
+ virt-controller). Defaults to 2.
+ type: integer
type: object
type: object
status:
- description: KubeVirtStatus represents information pertaining to a KubeVirt deployment.
+ description: KubeVirtStatus represents information pertaining to a KubeVirt
+ deployment.
properties:
conditions:
items:
- description: KubeVirtCondition represents a condition of a KubeVirt deployment
+ description: KubeVirtCondition represents a condition of a KubeVirt
+ deployment
properties:
lastProbeTime:
format: date-time
@@ -1090,16 +2030,20 @@ spec:
type: array
generations:
items:
- description: GenerationStatus keeps track of the generation for a given resource so that decisions about forced updates can be made.
+ description: GenerationStatus keeps track of the generation for
+ a given resource so that decisions about forced updates can be
+ made.
properties:
group:
description: group is the group of the thing you're tracking
type: string
hash:
- description: hash is an optional field set for resources without generation that are content sensitive like secrets and configmaps
+ description: hash is an optional field set for resources without
+ generation that are content sensitive like secrets and configmaps
type: string
lastGeneration:
- description: lastGeneration is the last generation of the workload controller involved
+ description: lastGeneration is the last generation of the workload
+ controller involved
format: int64
type: integer
name:
@@ -1109,7 +2053,8 @@ spec:
description: namespace is where the thing you're tracking is
type: string
resource:
- description: resource is the resource type of the thing you're tracking
+ description: resource is the resource type of the thing you're
+ tracking
type: string
required:
- group
@@ -1132,7 +2077,8 @@ spec:
outdatedVirtualMachineInstanceWorkloads:
type: integer
phase:
- description: KubeVirtPhase is a label for the phase of a KubeVirt deployment at the current time.
+ description: KubeVirtPhase is a label for the phase of a KubeVirt
+ deployment at the current time.
type: string
targetDeploymentConfig:
type: string
@@ -1163,10 +2109,14 @@ spec:
description: KubeVirt represents the object deploying all KubeVirt resources
properties:
apiVersion:
- description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ description: 'APIVersion defines the versioned schema of this representation
+ of an object. Servers should convert recognized schemas to the latest
+ internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
- description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ description: 'Kind is a string value representing the REST resource this
+ object represents. Servers may infer this from the endpoint the client
+ submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
@@ -1177,17 +2127,22 @@ spec:
selfSigned:
properties:
ca:
- description: CA configuration CA certs are kept in the CA bundle as long as they are valid
+ description: CA configuration CA certs are kept in the CA
+ bundle as long as they are valid
properties:
duration:
- description: The requested 'duration' (i.e. lifetime) of the Certificate.
+ description: The requested 'duration' (i.e. lifetime)
+ of the Certificate.
type: string
renewBefore:
- description: The amount of time before the currently issued certificate's "notAfter" time that we will begin to attempt to renew the certificate.
+ description: The amount of time before the currently issued
+ certificate's "notAfter" time that we will begin to
+ attempt to renew the certificate.
type: string
type: object
caOverlapInterval:
- description: Deprecated. Use CA.Duration and CA.RenewBefore instead
+ description: Deprecated. Use CA.Duration and CA.RenewBefore
+ instead
type: string
caRotateInterval:
description: Deprecated. Use CA.Duration instead
@@ -1199,10 +2154,13 @@ spec:
description: Server configuration Certs are rotated and discarded
properties:
duration:
- description: The requested 'duration' (i.e. lifetime) of the Certificate.
+ description: The requested 'duration' (i.e. lifetime)
+ of the Certificate.
type: string
renewBefore:
- description: The amount of time before the currently issued certificate's "notAfter" time that we will begin to attempt to renew the certificate.
+ description: The amount of time before the currently issued
+ certificate's "notAfter" time that we will begin to
+ attempt to renew the certificate.
type: string
type: object
type: object
@@ -1210,6 +2168,68 @@ spec:
configuration:
description: holds kubevirt configurations. same as the virt-configMap
properties:
+ apiConfiguration:
+ description: ReloadableComponentConfiguration holds all generic
+ k8s configuration options which can be reloaded by components
+ without requiring a restart.
+ properties:
+ restClient:
+ description: RestClient can be used to tune certain aspects
+ of the k8s client in use.
+ properties:
+ rateLimiter:
+ description: RateLimiter allows selecting and configuring
+ different rate limiters for the k8s client.
+ properties:
+ tokenBucketRateLimiter:
+ properties:
+ burst:
+ description: Maximum burst for throttle. If it's
+ zero, the component default will be used
+ type: integer
+ qps:
+ description: QPS indicates the maximum QPS to
+ the apiserver from this client. If it's zero,
+ the component default will be used
+ type: number
+ required:
+ - burst
+ - qps
+ type: object
+ type: object
+ type: object
+ type: object
+ controllerConfiguration:
+ description: ReloadableComponentConfiguration holds all generic
+ k8s configuration options which can be reloaded by components
+ without requiring a restart.
+ properties:
+ restClient:
+ description: RestClient can be used to tune certain aspects
+ of the k8s client in use.
+ properties:
+ rateLimiter:
+ description: RateLimiter allows selecting and configuring
+ different rate limiters for the k8s client.
+ properties:
+ tokenBucketRateLimiter:
+ properties:
+ burst:
+ description: Maximum burst for throttle. If it's
+ zero, the component default will be used
+ type: integer
+ qps:
+ description: QPS indicates the maximum QPS to
+ the apiserver from this client. If it's zero,
+ the component default will be used
+ type: number
+ required:
+ - burst
+ - qps
+ type: object
+ type: object
+ type: object
+ type: object
cpuModel:
type: string
cpuRequest:
@@ -1218,22 +2238,39 @@ spec:
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
+ defaultRuntimeClass:
+ type: string
developerConfiguration:
description: DeveloperConfiguration holds developer options
properties:
cpuAllocationRatio:
type: integer
+ diskVerification:
+ description: DiskVerification holds container disks verification
+ limits
+ properties:
+ memoryLimit:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ required:
+ - memoryLimit
+ type: object
featureGates:
items:
type: string
type: array
logVerbosity:
- description: LogVerbosity sets log verbosity level of various components
+ description: LogVerbosity sets log verbosity level of various
+ components
properties:
nodeVerbosity:
additionalProperties:
type: integer
- description: NodeVerbosity represents a map of nodes with a specific verbosity level
+ description: NodeVerbosity represents a map of nodes with
+ a specific verbosity level
type: object
virtAPI:
type: integer
@@ -1248,6 +2285,15 @@ spec:
type: object
memoryOvercommit:
type: integer
+ minimumClusterTSCFrequency:
+ description: Allow overriding the automatically determined
+ minimum TSC frequency of the cluster and fixate the minimum
+ to this frequency.
+ format: int64
+ type: integer
+ minimumReservePVCBytes:
+ format: int64
+ type: integer
nodeSelectors:
additionalProperties:
type: string
@@ -1255,17 +2301,87 @@ spec:
pvcTolerateLessSpaceUpToPercent:
type: integer
useEmulation:
+ description: UseEmulation can be set to true to allow fallback
+ to software emulation in case hardware-assisted emulation
+ is not available.
type: boolean
type: object
emulatedMachines:
items:
type: string
type: array
+ handlerConfiguration:
+ description: ReloadableComponentConfiguration holds all generic
+ k8s configuration options which can be reloaded by components
+ without requiring a restart.
+ properties:
+ restClient:
+ description: RestClient can be used to tune certain aspects
+ of the k8s client in use.
+ properties:
+ rateLimiter:
+ description: RateLimiter allows selecting and configuring
+ different rate limiters for the k8s client.
+ properties:
+ tokenBucketRateLimiter:
+ properties:
+ burst:
+ description: Maximum burst for throttle. If it's
+ zero, the component default will be used
+ type: integer
+ qps:
+ description: QPS indicates the maximum QPS to
+ the apiserver from this client. If it's zero,
+ the component default will be used
+ type: number
+ required:
+ - burst
+ - qps
+ type: object
+ type: object
+ type: object
+ type: object
imagePullPolicy:
- description: PullPolicy describes a policy for if/when to pull a container image
+ description: PullPolicy describes a policy for if/when to pull
+ a container image
type: string
machineType:
type: string
+ mediatedDevicesConfiguration:
+ description: MediatedDevicesConfiguration holds inforamtion about
+ MDEV types to be defined, if available
+ properties:
+ mediatedDevicesTypes:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ nodeMediatedDeviceTypes:
+ items:
+ description: NodeMediatedDeviceTypesConfig holds inforamtion
+ about MDEV types to be defined in a specifc node that
+ matches the NodeSelector field.
+ properties:
+ mediatedDevicesTypes:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ nodeSelector:
+ additionalProperties:
+ type: string
+ description: 'NodeSelector is a selector which must
+ be true for the vmi to fit on a node. Selector which
+ must match a node''s labels for the vmi to be scheduled
+ on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/'
+ type: object
+ required:
+ - mediatedDevicesTypes
+ - nodeSelector
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
memBalloonStatsPeriod:
format: int32
type: integer
@@ -1285,6 +2401,10 @@ spec:
completionTimeoutPerGiB:
format: int64
type: integer
+ disableTLS:
+ type: boolean
+ network:
+ type: string
nodeDrainTaintKey:
type: string
parallelMigrationsPerCluster:
@@ -1318,11 +2438,13 @@ spec:
ovmfPath:
type: string
permittedHostDevices:
- description: PermittedHostDevices holds inforamtion about devices allowed for passthrough
+ description: PermittedHostDevices holds inforamtion about devices
+ allowed for passthrough
properties:
mediatedDevices:
items:
- description: MediatedHostDevice represents a host mediated device allowed for passthrough
+ description: MediatedHostDevice represents a host mediated
+ device allowed for passthrough
properties:
externalResourceProvider:
type: boolean
@@ -1338,13 +2460,24 @@ spec:
x-kubernetes-list-type: atomic
pciHostDevices:
items:
- description: PciHostDevice represents a host PCI device allowed for passthrough
+ description: PciHostDevice represents a host PCI device
+ allowed for passthrough
properties:
externalResourceProvider:
+ description: If true, KubeVirt will leave the allocation
+ and monitoring to an external device plugin
type: boolean
pciVendorSelector:
+ description: The vendor_id:product_id tuple of the PCI
+ device
type: string
resourceName:
+ description: The name of the resource that is representing
+ the device. Exposed by a device plugin and requested
+ by VMs. Typically of the form vendor.com/product_nameThe
+ name of the resource that is representing the device.
+ Exposed by a device plugin and requested by VMs. Typically
+ of the form vendor.com/product_name
type: string
required:
- pciVendorSelector
@@ -1373,9 +2506,59 @@ spec:
items:
type: string
type: array
+ virtualMachineInstancesPerNode:
+ type: integer
+ webhookConfiguration:
+ description: ReloadableComponentConfiguration holds all generic
+ k8s configuration options which can be reloaded by components
+ without requiring a restart.
+ properties:
+ restClient:
+ description: RestClient can be used to tune certain aspects
+ of the k8s client in use.
+ properties:
+ rateLimiter:
+ description: RateLimiter allows selecting and configuring
+ different rate limiters for the k8s client.
+ properties:
+ tokenBucketRateLimiter:
+ properties:
+ burst:
+ description: Maximum burst for throttle. If it's
+ zero, the component default will be used
+ type: integer
+ qps:
+ description: QPS indicates the maximum QPS to
+ the apiserver from this client. If it's zero,
+ the component default will be used
+ type: number
+ required:
+ - burst
+ - qps
+ type: object
+ type: object
+ type: object
+ type: object
type: object
customizeComponents:
properties:
+ flags:
+ description: Configure the value used for deployment and daemonset
+ resources
+ properties:
+ api:
+ additionalProperties:
+ type: string
+ type: object
+ controller:
+ additionalProperties:
+ type: string
+ type: object
+ handler:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
patches:
items:
properties:
@@ -1402,44 +2585,86 @@ spec:
description: The ImagePullPolicy to use.
type: string
imageRegistry:
- description: The image registry to pull the container images from Defaults to the same registry the operator's container image is pulled from.
+ description: The image registry to pull the container images from
+ Defaults to the same registry the operator's container image is
+ pulled from.
type: string
imageTag:
- description: The image tag to use for the continer images installed. Defaults to the same tag as the operator's container image.
+ description: The image tag to use for the continer images installed.
+ Defaults to the same tag as the operator's container image.
type: string
infra:
- description: selectors and tolerations that should apply to KubeVirt infrastructure components
+ description: selectors and tolerations that should apply to KubeVirt
+ infrastructure components
properties:
nodePlacement:
- description: nodePlacement decsribes scheduling confiuguration for specific KubeVirt components
+ description: nodePlacement describes scheduling configuration
+ for specific KubeVirt components
properties:
affinity:
- description: affinity enables pod affinity/anti-affinity placement expanding the types of constraints that can be expressed with nodeSelector. affinity is going to be applied to the relevant kind of pods in parallel with nodeSelector See https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity
+ description: affinity enables pod affinity/anti-affinity placement
+ expanding the types of constraints that can be expressed
+ with nodeSelector. affinity is going to be applied to the
+ relevant kind of pods in parallel with nodeSelector See
+ https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity
properties:
nodeAffinity:
- description: Describes node affinity scheduling rules for the pod.
+ description: Describes node affinity scheduling rules
+ for the pod.
properties:
preferredDuringSchedulingIgnoredDuringExecution:
- description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
+ description: The scheduler will prefer to schedule
+ pods to nodes that satisfy the affinity expressions
+ specified by this field, but it may choose a node
+ that violates one or more of the expressions. The
+ node that is most preferred is the one with the
+ greatest sum of weights, i.e. for each node that
+ meets all of the scheduling requirements (resource
+ request, requiredDuringScheduling affinity expressions,
+ etc.), compute a sum by iterating through the elements
+ of this field and adding "weight" to the sum if
+ the node matches the corresponding matchExpressions;
+ the node(s) with the highest sum are the most preferred.
items:
- description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
+ description: An empty preferred scheduling term
+ matches all objects with implicit weight 0 (i.e.
+ it's a no-op). A null preferred scheduling term
+ matches no objects (i.e. is also a no-op).
properties:
preference:
- description: A node selector term, associated with the corresponding weight.
+ description: A node selector term, associated
+ with the corresponding weight.
properties:
matchExpressions:
- description: A list of node selector requirements by node's labels.
+ description: A list of node selector requirements
+ by node's labels.
items:
- description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
+ description: A node selector requirement
+ is a selector that contains values,
+ a key, and an operator that relates
+ the key and values.
properties:
key:
- description: The label key that the selector applies to.
+ description: The label key that the
+ selector applies to.
type: string
operator:
- description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
+ description: Represents a key's relationship
+ to a set of values. Valid operators
+ are In, NotIn, Exists, DoesNotExist.
+ Gt, and Lt.
type: string
values:
- description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
+ description: An array of string values.
+ If the operator is In or NotIn,
+ the values array must be non-empty.
+ If the operator is Exists or DoesNotExist,
+ the values array must be empty.
+ If the operator is Gt or Lt, the
+ values array must have a single
+ element, which will be interpreted
+ as an integer. This array is replaced
+ during a strategic merge patch.
items:
type: string
type: array
@@ -1449,18 +2674,35 @@ spec:
type: object
type: array
matchFields:
- description: A list of node selector requirements by node's fields.
+ description: A list of node selector requirements
+ by node's fields.
items:
- description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
+ description: A node selector requirement
+ is a selector that contains values,
+ a key, and an operator that relates
+ the key and values.
properties:
key:
- description: The label key that the selector applies to.
+ description: The label key that the
+ selector applies to.
type: string
operator:
- description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
+ description: Represents a key's relationship
+ to a set of values. Valid operators
+ are In, NotIn, Exists, DoesNotExist.
+ Gt, and Lt.
type: string
values:
- description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
+ description: An array of string values.
+ If the operator is In or NotIn,
+ the values array must be non-empty.
+ If the operator is Exists or DoesNotExist,
+ the values array must be empty.
+ If the operator is Gt or Lt, the
+ values array must have a single
+ element, which will be interpreted
+ as an integer. This array is replaced
+ during a strategic merge patch.
items:
type: string
type: array
@@ -1471,7 +2713,9 @@ spec:
type: array
type: object
weight:
- description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
+ description: Weight associated with matching
+ the corresponding nodeSelectorTerm, in the
+ range 1-100.
format: int32
type: integer
required:
@@ -1480,26 +2724,53 @@ spec:
type: object
type: array
requiredDuringSchedulingIgnoredDuringExecution:
- description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
+ description: If the affinity requirements specified
+ by this field are not met at scheduling time, the
+ pod will not be scheduled onto the node. If the
+ affinity requirements specified by this field cease
+ to be met at some point during pod execution (e.g.
+ due to an update), the system may or may not try
+ to eventually evict the pod from its node.
properties:
nodeSelectorTerms:
- description: Required. A list of node selector terms. The terms are ORed.
+ description: Required. A list of node selector
+ terms. The terms are ORed.
items:
- description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
+ description: A null or empty node selector term
+ matches no objects. The requirements of them
+ are ANDed. The TopologySelectorTerm type implements
+ a subset of the NodeSelectorTerm.
properties:
matchExpressions:
- description: A list of node selector requirements by node's labels.
+ description: A list of node selector requirements
+ by node's labels.
items:
- description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
+ description: A node selector requirement
+ is a selector that contains values,
+ a key, and an operator that relates
+ the key and values.
properties:
key:
- description: The label key that the selector applies to.
+ description: The label key that the
+ selector applies to.
type: string
operator:
- description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
+ description: Represents a key's relationship
+ to a set of values. Valid operators
+ are In, NotIn, Exists, DoesNotExist.
+ Gt, and Lt.
type: string
values:
- description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
+ description: An array of string values.
+ If the operator is In or NotIn,
+ the values array must be non-empty.
+ If the operator is Exists or DoesNotExist,
+ the values array must be empty.
+ If the operator is Gt or Lt, the
+ values array must have a single
+ element, which will be interpreted
+ as an integer. This array is replaced
+ during a strategic merge patch.
items:
type: string
type: array
@@ -1509,18 +2780,35 @@ spec:
type: object
type: array
matchFields:
- description: A list of node selector requirements by node's fields.
+ description: A list of node selector requirements
+ by node's fields.
items:
- description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
+ description: A node selector requirement
+ is a selector that contains values,
+ a key, and an operator that relates
+ the key and values.
properties:
key:
- description: The label key that the selector applies to.
+ description: The label key that the
+ selector applies to.
type: string
operator:
- description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
+ description: Represents a key's relationship
+ to a set of values. Valid operators
+ are In, NotIn, Exists, DoesNotExist.
+ Gt, and Lt.
type: string
values:
- description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
+ description: An array of string values.
+ If the operator is In or NotIn,
+ the values array must be non-empty.
+ If the operator is Exists or DoesNotExist,
+ the values array must be empty.
+ If the operator is Gt or Lt, the
+ values array must have a single
+ element, which will be interpreted
+ as an integer. This array is replaced
+ during a strategic merge patch.
items:
type: string
type: array
@@ -1536,32 +2824,67 @@ spec:
type: object
type: object
podAffinity:
- description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
+ description: Describes pod affinity scheduling rules (e.g.
+ co-locate this pod in the same node, zone, etc. as some
+ other pod(s)).
properties:
preferredDuringSchedulingIgnoredDuringExecution:
- description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
+ description: The scheduler will prefer to schedule
+ pods to nodes that satisfy the affinity expressions
+ specified by this field, but it may choose a node
+ that violates one or more of the expressions. The
+ node that is most preferred is the one with the
+ greatest sum of weights, i.e. for each node that
+ meets all of the scheduling requirements (resource
+ request, requiredDuringScheduling affinity expressions,
+ etc.), compute a sum by iterating through the elements
+ of this field and adding "weight" to the sum if
+ the node has pods which matches the corresponding
+ podAffinityTerm; the node(s) with the highest sum
+ are the most preferred.
items:
- description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
+ description: The weights of all of the matched WeightedPodAffinityTerm
+ fields are added per-node to find the most preferred
+ node(s)
properties:
podAffinityTerm:
- description: Required. A pod affinity term, associated with the corresponding weight.
+ description: Required. A pod affinity term,
+ associated with the corresponding weight.
properties:
labelSelector:
- description: A label query over a set of resources, in this case pods.
+ description: A label query over a set of
+ resources, in this case pods.
properties:
matchExpressions:
- description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
+ description: matchExpressions is a list
+ of label selector requirements. The
+ requirements are ANDed.
items:
- description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
+ description: A label selector requirement
+ is a selector that contains values,
+ a key, and an operator that relates
+ the key and values.
properties:
key:
- description: key is the label key that the selector applies to.
+ description: key is the label
+ key that the selector applies
+ to.
type: string
operator:
- description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
+ description: operator represents
+ a key's relationship to a set
+ of values. Valid operators are
+ In, NotIn, Exists and DoesNotExist.
type: string
values:
- description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
+ description: values is an array
+ of string values. If the operator
+ is In or NotIn, the values array
+ must be non-empty. If the operator
+ is Exists or DoesNotExist, the
+ values array must be empty.
+ This array is replaced during
+ a strategic merge patch.
items:
type: string
type: array
@@ -1573,22 +2896,42 @@ spec:
matchLabels:
additionalProperties:
type: string
- description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
+ description: matchLabels is a map of
+ {key,value} pairs. A single {key,value}
+ in the matchLabels map is equivalent
+ to an element of matchExpressions,
+ whose key field is "key", the operator
+ is "In", and the values array contains
+ only "value". The requirements are
+ ANDed.
type: object
type: object
namespaces:
- description: namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means "this pod's namespace"
+ description: namespaces specifies which
+ namespaces the labelSelector applies to
+ (matches against); null or empty list
+ means "this pod's namespace"
items:
type: string
type: array
topologyKey:
- description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
+ description: This pod should be co-located
+ (affinity) or not co-located (anti-affinity)
+ with the pods matching the labelSelector
+ in the specified namespaces, where co-located
+ is defined as running on a node whose
+ value of the label with key topologyKey
+ matches that of any node on which any
+ of the selected pods is running. Empty
+ topologyKey is not allowed.
type: string
required:
- topologyKey
type: object
weight:
- description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
+ description: weight associated with matching
+ the corresponding podAffinityTerm, in the
+ range 1-100.
format: int32
type: integer
required:
@@ -1597,26 +2940,59 @@ spec:
type: object
type: array
requiredDuringSchedulingIgnoredDuringExecution:
- description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
+ description: If the affinity requirements specified
+ by this field are not met at scheduling time, the
+ pod will not be scheduled onto the node. If the
+ affinity requirements specified by this field cease
+ to be met at some point during pod execution (e.g.
+ due to a pod label update), the system may or may
+ not try to eventually evict the pod from its node.
+ When there are multiple elements, the lists of nodes
+ corresponding to each podAffinityTerm are intersected,
+ i.e. all terms must be satisfied.
items:
- description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
+ description: Defines a set of pods (namely those
+ matching the labelSelector relative to the given
+ namespace(s)) that this pod should be co-located
+ (affinity) or not co-located (anti-affinity) with,
+ where co-located is defined as running on a node
+ whose value of the label with key <topologyKey>
+ matches that of any node on which a pod of the
+ set of pods is running
properties:
labelSelector:
- description: A label query over a set of resources, in this case pods.
+ description: A label query over a set of resources,
+ in this case pods.
properties:
matchExpressions:
- description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
+ description: matchExpressions is a list
+ of label selector requirements. The requirements
+ are ANDed.
items:
- description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
+ description: A label selector requirement
+ is a selector that contains values,
+ a key, and an operator that relates
+ the key and values.
properties:
key:
- description: key is the label key that the selector applies to.
+ description: key is the label key
+ that the selector applies to.
type: string
operator:
- description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
+ description: operator represents a
+ key's relationship to a set of values.
+ Valid operators are In, NotIn, Exists
+ and DoesNotExist.
type: string
values:
- description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
+ description: values is an array of
+ string values. If the operator is
+ In or NotIn, the values array must
+ be non-empty. If the operator is
+ Exists or DoesNotExist, the values
+ array must be empty. This array
+ is replaced during a strategic merge
+ patch.
items:
type: string
type: array
@@ -1628,16 +3004,30 @@ spec:
matchLabels:
additionalProperties:
type: string
- description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
+ description: matchLabels is a map of {key,value}
+ pairs. A single {key,value} in the matchLabels
+ map is equivalent to an element of matchExpressions,
+ whose key field is "key", the operator
+ is "In", and the values array contains
+ only "value". The requirements are ANDed.
type: object
type: object
namespaces:
- description: namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means "this pod's namespace"
+ description: namespaces specifies which namespaces
+ the labelSelector applies to (matches against);
+ null or empty list means "this pod's namespace"
items:
type: string
type: array
topologyKey:
- description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
+ description: This pod should be co-located (affinity)
+ or not co-located (anti-affinity) with the
+ pods matching the labelSelector in the specified
+ namespaces, where co-located is defined as
+ running on a node whose value of the label
+ with key topologyKey matches that of any node
+ on which any of the selected pods is running.
+ Empty topologyKey is not allowed.
type: string
required:
- topologyKey
@@ -1645,32 +3035,67 @@ spec:
type: array
type: object
podAntiAffinity:
- description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
+ description: Describes pod anti-affinity scheduling rules
+ (e.g. avoid putting this pod in the same node, zone,
+ etc. as some other pod(s)).
properties:
preferredDuringSchedulingIgnoredDuringExecution:
- description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
+ description: The scheduler will prefer to schedule
+ pods to nodes that satisfy the anti-affinity expressions
+ specified by this field, but it may choose a node
+ that violates one or more of the expressions. The
+ node that is most preferred is the one with the
+ greatest sum of weights, i.e. for each node that
+ meets all of the scheduling requirements (resource
+ request, requiredDuringScheduling anti-affinity
+ expressions, etc.), compute a sum by iterating through
+ the elements of this field and adding "weight" to
+ the sum if the node has pods which matches the corresponding
+ podAffinityTerm; the node(s) with the highest sum
+ are the most preferred.
items:
- description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
+ description: The weights of all of the matched WeightedPodAffinityTerm
+ fields are added per-node to find the most preferred
+ node(s)
properties:
podAffinityTerm:
- description: Required. A pod affinity term, associated with the corresponding weight.
+ description: Required. A pod affinity term,
+ associated with the corresponding weight.
properties:
labelSelector:
- description: A label query over a set of resources, in this case pods.
+ description: A label query over a set of
+ resources, in this case pods.
properties:
matchExpressions:
- description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
+ description: matchExpressions is a list
+ of label selector requirements. The
+ requirements are ANDed.
items:
- description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
+ description: A label selector requirement
+ is a selector that contains values,
+ a key, and an operator that relates
+ the key and values.
properties:
key:
- description: key is the label key that the selector applies to.
+ description: key is the label
+ key that the selector applies
+ to.
type: string
operator:
- description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
+ description: operator represents
+ a key's relationship to a set
+ of values. Valid operators are
+ In, NotIn, Exists and DoesNotExist.
type: string
values:
- description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
+ description: values is an array
+ of string values. If the operator
+ is In or NotIn, the values array
+ must be non-empty. If the operator
+ is Exists or DoesNotExist, the
+ values array must be empty.
+ This array is replaced during
+ a strategic merge patch.
items:
type: string
type: array
@@ -1682,22 +3107,42 @@ spec:
matchLabels:
additionalProperties:
type: string
- description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
+ description: matchLabels is a map of
+ {key,value} pairs. A single {key,value}
+ in the matchLabels map is equivalent
+ to an element of matchExpressions,
+ whose key field is "key", the operator
+ is "In", and the values array contains
+ only "value". The requirements are
+ ANDed.
type: object
type: object
namespaces:
- description: namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means "this pod's namespace"
+ description: namespaces specifies which
+ namespaces the labelSelector applies to
+ (matches against); null or empty list
+ means "this pod's namespace"
items:
type: string
type: array
topologyKey:
- description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
+ description: This pod should be co-located
+ (affinity) or not co-located (anti-affinity)
+ with the pods matching the labelSelector
+ in the specified namespaces, where co-located
+ is defined as running on a node whose
+ value of the label with key topologyKey
+ matches that of any node on which any
+ of the selected pods is running. Empty
+ topologyKey is not allowed.
type: string
required:
- topologyKey
type: object
weight:
- description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
+ description: weight associated with matching
+ the corresponding podAffinityTerm, in the
+ range 1-100.
format: int32
type: integer
required:
@@ -1706,26 +3151,59 @@ spec:
type: object
type: array
requiredDuringSchedulingIgnoredDuringExecution:
- description: If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
+ description: If the anti-affinity requirements specified
+ by this field are not met at scheduling time, the
+ pod will not be scheduled onto the node. If the
+ anti-affinity requirements specified by this field
+ cease to be met at some point during pod execution
+ (e.g. due to a pod label update), the system may
+ or may not try to eventually evict the pod from
+ its node. When there are multiple elements, the
+ lists of nodes corresponding to each podAffinityTerm
+ are intersected, i.e. all terms must be satisfied.
items:
- description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
+ description: Defines a set of pods (namely those
+ matching the labelSelector relative to the given
+ namespace(s)) that this pod should be co-located
+ (affinity) or not co-located (anti-affinity) with,
+ where co-located is defined as running on a node
+ whose value of the label with key <topologyKey>
+ matches that of any node on which a pod of the
+ set of pods is running
properties:
labelSelector:
- description: A label query over a set of resources, in this case pods.
+ description: A label query over a set of resources,
+ in this case pods.
properties:
matchExpressions:
- description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
+ description: matchExpressions is a list
+ of label selector requirements. The requirements
+ are ANDed.
items:
- description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
+ description: A label selector requirement
+ is a selector that contains values,
+ a key, and an operator that relates
+ the key and values.
properties:
key:
- description: key is the label key that the selector applies to.
+ description: key is the label key
+ that the selector applies to.
type: string
operator:
- description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
+ description: operator represents a
+ key's relationship to a set of values.
+ Valid operators are In, NotIn, Exists
+ and DoesNotExist.
type: string
values:
- description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
+ description: values is an array of
+ string values. If the operator is
+ In or NotIn, the values array must
+ be non-empty. If the operator is
+ Exists or DoesNotExist, the values
+ array must be empty. This array
+ is replaced during a strategic merge
+ patch.
items:
type: string
type: array
@@ -1737,16 +3215,30 @@ spec:
matchLabels:
additionalProperties:
type: string
- description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
+ description: matchLabels is a map of {key,value}
+ pairs. A single {key,value} in the matchLabels
+ map is equivalent to an element of matchExpressions,
+ whose key field is "key", the operator
+ is "In", and the values array contains
+ only "value". The requirements are ANDed.
type: object
type: object
namespaces:
- description: namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means "this pod's namespace"
+ description: namespaces specifies which namespaces
+ the labelSelector applies to (matches against);
+ null or empty list means "this pod's namespace"
items:
type: string
type: array
topologyKey:
- description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
+ description: This pod should be co-located (affinity)
+ or not co-located (anti-affinity) with the
+ pods matching the labelSelector in the specified
+ namespaces, where co-located is defined as
+ running on a node whose value of the label
+ with key topologyKey matches that of any node
+ on which any of the selected pods is running.
+ Empty topologyKey is not allowed.
type: string
required:
- topologyKey
@@ -1757,97 +3249,191 @@ spec:
nodeSelector:
additionalProperties:
type: string
- description: 'nodeSelector is the node selector applied to the relevant kind of pods It specifies a map of key-value pairs: for the pod to be eligible to run on a node, the node must have each of the indicated key-value pairs as labels (it can have additional labels as well). See https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector'
+ description: 'nodeSelector is the node selector applied to
+ the relevant kind of pods It specifies a map of key-value
+ pairs: for the pod to be eligible to run on a node, the
+ node must have each of the indicated key-value pairs as
+ labels (it can have additional labels as well). See https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector'
type: object
tolerations:
- description: tolerations is a list of tolerations applied to the relevant kind of pods See https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ for more info. These are additional tolerations other than default ones.
+ description: tolerations is a list of tolerations applied
+ to the relevant kind of pods See https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
+ for more info. These are additional tolerations other than
+ default ones.
items:
- description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
+ description: The pod this Toleration is attached to tolerates
+ any taint that matches the triple <key,value,effect> using
+ the matching operator <operator>.
properties:
effect:
- description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
+ description: Effect indicates the taint effect to match.
+ Empty means match all taint effects. When specified,
+ allowed values are NoSchedule, PreferNoSchedule and
+ NoExecute.
type: string
key:
- description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
+ description: Key is the taint key that the toleration
+ applies to. Empty means match all taint keys. If the
+ key is empty, operator must be Exists; this combination
+ means to match all values and all keys.
type: string
operator:
- description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
+ description: Operator represents a key's relationship
+ to the value. Valid operators are Exists and Equal.
+ Defaults to Equal. Exists is equivalent to wildcard
+ for value, so that a pod can tolerate all taints of
+ a particular category.
type: string
tolerationSeconds:
- description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
+ description: TolerationSeconds represents the period
+ of time the toleration (which must be of effect NoExecute,
+ otherwise this field is ignored) tolerates the taint.
+ By default, it is not set, which means tolerate the
+ taint forever (do not evict). Zero and negative values
+ will be treated as 0 (evict immediately) by the system.
format: int64
type: integer
value:
- description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
+ description: Value is the taint value the toleration
+ matches to. If the operator is Exists, the value should
+ be empty, otherwise just a regular string.
type: string
type: object
type: array
type: object
+ replicas:
+ description: replicas indicates how many replicas should be created
+ for each KubeVirt infrastructure component (like virt-api or
+ virt-controller). Defaults to 2.
+ type: integer
type: object
monitorAccount:
- description: The name of the Prometheus service account that needs read-access to KubeVirt endpoints Defaults to prometheus-k8s
+ description: The name of the Prometheus service account that needs
+ read-access to KubeVirt endpoints Defaults to prometheus-k8s
type: string
monitorNamespace:
description: The namespace Prometheus is deployed in Defaults to openshift-monitor
type: string
+ productComponent:
+ description: Designate the apps.kubevirt.io/component label for KubeVirt
+ components. Useful if KubeVirt is included as part of a product.
+ If ProductComponent is not specified, the component label default
+ value is kubevirt.
+ type: string
productName:
- description: Designate the apps.kubevirt.io/part-of label for KubeVirt components. Useful if KubeVirt is included as part of a product. If ProductName is not specified, the part-of label will be omitted.
+ description: Designate the apps.kubevirt.io/part-of label for KubeVirt
+ components. Useful if KubeVirt is included as part of a product.
+ If ProductName is not specified, the part-of label will be omitted.
type: string
productVersion:
- description: Designate the apps.kubevirt.io/version label for KubeVirt components. Useful if KubeVirt is included as part of a product. If ProductVersion is not specified, KubeVirt's version will be used.
+ description: Designate the apps.kubevirt.io/version label for KubeVirt
+ components. Useful if KubeVirt is included as part of a product.
+ If ProductVersion is not specified, KubeVirt's version will be used.
type: string
uninstallStrategy:
- description: Specifies if kubevirt can be deleted if workloads are still present. This is mainly a precaution to avoid accidental data loss
+ description: Specifies if kubevirt can be deleted if workloads are
+ still present. This is mainly a precaution to avoid accidental data
+ loss
type: string
workloadUpdateStrategy:
- description: WorkloadUpdateStrategy defines at the cluster level how to handle automated workload updates
+ description: WorkloadUpdateStrategy defines at the cluster level how
+ to handle automated workload updates
properties:
batchEvictionInterval:
- description: "BatchEvictionInterval Represents the interval to wait before issuing the next batch of shutdowns \n Defaults to 1 minute"
+ description: "BatchEvictionInterval Represents the interval to
+ wait before issuing the next batch of shutdowns \n Defaults
+ to 1 minute"
type: string
batchEvictionSize:
- description: "BatchEvictionSize Represents the number of VMIs that can be forced updated per the BatchShutdownInteral interval \n Defaults to 10"
+ description: "BatchEvictionSize Represents the number of VMIs
+ that can be forced updated per the BatchShutdownInteral interval
+ \n Defaults to 10"
type: integer
workloadUpdateMethods:
- description: "WorkloadUpdateMethods defines the methods that can be used to disrupt workloads during automated workload updates. When multiple methods are present, the least disruptive method takes precedence over more disruptive methods. For example if both LiveMigrate and Shutdown methods are listed, only VMs which are not live migratable will be restarted/shutdown \n An empty list defaults to no automated workload updating"
+ description: "WorkloadUpdateMethods defines the methods that can
+ be used to disrupt workloads during automated workload updates.
+ When multiple methods are present, the least disruptive method
+ takes precedence over more disruptive methods. For example if
+ both LiveMigrate and Shutdown methods are listed, only VMs which
+ are not live migratable will be restarted/shutdown \n An empty
+ list defaults to no automated workload updating"
items:
type: string
type: array
x-kubernetes-list-type: atomic
type: object
workloads:
- description: selectors and tolerations that should apply to KubeVirt workloads
+ description: selectors and tolerations that should apply to KubeVirt
+ workloads
properties:
nodePlacement:
- description: nodePlacement decsribes scheduling confiuguration for specific KubeVirt components
+ description: nodePlacement describes scheduling configuration
+ for specific KubeVirt components
properties:
affinity:
- description: affinity enables pod affinity/anti-affinity placement expanding the types of constraints that can be expressed with nodeSelector. affinity is going to be applied to the relevant kind of pods in parallel with nodeSelector See https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity
+ description: affinity enables pod affinity/anti-affinity placement
+ expanding the types of constraints that can be expressed
+ with nodeSelector. affinity is going to be applied to the
+ relevant kind of pods in parallel with nodeSelector See
+ https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity
properties:
nodeAffinity:
- description: Describes node affinity scheduling rules for the pod.
+ description: Describes node affinity scheduling rules
+ for the pod.
properties:
preferredDuringSchedulingIgnoredDuringExecution:
- description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
+ description: The scheduler will prefer to schedule
+ pods to nodes that satisfy the affinity expressions
+ specified by this field, but it may choose a node
+ that violates one or more of the expressions. The
+ node that is most preferred is the one with the
+ greatest sum of weights, i.e. for each node that
+ meets all of the scheduling requirements (resource
+ request, requiredDuringScheduling affinity expressions,
+ etc.), compute a sum by iterating through the elements
+ of this field and adding "weight" to the sum if
+ the node matches the corresponding matchExpressions;
+ the node(s) with the highest sum are the most preferred.
items:
- description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
+ description: An empty preferred scheduling term
+ matches all objects with implicit weight 0 (i.e.
+ it's a no-op). A null preferred scheduling term
+ matches no objects (i.e. is also a no-op).
properties:
preference:
- description: A node selector term, associated with the corresponding weight.
+ description: A node selector term, associated
+ with the corresponding weight.
properties:
matchExpressions:
- description: A list of node selector requirements by node's labels.
+ description: A list of node selector requirements
+ by node's labels.
items:
- description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
+ description: A node selector requirement
+ is a selector that contains values,
+ a key, and an operator that relates
+ the key and values.
properties:
key:
- description: The label key that the selector applies to.
+ description: The label key that the
+ selector applies to.
type: string
operator:
- description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
+ description: Represents a key's relationship
+ to a set of values. Valid operators
+ are In, NotIn, Exists, DoesNotExist.
+ Gt, and Lt.
type: string
values:
- description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
+ description: An array of string values.
+ If the operator is In or NotIn,
+ the values array must be non-empty.
+ If the operator is Exists or DoesNotExist,
+ the values array must be empty.
+ If the operator is Gt or Lt, the
+ values array must have a single
+ element, which will be interpreted
+ as an integer. This array is replaced
+ during a strategic merge patch.
items:
type: string
type: array
@@ -1857,18 +3443,35 @@ spec:
type: object
type: array
matchFields:
- description: A list of node selector requirements by node's fields.
+ description: A list of node selector requirements
+ by node's fields.
items:
- description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
+ description: A node selector requirement
+ is a selector that contains values,
+ a key, and an operator that relates
+ the key and values.
properties:
key:
- description: The label key that the selector applies to.
+ description: The label key that the
+ selector applies to.
type: string
operator:
- description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
+ description: Represents a key's relationship
+ to a set of values. Valid operators
+ are In, NotIn, Exists, DoesNotExist.
+ Gt, and Lt.
type: string
values:
- description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
+ description: An array of string values.
+ If the operator is In or NotIn,
+ the values array must be non-empty.
+ If the operator is Exists or DoesNotExist,
+ the values array must be empty.
+ If the operator is Gt or Lt, the
+ values array must have a single
+ element, which will be interpreted
+ as an integer. This array is replaced
+ during a strategic merge patch.
items:
type: string
type: array
@@ -1879,7 +3482,9 @@ spec:
type: array
type: object
weight:
- description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
+ description: Weight associated with matching
+ the corresponding nodeSelectorTerm, in the
+ range 1-100.
format: int32
type: integer
required:
@@ -1888,26 +3493,53 @@ spec:
type: object
type: array
requiredDuringSchedulingIgnoredDuringExecution:
- description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
+ description: If the affinity requirements specified
+ by this field are not met at scheduling time, the
+ pod will not be scheduled onto the node. If the
+ affinity requirements specified by this field cease
+ to be met at some point during pod execution (e.g.
+ due to an update), the system may or may not try
+ to eventually evict the pod from its node.
properties:
nodeSelectorTerms:
- description: Required. A list of node selector terms. The terms are ORed.
+ description: Required. A list of node selector
+ terms. The terms are ORed.
items:
- description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
+ description: A null or empty node selector term
+ matches no objects. The requirements of them
+ are ANDed. The TopologySelectorTerm type implements
+ a subset of the NodeSelectorTerm.
properties:
matchExpressions:
- description: A list of node selector requirements by node's labels.
+ description: A list of node selector requirements
+ by node's labels.
items:
- description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
+ description: A node selector requirement
+ is a selector that contains values,
+ a key, and an operator that relates
+ the key and values.
properties:
key:
- description: The label key that the selector applies to.
+ description: The label key that the
+ selector applies to.
type: string
operator:
- description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
+ description: Represents a key's relationship
+ to a set of values. Valid operators
+ are In, NotIn, Exists, DoesNotExist.
+ Gt, and Lt.
type: string
values:
- description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
+ description: An array of string values.
+ If the operator is In or NotIn,
+ the values array must be non-empty.
+ If the operator is Exists or DoesNotExist,
+ the values array must be empty.
+ If the operator is Gt or Lt, the
+ values array must have a single
+ element, which will be interpreted
+ as an integer. This array is replaced
+ during a strategic merge patch.
items:
type: string
type: array
@@ -1917,18 +3549,35 @@ spec:
type: object
type: array
matchFields:
- description: A list of node selector requirements by node's fields.
+ description: A list of node selector requirements
+ by node's fields.
items:
- description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
+ description: A node selector requirement
+ is a selector that contains values,
+ a key, and an operator that relates
+ the key and values.
properties:
key:
- description: The label key that the selector applies to.
+ description: The label key that the
+ selector applies to.
type: string
operator:
- description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
+ description: Represents a key's relationship
+ to a set of values. Valid operators
+ are In, NotIn, Exists, DoesNotExist.
+ Gt, and Lt.
type: string
values:
- description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
+ description: An array of string values.
+ If the operator is In or NotIn,
+ the values array must be non-empty.
+ If the operator is Exists or DoesNotExist,
+ the values array must be empty.
+ If the operator is Gt or Lt, the
+ values array must have a single
+ element, which will be interpreted
+ as an integer. This array is replaced
+ during a strategic merge patch.
items:
type: string
type: array
@@ -1944,32 +3593,67 @@ spec:
type: object
type: object
podAffinity:
- description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
+ description: Describes pod affinity scheduling rules (e.g.
+ co-locate this pod in the same node, zone, etc. as some
+ other pod(s)).
properties:
preferredDuringSchedulingIgnoredDuringExecution:
- description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
+ description: The scheduler will prefer to schedule
+ pods to nodes that satisfy the affinity expressions
+ specified by this field, but it may choose a node
+ that violates one or more of the expressions. The
+ node that is most preferred is the one with the
+ greatest sum of weights, i.e. for each node that
+ meets all of the scheduling requirements (resource
+ request, requiredDuringScheduling affinity expressions,
+ etc.), compute a sum by iterating through the elements
+ of this field and adding "weight" to the sum if
+ the node has pods which matches the corresponding
+ podAffinityTerm; the node(s) with the highest sum
+ are the most preferred.
items:
- description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
+ description: The weights of all of the matched WeightedPodAffinityTerm
+ fields are added per-node to find the most preferred
+ node(s)
properties:
podAffinityTerm:
- description: Required. A pod affinity term, associated with the corresponding weight.
+ description: Required. A pod affinity term,
+ associated with the corresponding weight.
properties:
labelSelector:
- description: A label query over a set of resources, in this case pods.
+ description: A label query over a set of
+ resources, in this case pods.
properties:
matchExpressions:
- description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
+ description: matchExpressions is a list
+ of label selector requirements. The
+ requirements are ANDed.
items:
- description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
+ description: A label selector requirement
+ is a selector that contains values,
+ a key, and an operator that relates
+ the key and values.
properties:
key:
- description: key is the label key that the selector applies to.
+ description: key is the label
+ key that the selector applies
+ to.
type: string
operator:
- description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
+ description: operator represents
+ a key's relationship to a set
+ of values. Valid operators are
+ In, NotIn, Exists and DoesNotExist.
type: string
values:
- description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
+ description: values is an array
+ of string values. If the operator
+ is In or NotIn, the values array
+ must be non-empty. If the operator
+ is Exists or DoesNotExist, the
+ values array must be empty.
+ This array is replaced during
+ a strategic merge patch.
items:
type: string
type: array
@@ -1981,22 +3665,42 @@ spec:
matchLabels:
additionalProperties:
type: string
- description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
+ description: matchLabels is a map of
+ {key,value} pairs. A single {key,value}
+ in the matchLabels map is equivalent
+ to an element of matchExpressions,
+ whose key field is "key", the operator
+ is "In", and the values array contains
+ only "value". The requirements are
+ ANDed.
type: object
type: object
namespaces:
- description: namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means "this pod's namespace"
+ description: namespaces specifies which
+ namespaces the labelSelector applies to
+ (matches against); null or empty list
+ means "this pod's namespace"
items:
type: string
type: array
topologyKey:
- description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
+ description: This pod should be co-located
+ (affinity) or not co-located (anti-affinity)
+ with the pods matching the labelSelector
+ in the specified namespaces, where co-located
+ is defined as running on a node whose
+ value of the label with key topologyKey
+ matches that of any node on which any
+ of the selected pods is running. Empty
+ topologyKey is not allowed.
type: string
required:
- topologyKey
type: object
weight:
- description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
+ description: weight associated with matching
+ the corresponding podAffinityTerm, in the
+ range 1-100.
format: int32
type: integer
required:
@@ -2005,26 +3709,59 @@ spec:
type: object
type: array
requiredDuringSchedulingIgnoredDuringExecution:
- description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
+ description: If the affinity requirements specified
+ by this field are not met at scheduling time, the
+ pod will not be scheduled onto the node. If the
+ affinity requirements specified by this field cease
+ to be met at some point during pod execution (e.g.
+ due to a pod label update), the system may or may
+ not try to eventually evict the pod from its node.
+ When there are multiple elements, the lists of nodes
+ corresponding to each podAffinityTerm are intersected,
+ i.e. all terms must be satisfied.
items:
- description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
+ description: Defines a set of pods (namely those
+ matching the labelSelector relative to the given
+ namespace(s)) that this pod should be co-located
+ (affinity) or not co-located (anti-affinity) with,
+ where co-located is defined as running on a node
+ whose value of the label with key <topologyKey>
+ matches that of any node on which a pod of the
+ set of pods is running
properties:
labelSelector:
- description: A label query over a set of resources, in this case pods.
+ description: A label query over a set of resources,
+ in this case pods.
properties:
matchExpressions:
- description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
+ description: matchExpressions is a list
+ of label selector requirements. The requirements
+ are ANDed.
items:
- description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
+ description: A label selector requirement
+ is a selector that contains values,
+ a key, and an operator that relates
+ the key and values.
properties:
key:
- description: key is the label key that the selector applies to.
+ description: key is the label key
+ that the selector applies to.
type: string
operator:
- description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
+ description: operator represents a
+ key's relationship to a set of values.
+ Valid operators are In, NotIn, Exists
+ and DoesNotExist.
type: string
values:
- description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
+ description: values is an array of
+ string values. If the operator is
+ In or NotIn, the values array must
+ be non-empty. If the operator is
+ Exists or DoesNotExist, the values
+ array must be empty. This array
+ is replaced during a strategic merge
+ patch.
items:
type: string
type: array
@@ -2036,16 +3773,30 @@ spec:
matchLabels:
additionalProperties:
type: string
- description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
+ description: matchLabels is a map of {key,value}
+ pairs. A single {key,value} in the matchLabels
+ map is equivalent to an element of matchExpressions,
+ whose key field is "key", the operator
+ is "In", and the values array contains
+ only "value". The requirements are ANDed.
type: object
type: object
namespaces:
- description: namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means "this pod's namespace"
+ description: namespaces specifies which namespaces
+ the labelSelector applies to (matches against);
+ null or empty list means "this pod's namespace"
items:
type: string
type: array
topologyKey:
- description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
+ description: This pod should be co-located (affinity)
+ or not co-located (anti-affinity) with the
+ pods matching the labelSelector in the specified
+ namespaces, where co-located is defined as
+ running on a node whose value of the label
+ with key topologyKey matches that of any node
+ on which any of the selected pods is running.
+ Empty topologyKey is not allowed.
type: string
required:
- topologyKey
@@ -2053,32 +3804,67 @@ spec:
type: array
type: object
podAntiAffinity:
- description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
+ description: Describes pod anti-affinity scheduling rules
+ (e.g. avoid putting this pod in the same node, zone,
+ etc. as some other pod(s)).
properties:
preferredDuringSchedulingIgnoredDuringExecution:
- description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
+ description: The scheduler will prefer to schedule
+ pods to nodes that satisfy the anti-affinity expressions
+ specified by this field, but it may choose a node
+ that violates one or more of the expressions. The
+ node that is most preferred is the one with the
+ greatest sum of weights, i.e. for each node that
+ meets all of the scheduling requirements (resource
+ request, requiredDuringScheduling anti-affinity
+ expressions, etc.), compute a sum by iterating through
+ the elements of this field and adding "weight" to
+ the sum if the node has pods which matches the corresponding
+ podAffinityTerm; the node(s) with the highest sum
+ are the most preferred.
items:
- description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
+ description: The weights of all of the matched WeightedPodAffinityTerm
+ fields are added per-node to find the most preferred
+ node(s)
properties:
podAffinityTerm:
- description: Required. A pod affinity term, associated with the corresponding weight.
+ description: Required. A pod affinity term,
+ associated with the corresponding weight.
properties:
labelSelector:
- description: A label query over a set of resources, in this case pods.
+ description: A label query over a set of
+ resources, in this case pods.
properties:
matchExpressions:
- description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
+ description: matchExpressions is a list
+ of label selector requirements. The
+ requirements are ANDed.
items:
- description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
+ description: A label selector requirement
+ is a selector that contains values,
+ a key, and an operator that relates
+ the key and values.
properties:
key:
- description: key is the label key that the selector applies to.
+ description: key is the label
+ key that the selector applies
+ to.
type: string
operator:
- description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
+ description: operator represents
+ a key's relationship to a set
+ of values. Valid operators are
+ In, NotIn, Exists and DoesNotExist.
type: string
values:
- description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
+ description: values is an array
+ of string values. If the operator
+ is In or NotIn, the values array
+ must be non-empty. If the operator
+ is Exists or DoesNotExist, the
+ values array must be empty.
+ This array is replaced during
+ a strategic merge patch.
items:
type: string
type: array
@@ -2090,22 +3876,42 @@ spec:
matchLabels:
additionalProperties:
type: string
- description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
+ description: matchLabels is a map of
+ {key,value} pairs. A single {key,value}
+ in the matchLabels map is equivalent
+ to an element of matchExpressions,
+ whose key field is "key", the operator
+ is "In", and the values array contains
+ only "value". The requirements are
+ ANDed.
type: object
type: object
namespaces:
- description: namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means "this pod's namespace"
+ description: namespaces specifies which
+ namespaces the labelSelector applies to
+ (matches against); null or empty list
+ means "this pod's namespace"
items:
type: string
type: array
topologyKey:
- description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
+ description: This pod should be co-located
+ (affinity) or not co-located (anti-affinity)
+ with the pods matching the labelSelector
+ in the specified namespaces, where co-located
+ is defined as running on a node whose
+ value of the label with key topologyKey
+ matches that of any node on which any
+ of the selected pods is running. Empty
+ topologyKey is not allowed.
type: string
required:
- topologyKey
type: object
weight:
- description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
+ description: weight associated with matching
+ the corresponding podAffinityTerm, in the
+ range 1-100.
format: int32
type: integer
required:
@@ -2114,26 +3920,59 @@ spec:
type: object
type: array
requiredDuringSchedulingIgnoredDuringExecution:
- description: If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
+ description: If the anti-affinity requirements specified
+ by this field are not met at scheduling time, the
+ pod will not be scheduled onto the node. If the
+ anti-affinity requirements specified by this field
+ cease to be met at some point during pod execution
+ (e.g. due to a pod label update), the system may
+ or may not try to eventually evict the pod from
+ its node. When there are multiple elements, the
+ lists of nodes corresponding to each podAffinityTerm
+ are intersected, i.e. all terms must be satisfied.
items:
- description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
+ description: Defines a set of pods (namely those
+ matching the labelSelector relative to the given
+ namespace(s)) that this pod should be co-located
+ (affinity) or not co-located (anti-affinity) with,
+ where co-located is defined as running on a node
+ whose value of the label with key <topologyKey>
+ matches that of any node on which a pod of the
+ set of pods is running
properties:
labelSelector:
- description: A label query over a set of resources, in this case pods.
+ description: A label query over a set of resources,
+ in this case pods.
properties:
matchExpressions:
- description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
+ description: matchExpressions is a list
+ of label selector requirements. The requirements
+ are ANDed.
items:
- description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
+ description: A label selector requirement
+ is a selector that contains values,
+ a key, and an operator that relates
+ the key and values.
properties:
key:
- description: key is the label key that the selector applies to.
+ description: key is the label key
+ that the selector applies to.
type: string
operator:
- description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
+ description: operator represents a
+ key's relationship to a set of values.
+ Valid operators are In, NotIn, Exists
+ and DoesNotExist.
type: string
values:
- description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
+ description: values is an array of
+ string values. If the operator is
+ In or NotIn, the values array must
+ be non-empty. If the operator is
+ Exists or DoesNotExist, the values
+ array must be empty. This array
+ is replaced during a strategic merge
+ patch.
items:
type: string
type: array
@@ -2145,16 +3984,30 @@ spec:
matchLabels:
additionalProperties:
type: string
- description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
+ description: matchLabels is a map of {key,value}
+ pairs. A single {key,value} in the matchLabels
+ map is equivalent to an element of matchExpressions,
+ whose key field is "key", the operator
+ is "In", and the values array contains
+ only "value". The requirements are ANDed.
type: object
type: object
namespaces:
- description: namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means "this pod's namespace"
+ description: namespaces specifies which namespaces
+ the labelSelector applies to (matches against);
+ null or empty list means "this pod's namespace"
items:
type: string
type: array
topologyKey:
- description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
+ description: This pod should be co-located (affinity)
+ or not co-located (anti-affinity) with the
+ pods matching the labelSelector in the specified
+ namespaces, where co-located is defined as
+ running on a node whose value of the label
+ with key topologyKey matches that of any node
+ on which any of the selected pods is running.
+ Empty topologyKey is not allowed.
type: string
required:
- topologyKey
@@ -2165,40 +4018,73 @@ spec:
nodeSelector:
additionalProperties:
type: string
- description: 'nodeSelector is the node selector applied to the relevant kind of pods It specifies a map of key-value pairs: for the pod to be eligible to run on a node, the node must have each of the indicated key-value pairs as labels (it can have additional labels as well). See https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector'
+ description: 'nodeSelector is the node selector applied to
+ the relevant kind of pods It specifies a map of key-value
+ pairs: for the pod to be eligible to run on a node, the
+ node must have each of the indicated key-value pairs as
+ labels (it can have additional labels as well). See https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector'
type: object
tolerations:
- description: tolerations is a list of tolerations applied to the relevant kind of pods See https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ for more info. These are additional tolerations other than default ones.
+ description: tolerations is a list of tolerations applied
+ to the relevant kind of pods See https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
+ for more info. These are additional tolerations other than
+ default ones.
items:
- description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
+ description: The pod this Toleration is attached to tolerates
+ any taint that matches the triple <key,value,effect> using
+ the matching operator <operator>.
properties:
effect:
- description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
+ description: Effect indicates the taint effect to match.
+ Empty means match all taint effects. When specified,
+ allowed values are NoSchedule, PreferNoSchedule and
+ NoExecute.
type: string
key:
- description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
+ description: Key is the taint key that the toleration
+ applies to. Empty means match all taint keys. If the
+ key is empty, operator must be Exists; this combination
+ means to match all values and all keys.
type: string
operator:
- description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
+ description: Operator represents a key's relationship
+ to the value. Valid operators are Exists and Equal.
+ Defaults to Equal. Exists is equivalent to wildcard
+ for value, so that a pod can tolerate all taints of
+ a particular category.
type: string
tolerationSeconds:
- description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
+ description: TolerationSeconds represents the period
+ of time the toleration (which must be of effect NoExecute,
+ otherwise this field is ignored) tolerates the taint.
+ By default, it is not set, which means tolerate the
+ taint forever (do not evict). Zero and negative values
+ will be treated as 0 (evict immediately) by the system.
format: int64
type: integer
value:
- description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
+ description: Value is the taint value the toleration
+ matches to. If the operator is Exists, the value should
+ be empty, otherwise just a regular string.
type: string
type: object
type: array
type: object
+ replicas:
+ description: replicas indicates how many replicas should be created
+ for each KubeVirt infrastructure component (like virt-api or
+ virt-controller). Defaults to 2.
+ type: integer
type: object
type: object
status:
- description: KubeVirtStatus represents information pertaining to a KubeVirt deployment.
+ description: KubeVirtStatus represents information pertaining to a KubeVirt
+ deployment.
properties:
conditions:
items:
- description: KubeVirtCondition represents a condition of a KubeVirt deployment
+ description: KubeVirtCondition represents a condition of a KubeVirt
+ deployment
properties:
lastProbeTime:
format: date-time
@@ -2223,16 +4109,20 @@ spec:
type: array
generations:
items:
- description: GenerationStatus keeps track of the generation for a given resource so that decisions about forced updates can be made.
+ description: GenerationStatus keeps track of the generation for
+ a given resource so that decisions about forced updates can be
+ made.
properties:
group:
description: group is the group of the thing you're tracking
type: string
hash:
- description: hash is an optional field set for resources without generation that are content sensitive like secrets and configmaps
+ description: hash is an optional field set for resources without
+ generation that are content sensitive like secrets and configmaps
type: string
lastGeneration:
- description: lastGeneration is the last generation of the workload controller involved
+ description: lastGeneration is the last generation of the workload
+ controller involved
format: int64
type: integer
name:
@@ -2242,7 +4132,8 @@ spec:
description: namespace is where the thing you're tracking is
type: string
resource:
- description: resource is the resource type of the thing you're tracking
+ description: resource is the resource type of the thing you're
+ tracking
type: string
required:
- group
@@ -2265,7 +4156,8 @@ spec:
outdatedVirtualMachineInstanceWorkloads:
type: integer
phase:
- description: KubeVirtPhase is a label for the phase of a KubeVirt deployment at the current time.
+ description: KubeVirtPhase is a label for the phase of a KubeVirt
+ deployment at the current time.
type: string
targetDeploymentConfig:
type: string
diff --git a/kud/deployment_infra/helm/kubevirt-operator/templates/clusterrole.yaml b/kud/deployment_infra/helm/kubevirt-operator/templates/clusterrole.yaml
index ae8faf3b..43db590f 100644
--- a/kud/deployment_infra/helm/kubevirt-operator/templates/clusterrole.yaml
+++ b/kud/deployment_infra/helm/kubevirt-operator/templates/clusterrole.yaml
@@ -30,14 +30,6 @@ metadata:
kubevirt.io: ""
rules:
- apiGroups:
- - ""
- resources:
- - secrets
- verbs:
- - create
- - get
- - update
-- apiGroups:
- kubevirt.io
resources:
- kubevirts
@@ -84,6 +76,16 @@ rules:
- apiGroups:
- apps
resources:
+ - controllerrevisions
+ verbs:
+ - watch
+ - list
+ - create
+ - delete
+ - patch
+- apiGroups:
+ - apps
+ resources:
- deployments
- daemonsets
verbs:
@@ -192,11 +194,16 @@ rules:
- apiGroups:
- subresources.kubevirt.io
resources:
- - virtualmachines/start
- - virtualmachines/stop
- - virtualmachines/restart
+ - virtualmachineinstances/pause
+ - virtualmachineinstances/unpause
+ - virtualmachineinstances/addvolume
+ - virtualmachineinstances/removevolume
+ - virtualmachineinstances/freeze
+ - virtualmachineinstances/unfreeze
+ - virtualmachineinstances/softreboot
verbs:
- - put
+ - update
+ - get
- apiGroups:
- ""
resources:
@@ -290,6 +297,30 @@ rules:
- list
- watch
- apiGroups:
+ - cdi.kubevirt.io
+ resources:
+ - datasources
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
+ - flavor.kubevirt.io
+ resources:
+ - virtualmachineflavors
+ - virtualmachineclusterflavors
+ verbs:
+ - list
+ - watch
+- apiGroups:
+ - migrations.kubevirt.io
+ resources:
+ - migrationpolicies
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
- ""
resources:
- configmaps
@@ -344,6 +375,12 @@ rules:
- apiGroups:
- ""
resources:
+ - pods/status
+ verbs:
+ - patch
+- apiGroups:
+ - ""
+ resources:
- nodes
verbs:
- get
@@ -358,6 +395,15 @@ rules:
verbs:
- list
- apiGroups:
+ - apps
+ resources:
+ - controllerrevisions
+ verbs:
+ - watch
+ - list
+ - create
+ - delete
+- apiGroups:
- ""
resources:
- persistentvolumeclaims
@@ -376,6 +422,19 @@ rules:
verbs:
- '*'
- apiGroups:
+ - pool.kubevirt.io
+ resources:
+ - virtualmachinepools
+ - virtualmachinepools/finalizers
+ verbs:
+ - watch
+ - list
+ - create
+ - delete
+ - update
+ - patch
+ - get
+- apiGroups:
- kubevirt.io
resources:
- '*'
@@ -386,8 +445,10 @@ rules:
resources:
- virtualmachineinstances/addvolume
- virtualmachineinstances/removevolume
+ - virtualmachineinstances/freeze
+ - virtualmachineinstances/unfreeze
+ - virtualmachineinstances/softreboot
verbs:
- - get
- update
- apiGroups:
- cdi.kubevirt.io
@@ -445,20 +506,36 @@ rules:
- list
- watch
- apiGroups:
- - kubevirt.io
+ - flavor.kubevirt.io
resources:
- - virtualmachineinstances
+ - virtualmachineflavors
+ - virtualmachineclusterflavors
verbs:
- - update
+ - list
+ - watch
+- apiGroups:
+ - migrations.kubevirt.io
+ resources:
+ - migrationpolicies
+ verbs:
+ - get
- list
- watch
- apiGroups:
- ""
resources:
- - persistentvolumeclaims
+ - namespaces
verbs:
- get
- apiGroups:
+ - kubevirt.io
+ resources:
+ - virtualmachineinstances
+ verbs:
+ - update
+ - list
+ - watch
+- apiGroups:
- ""
resources:
- nodes
@@ -499,6 +576,14 @@ rules:
- list
- watch
- apiGroups:
+ - migrations.kubevirt.io
+ resources:
+ - migrationpolicies
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
- ""
resources:
- configmaps
@@ -518,6 +603,9 @@ rules:
resources:
- virtualmachineinstances/console
- virtualmachineinstances/vnc
+ - virtualmachineinstances/guestosinfo
+ - virtualmachineinstances/filesystemlist
+ - virtualmachineinstances/userlist
verbs:
- get
- apiGroups:
@@ -527,8 +615,10 @@ rules:
- virtualmachineinstances/unpause
- virtualmachineinstances/addvolume
- virtualmachineinstances/removevolume
+ - virtualmachineinstances/freeze
+ - virtualmachineinstances/unfreeze
+ - virtualmachineinstances/softreboot
verbs:
- - get
- update
- apiGroups:
- subresources.kubevirt.io
@@ -571,10 +661,48 @@ rules:
- watch
- deletecollection
- apiGroups:
+ - flavor.kubevirt.io
+ resources:
+ - virtualmachineflavors
+ - virtualmachineclusterflavors
+ verbs:
+ - get
+ - delete
+ - create
+ - update
+ - patch
+ - list
+ - watch
+ - deletecollection
+- apiGroups:
+ - pool.kubevirt.io
+ resources:
+ - virtualmachinepools
+ verbs:
+ - get
+ - delete
+ - create
+ - update
+ - patch
+ - list
+ - watch
+ - deletecollection
+- apiGroups:
+ - migrations.kubevirt.io
+ resources:
+ - migrationpolicies
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
- subresources.kubevirt.io
resources:
- virtualmachineinstances/console
- virtualmachineinstances/vnc
+ - virtualmachineinstances/guestosinfo
+ - virtualmachineinstances/filesystemlist
+ - virtualmachineinstances/userlist
verbs:
- get
- apiGroups:
@@ -584,8 +712,10 @@ rules:
- virtualmachineinstances/unpause
- virtualmachineinstances/addvolume
- virtualmachineinstances/removevolume
+ - virtualmachineinstances/freeze
+ - virtualmachineinstances/unfreeze
+ - virtualmachineinstances/softreboot
verbs:
- - get
- update
- apiGroups:
- subresources.kubevirt.io
@@ -626,6 +756,31 @@ rules:
- list
- watch
- apiGroups:
+ - flavor.kubevirt.io
+ resources:
+ - virtualmachineflavors
+ - virtualmachineclusterflavors
+ verbs:
+ - get
+ - delete
+ - create
+ - update
+ - patch
+ - list
+ - watch
+- apiGroups:
+ - pool.kubevirt.io
+ resources:
+ - virtualmachinepools
+ verbs:
+ - get
+ - delete
+ - create
+ - update
+ - patch
+ - list
+ - watch
+- apiGroups:
- kubevirt.io
resources:
- kubevirts
@@ -633,6 +788,22 @@ rules:
- get
- list
- apiGroups:
+ - migrations.kubevirt.io
+ resources:
+ - migrationpolicies
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
+ - subresources.kubevirt.io
+ resources:
+ - virtualmachineinstances/guestosinfo
+ - virtualmachineinstances/filesystemlist
+ - virtualmachineinstances/userlist
+ verbs:
+ - get
+- apiGroups:
- kubevirt.io
resources:
- virtualmachines
@@ -655,6 +826,31 @@ rules:
- list
- watch
- apiGroups:
+ - flavor.kubevirt.io
+ resources:
+ - virtualmachineflavors
+ - virtualmachineclusterflavors
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
+ - pool.kubevirt.io
+ resources:
+ - virtualmachinepools
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
+ - migrations.kubevirt.io
+ resources:
+ - migrationpolicies
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
- authentication.k8s.io
resources:
- tokenreviews
diff --git a/kud/deployment_infra/helm/kubevirt-operator/templates/deployment.yaml b/kud/deployment_infra/helm/kubevirt-operator/templates/deployment.yaml
index 1cd64725..7e2f5d0e 100644
--- a/kud/deployment_infra/helm/kubevirt-operator/templates/deployment.yaml
+++ b/kud/deployment_infra/helm/kubevirt-operator/templates/deployment.yaml
@@ -6,7 +6,7 @@ metadata:
{{- include "kubevirt-operator.labels" . | nindent 4 }}
kubevirt.io: virt-operator
spec:
- replicas: 2
+ replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
{{- include "kubevirt-operator.selectorLabels" . | nindent 6 }}
@@ -15,12 +15,10 @@ spec:
type: RollingUpdate
template:
metadata:
- annotations:
- scheduler.alpha.kubernetes.io/critical-pod: ""
labels:
{{- include "kubevirt-operator.selectorLabels" . | nindent 8 }}
kubevirt.io: virt-operator
- prometheus.kubevirt.io: ""
+ prometheus.kubevirt.io: "true"
spec:
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
@@ -64,6 +62,8 @@ spec:
- mountPath: /etc/virt-operator/certificates
name: kubevirt-operator-certs
readOnly: true
+ - mountPath: /profile-data
+ name: profile-data
{{- with .Values.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
@@ -84,3 +84,5 @@ spec:
secret:
optional: true
secretName: kubevirt-operator-certs
+ - emptyDir: {}
+ name: profile-data
diff --git a/kud/deployment_infra/helm/kubevirt-operator/values.yaml b/kud/deployment_infra/helm/kubevirt-operator/values.yaml
index 3095ffd2..3c9fad7e 100644
--- a/kud/deployment_infra/helm/kubevirt-operator/values.yaml
+++ b/kud/deployment_infra/helm/kubevirt-operator/values.yaml
@@ -47,3 +47,5 @@ affinity:
tolerations:
- key: CriticalAddonsOnly
operator: Exists
+
+replicaCount: 2
diff --git a/kud/deployment_infra/helm/kubevirt/Chart.yaml b/kud/deployment_infra/helm/kubevirt/Chart.yaml
index 75d31626..0850d7ba 100644
--- a/kud/deployment_infra/helm/kubevirt/Chart.yaml
+++ b/kud/deployment_infra/helm/kubevirt/Chart.yaml
@@ -13,7 +13,7 @@
# limitations under the License.
apiVersion: v2
-appVersion: v0.41.0
+appVersion: v0.49.0
description: |
KubeVirt is a virtual machine management add-on for Kubernetes.
name: kubevirt
@@ -21,4 +21,4 @@ sources:
- https://github.com/kubevirt/kubevirt
home: https://github.com/kubevirt/kubevirt
type: application
-version: 0.1.0
+version: 0.1.1
diff --git a/kud/deployment_infra/helm/kubevirt/templates/kubevirt.yaml b/kud/deployment_infra/helm/kubevirt/templates/kubevirt.yaml
index c8f9d60a..597d0f73 100644
--- a/kud/deployment_infra/helm/kubevirt/templates/kubevirt.yaml
+++ b/kud/deployment_infra/helm/kubevirt/templates/kubevirt.yaml
@@ -1,4 +1,4 @@
-apiVersion: kubevirt.io/v1
+apiVersion: kubevirt.io/v1alpha3
kind: KubeVirt
metadata:
name: {{ include "kubevirt.fullname" . }}
@@ -36,6 +36,9 @@ spec:
{{- with .Values.monitorNamespace }}
monitorNamespace: {{ . }}
{{- end }}
+ {{- with .Values.productComponent }}
+ productComponent: {{ . }}
+ {{- end }}
{{- with .Values.productName }}
productName: {{ . }}
{{- end }}
diff --git a/kud/deployment_infra/helm/kubevirt/values.yaml b/kud/deployment_infra/helm/kubevirt/values.yaml
index 7349c40e..f694a63e 100644
--- a/kud/deployment_infra/helm/kubevirt/values.yaml
+++ b/kud/deployment_infra/helm/kubevirt/values.yaml
@@ -36,6 +36,12 @@ imagePullPolicy: IfNotPresent
# in. Defaults to openshift-monitor.
#monitorNamespace: ""
+# produceComponent designates the apps.kubevirt.io/component label for
+# KubeVirt components. Useful if KubeVirt is included as part of a
+# product. If ProductComponent is not specified, the component label
+# default value is kubevirt.
+#productComponent: ""
+
# productName designates the apps.kubevirt.io/part-of label for
# KubeVirt components. Useful if KubeVirt is included as part of a
# product. If ProductName is not specified, the part-of label will be