Merge "Update versions of addons"
[icn.git] / deploy / cdi-operator / base / cdi-operator.yaml
1 apiVersion: v1
2 kind: Namespace
3 metadata:
4   labels:
5     cdi.kubevirt.io: ""
6   name: cdi
7 ---
8 apiVersion: apiextensions.k8s.io/v1
9 kind: CustomResourceDefinition
10 metadata:
11   annotations:
12     controller-gen.kubebuilder.io/version: v0.7.0
13   name: cdis.cdi.kubevirt.io
14 spec:
15   group: cdi.kubevirt.io
16   names:
17     kind: CDI
18     listKind: CDIList
19     plural: cdis
20     shortNames:
21     - cdi
22     - cdis
23     singular: cdi
24   scope: Cluster
25   versions:
26   - additionalPrinterColumns:
27     - jsonPath: .metadata.creationTimestamp
28       name: Age
29       type: date
30     - jsonPath: .status.phase
31       name: Phase
32       type: string
33     name: v1alpha1
34     schema:
35       openAPIV3Schema:
36         description: CDI is the CDI Operator CRD
37         properties:
38           apiVersion:
39             description: 'APIVersion defines the versioned schema of this representation
40               of an object. Servers should convert recognized schemas to the latest
41               internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
42             type: string
43           kind:
44             description: 'Kind is a string value representing the REST resource this
45               object represents. Servers may infer this from the endpoint the client
46               submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
47             type: string
48           metadata:
49             type: object
50           spec:
51             description: CDISpec defines our specification for the CDI installation
52             properties:
53               certConfig:
54                 description: certificate configuration
55                 properties:
56                   ca:
57                     description: CA configuration CA certs are kept in the CA bundle
58                       as long as they are valid
59                     properties:
60                       duration:
61                         description: The requested 'duration' (i.e. lifetime) of the
62                           Certificate.
63                         type: string
64                       renewBefore:
65                         description: The amount of time before the currently issued
66                           certificate's `notAfter` time that we will begin to attempt
67                           to renew the certificate.
68                         type: string
69                     type: object
70                   server:
71                     description: Server configuration Certs are rotated and discarded
72                     properties:
73                       duration:
74                         description: The requested 'duration' (i.e. lifetime) of the
75                           Certificate.
76                         type: string
77                       renewBefore:
78                         description: The amount of time before the currently issued
79                           certificate's `notAfter` time that we will begin to attempt
80                           to renew the certificate.
81                         type: string
82                     type: object
83                 type: object
84               cloneStrategyOverride:
85                 description: 'Clone strategy override: should we use a host-assisted
86                   copy even if snapshots are available?'
87                 enum:
88                 - copy
89                 - snapshot
90                 type: string
91               config:
92                 description: CDIConfig at CDI level
93                 properties:
94                   featureGates:
95                     description: FeatureGates are a list of specific enabled feature
96                       gates
97                     items:
98                       type: string
99                     type: array
100                   filesystemOverhead:
101                     description: FilesystemOverhead describes the space reserved for
102                       overhead when using Filesystem volumes. A value is between 0
103                       and 1, if not defined it is 0.055 (5.5% overhead)
104                     properties:
105                       global:
106                         description: Global is how much space of a Filesystem volume
107                           should be reserved for overhead. This value is used unless
108                           overridden by a more specific value (per storageClass)
109                         pattern: ^(0(?:\.\d{1,3})?|1)$
110                         type: string
111                       storageClass:
112                         additionalProperties:
113                           description: 'Percent is a string that can only be a value
114                             between [0,1) (Note: we actually rely on reconcile to
115                             reject invalid values)'
116                           pattern: ^(0(?:\.\d{1,3})?|1)$
117                           type: string
118                         description: StorageClass specifies how much space of a Filesystem
119                           volume should be reserved for safety. The keys are the storageClass
120                           and the values are the overhead. This value overrides the
121                           global value
122                         type: object
123                     type: object
124                   importProxy:
125                     description: ImportProxy contains importer pod proxy configuration.
126                     properties:
127                       HTTPProxy:
128                         description: HTTPProxy is the URL http://<username>:<pswd>@<ip>:<port>
129                           of the import proxy for HTTP requests.  Empty means unset
130                           and will not result in the import pod env var.
131                         type: string
132                       HTTPSProxy:
133                         description: HTTPSProxy is the URL https://<username>:<pswd>@<ip>:<port>
134                           of the import proxy for HTTPS requests.  Empty means unset
135                           and will not result in the import pod env var.
136                         type: string
137                       noProxy:
138                         description: NoProxy is a comma-separated list of hostnames
139                           and/or CIDRs for which the proxy should not be used. Empty
140                           means unset and will not result in the import pod env var.
141                         type: string
142                       trustedCAProxy:
143                         description: "TrustedCAProxy is the name of a ConfigMap in
144                           the cdi namespace that contains a user-provided trusted
145                           certificate authority (CA) bundle. The TrustedCAProxy field
146                           is consumed by the import controller that is resposible
147                           for coping it to a config map named trusted-ca-proxy-bundle-cm
148                           in the cdi namespace. Here is an example of the ConfigMap
149                           (in yaml): \n apiVersion: v1 kind: ConfigMap metadata:   name:
150                           trusted-ca-proxy-bundle-cm   namespace: cdi data:   ca.pem:
151                           |     -----BEGIN CERTIFICATE----- \t   ... <base64 encoded
152                           cert> ... \t   -----END CERTIFICATE-----"
153                         type: string
154                     type: object
155                   insecureRegistries:
156                     description: InsecureRegistries is a list of TLS disabled registries
157                     items:
158                       type: string
159                     type: array
160                   podResourceRequirements:
161                     description: ResourceRequirements describes the compute resource
162                       requirements.
163                     properties:
164                       limits:
165                         additionalProperties:
166                           anyOf:
167                           - type: integer
168                           - type: string
169                           pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
170                           x-kubernetes-int-or-string: true
171                         description: 'Limits describes the maximum amount of compute
172                           resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
173                         type: object
174                       requests:
175                         additionalProperties:
176                           anyOf:
177                           - type: integer
178                           - type: string
179                           pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
180                           x-kubernetes-int-or-string: true
181                         description: 'Requests describes the minimum amount of compute
182                           resources required. If Requests is omitted for a container,
183                           it defaults to Limits if that is explicitly specified, otherwise
184                           to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
185                         type: object
186                     type: object
187                   preallocation:
188                     description: Preallocation controls whether storage for DataVolumes
189                       should be allocated in advance.
190                     type: boolean
191                   scratchSpaceStorageClass:
192                     description: 'Override the storage class to used for scratch space
193                       during transfer operations. The scratch space storage class
194                       is determined in the following order: 1. value of scratchSpaceStorageClass,
195                       if that doesn''t exist, use the default storage class, if there
196                       is no default storage class, use the storage class of the DataVolume,
197                       if no storage class specified, use no storage class for scratch
198                       space'
199                     type: string
200                   uploadProxyURLOverride:
201                     description: Override the URL used when uploading to a DataVolume
202                     type: string
203                 type: object
204               imagePullPolicy:
205                 description: PullPolicy describes a policy for if/when to pull a container
206                   image
207                 enum:
208                 - Always
209                 - IfNotPresent
210                 - Never
211                 type: string
212               infra:
213                 description: Rules on which nodes CDI infrastructure pods will be
214                   scheduled
215                 properties:
216                   affinity:
217                     description: affinity enables pod affinity/anti-affinity placement
218                       expanding the types of constraints that can be expressed with
219                       nodeSelector. affinity is going to be applied to the relevant
220                       kind of pods in parallel with nodeSelector See https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity
221                     properties:
222                       nodeAffinity:
223                         description: Describes node affinity scheduling rules for
224                           the pod.
225                         properties:
226                           preferredDuringSchedulingIgnoredDuringExecution:
227                             description: The scheduler will prefer to schedule pods
228                               to nodes that satisfy the affinity expressions specified
229                               by this field, but it may choose a node that violates
230                               one or more of the expressions. The node that is most
231                               preferred is the one with the greatest sum of weights,
232                               i.e. for each node that meets all of the scheduling
233                               requirements (resource request, requiredDuringScheduling
234                               affinity expressions, etc.), compute a sum by iterating
235                               through the elements of this field and adding "weight"
236                               to the sum if the node matches the corresponding matchExpressions;
237                               the node(s) with the highest sum are the most preferred.
238                             items:
239                               description: An empty preferred scheduling term matches
240                                 all objects with implicit weight 0 (i.e. it's a no-op).
241                                 A null preferred scheduling term matches no objects
242                                 (i.e. is also a no-op).
243                               properties:
244                                 preference:
245                                   description: A node selector term, associated with
246                                     the corresponding weight.
247                                   properties:
248                                     matchExpressions:
249                                       description: A list of node selector requirements
250                                         by node's labels.
251                                       items:
252                                         description: A node selector requirement is
253                                           a selector that contains values, a key,
254                                           and an operator that relates the key and
255                                           values.
256                                         properties:
257                                           key:
258                                             description: The label key that the selector
259                                               applies to.
260                                             type: string
261                                           operator:
262                                             description: Represents a key's relationship
263                                               to a set of values. Valid operators
264                                               are In, NotIn, Exists, DoesNotExist.
265                                               Gt, and Lt.
266                                             type: string
267                                           values:
268                                             description: An array of string values.
269                                               If the operator is In or NotIn, the
270                                               values array must be non-empty. If the
271                                               operator is Exists or DoesNotExist,
272                                               the values array must be empty. If the
273                                               operator is Gt or Lt, the values array
274                                               must have a single element, which will
275                                               be interpreted as an integer. This array
276                                               is replaced during a strategic merge
277                                               patch.
278                                             items:
279                                               type: string
280                                             type: array
281                                         required:
282                                         - key
283                                         - operator
284                                         type: object
285                                       type: array
286                                     matchFields:
287                                       description: A list of node selector requirements
288                                         by node's fields.
289                                       items:
290                                         description: A node selector requirement is
291                                           a selector that contains values, a key,
292                                           and an operator that relates the key and
293                                           values.
294                                         properties:
295                                           key:
296                                             description: The label key that the selector
297                                               applies to.
298                                             type: string
299                                           operator:
300                                             description: Represents a key's relationship
301                                               to a set of values. Valid operators
302                                               are In, NotIn, Exists, DoesNotExist.
303                                               Gt, and Lt.
304                                             type: string
305                                           values:
306                                             description: An array of string values.
307                                               If the operator is In or NotIn, the
308                                               values array must be non-empty. If the
309                                               operator is Exists or DoesNotExist,
310                                               the values array must be empty. If the
311                                               operator is Gt or Lt, the values array
312                                               must have a single element, which will
313                                               be interpreted as an integer. This array
314                                               is replaced during a strategic merge
315                                               patch.
316                                             items:
317                                               type: string
318                                             type: array
319                                         required:
320                                         - key
321                                         - operator
322                                         type: object
323                                       type: array
324                                   type: object
325                                 weight:
326                                   description: Weight associated with matching the
327                                     corresponding nodeSelectorTerm, in the range 1-100.
328                                   format: int32
329                                   type: integer
330                               required:
331                               - preference
332                               - weight
333                               type: object
334                             type: array
335                           requiredDuringSchedulingIgnoredDuringExecution:
336                             description: If the affinity requirements specified by
337                               this field are not met at scheduling time, the pod will
338                               not be scheduled onto the node. If the affinity requirements
339                               specified by this field cease to be met at some point
340                               during pod execution (e.g. due to an update), the system
341                               may or may not try to eventually evict the pod from
342                               its node.
343                             properties:
344                               nodeSelectorTerms:
345                                 description: Required. A list of node selector terms.
346                                   The terms are ORed.
347                                 items:
348                                   description: A null or empty node selector term
349                                     matches no objects. The requirements of them are
350                                     ANDed. The TopologySelectorTerm type implements
351                                     a subset of the NodeSelectorTerm.
352                                   properties:
353                                     matchExpressions:
354                                       description: A list of node selector requirements
355                                         by node's labels.
356                                       items:
357                                         description: A node selector requirement is
358                                           a selector that contains values, a key,
359                                           and an operator that relates the key and
360                                           values.
361                                         properties:
362                                           key:
363                                             description: The label key that the selector
364                                               applies to.
365                                             type: string
366                                           operator:
367                                             description: Represents a key's relationship
368                                               to a set of values. Valid operators
369                                               are In, NotIn, Exists, DoesNotExist.
370                                               Gt, and Lt.
371                                             type: string
372                                           values:
373                                             description: An array of string values.
374                                               If the operator is In or NotIn, the
375                                               values array must be non-empty. If the
376                                               operator is Exists or DoesNotExist,
377                                               the values array must be empty. If the
378                                               operator is Gt or Lt, the values array
379                                               must have a single element, which will
380                                               be interpreted as an integer. This array
381                                               is replaced during a strategic merge
382                                               patch.
383                                             items:
384                                               type: string
385                                             type: array
386                                         required:
387                                         - key
388                                         - operator
389                                         type: object
390                                       type: array
391                                     matchFields:
392                                       description: A list of node selector requirements
393                                         by node's fields.
394                                       items:
395                                         description: A node selector requirement is
396                                           a selector that contains values, a key,
397                                           and an operator that relates the key and
398                                           values.
399                                         properties:
400                                           key:
401                                             description: The label key that the selector
402                                               applies to.
403                                             type: string
404                                           operator:
405                                             description: Represents a key's relationship
406                                               to a set of values. Valid operators
407                                               are In, NotIn, Exists, DoesNotExist.
408                                               Gt, and Lt.
409                                             type: string
410                                           values:
411                                             description: An array of string values.
412                                               If the operator is In or NotIn, the
413                                               values array must be non-empty. If the
414                                               operator is Exists or DoesNotExist,
415                                               the values array must be empty. If the
416                                               operator is Gt or Lt, the values array
417                                               must have a single element, which will
418                                               be interpreted as an integer. This array
419                                               is replaced during a strategic merge
420                                               patch.
421                                             items:
422                                               type: string
423                                             type: array
424                                         required:
425                                         - key
426                                         - operator
427                                         type: object
428                                       type: array
429                                   type: object
430                                 type: array
431                             required:
432                             - nodeSelectorTerms
433                             type: object
434                         type: object
435                       podAffinity:
436                         description: Describes pod affinity scheduling rules (e.g.
437                           co-locate this pod in the same node, zone, etc. as some
438                           other pod(s)).
439                         properties:
440                           preferredDuringSchedulingIgnoredDuringExecution:
441                             description: The scheduler will prefer to schedule pods
442                               to nodes that satisfy the affinity expressions specified
443                               by this field, but it may choose a node that violates
444                               one or more of the expressions. The node that is most
445                               preferred is the one with the greatest sum of weights,
446                               i.e. for each node that meets all of the scheduling
447                               requirements (resource request, requiredDuringScheduling
448                               affinity expressions, etc.), compute a sum by iterating
449                               through the elements of this field and adding "weight"
450                               to the sum if the node has pods which matches the corresponding
451                               podAffinityTerm; the node(s) with the highest sum are
452                               the most preferred.
453                             items:
454                               description: The weights of all of the matched WeightedPodAffinityTerm
455                                 fields are added per-node to find the most preferred
456                                 node(s)
457                               properties:
458                                 podAffinityTerm:
459                                   description: Required. A pod affinity term, associated
460                                     with the corresponding weight.
461                                   properties:
462                                     labelSelector:
463                                       description: A label query over a set of resources,
464                                         in this case pods.
465                                       properties:
466                                         matchExpressions:
467                                           description: matchExpressions is a list
468                                             of label selector requirements. The requirements
469                                             are ANDed.
470                                           items:
471                                             description: A label selector requirement
472                                               is a selector that contains values,
473                                               a key, and an operator that relates
474                                               the key and values.
475                                             properties:
476                                               key:
477                                                 description: key is the label key
478                                                   that the selector applies to.
479                                                 type: string
480                                               operator:
481                                                 description: operator represents a
482                                                   key's relationship to a set of values.
483                                                   Valid operators are In, NotIn, Exists
484                                                   and DoesNotExist.
485                                                 type: string
486                                               values:
487                                                 description: values is an array of
488                                                   string values. If the operator is
489                                                   In or NotIn, the values array must
490                                                   be non-empty. If the operator is
491                                                   Exists or DoesNotExist, the values
492                                                   array must be empty. This array
493                                                   is replaced during a strategic merge
494                                                   patch.
495                                                 items:
496                                                   type: string
497                                                 type: array
498                                             required:
499                                             - key
500                                             - operator
501                                             type: object
502                                           type: array
503                                         matchLabels:
504                                           additionalProperties:
505                                             type: string
506                                           description: matchLabels is a map of {key,value}
507                                             pairs. A single {key,value} in the matchLabels
508                                             map is equivalent to an element of matchExpressions,
509                                             whose key field is "key", the operator
510                                             is "In", and the values array contains
511                                             only "value". The requirements are ANDed.
512                                           type: object
513                                       type: object
514                                     namespaceSelector:
515                                       description: A label query over the set of namespaces
516                                         that the term applies to. The term is applied
517                                         to the union of the namespaces selected by
518                                         this field and the ones listed in the namespaces
519                                         field. null selector and null or empty namespaces
520                                         list means "this pod's namespace". An empty
521                                         selector ({}) matches all namespaces. This
522                                         field is beta-level and is only honored when
523                                         PodAffinityNamespaceSelector feature is enabled.
524                                       properties:
525                                         matchExpressions:
526                                           description: matchExpressions is a list
527                                             of label selector requirements. The requirements
528                                             are ANDed.
529                                           items:
530                                             description: A label selector requirement
531                                               is a selector that contains values,
532                                               a key, and an operator that relates
533                                               the key and values.
534                                             properties:
535                                               key:
536                                                 description: key is the label key
537                                                   that the selector applies to.
538                                                 type: string
539                                               operator:
540                                                 description: operator represents a
541                                                   key's relationship to a set of values.
542                                                   Valid operators are In, NotIn, Exists
543                                                   and DoesNotExist.
544                                                 type: string
545                                               values:
546                                                 description: values is an array of
547                                                   string values. If the operator is
548                                                   In or NotIn, the values array must
549                                                   be non-empty. If the operator is
550                                                   Exists or DoesNotExist, the values
551                                                   array must be empty. This array
552                                                   is replaced during a strategic merge
553                                                   patch.
554                                                 items:
555                                                   type: string
556                                                 type: array
557                                             required:
558                                             - key
559                                             - operator
560                                             type: object
561                                           type: array
562                                         matchLabels:
563                                           additionalProperties:
564                                             type: string
565                                           description: matchLabels is a map of {key,value}
566                                             pairs. A single {key,value} in the matchLabels
567                                             map is equivalent to an element of matchExpressions,
568                                             whose key field is "key", the operator
569                                             is "In", and the values array contains
570                                             only "value". The requirements are ANDed.
571                                           type: object
572                                       type: object
573                                     namespaces:
574                                       description: namespaces specifies a static list
575                                         of namespace names that the term applies to.
576                                         The term is applied to the union of the namespaces
577                                         listed in this field and the ones selected
578                                         by namespaceSelector. null or empty namespaces
579                                         list and null namespaceSelector means "this
580                                         pod's namespace"
581                                       items:
582                                         type: string
583                                       type: array
584                                     topologyKey:
585                                       description: This pod should be co-located (affinity)
586                                         or not co-located (anti-affinity) with the
587                                         pods matching the labelSelector in the specified
588                                         namespaces, where co-located is defined as
589                                         running on a node whose value of the label
590                                         with key topologyKey matches that of any node
591                                         on which any of the selected pods is running.
592                                         Empty topologyKey is not allowed.
593                                       type: string
594                                   required:
595                                   - topologyKey
596                                   type: object
597                                 weight:
598                                   description: weight associated with matching the
599                                     corresponding podAffinityTerm, in the range 1-100.
600                                   format: int32
601                                   type: integer
602                               required:
603                               - podAffinityTerm
604                               - weight
605                               type: object
606                             type: array
607                           requiredDuringSchedulingIgnoredDuringExecution:
608                             description: If the affinity requirements specified by
609                               this field are not met at scheduling time, the pod will
610                               not be scheduled onto the node. If the affinity requirements
611                               specified by this field cease to be met at some point
612                               during pod execution (e.g. due to a pod label update),
613                               the system may or may not try to eventually evict the
614                               pod from its node. When there are multiple elements,
615                               the lists of nodes corresponding to each podAffinityTerm
616                               are intersected, i.e. all terms must be satisfied.
617                             items:
618                               description: Defines a set of pods (namely those matching
619                                 the labelSelector relative to the given namespace(s))
620                                 that this pod should be co-located (affinity) or not
621                                 co-located (anti-affinity) with, where co-located
622                                 is defined as running on a node whose value of the
623                                 label with key <topologyKey> matches that of any node
624                                 on which a pod of the set of pods is running
625                               properties:
626                                 labelSelector:
627                                   description: A label query over a set of resources,
628                                     in this case pods.
629                                   properties:
630                                     matchExpressions:
631                                       description: matchExpressions is a list of label
632                                         selector requirements. The requirements are
633                                         ANDed.
634                                       items:
635                                         description: A label selector requirement
636                                           is a selector that contains values, a key,
637                                           and an operator that relates the key and
638                                           values.
639                                         properties:
640                                           key:
641                                             description: key is the label key that
642                                               the selector applies to.
643                                             type: string
644                                           operator:
645                                             description: operator represents a key's
646                                               relationship to a set of values. Valid
647                                               operators are In, NotIn, Exists and
648                                               DoesNotExist.
649                                             type: string
650                                           values:
651                                             description: values is an array of string
652                                               values. If the operator is In or NotIn,
653                                               the values array must be non-empty.
654                                               If the operator is Exists or DoesNotExist,
655                                               the values array must be empty. This
656                                               array is replaced during a strategic
657                                               merge patch.
658                                             items:
659                                               type: string
660                                             type: array
661                                         required:
662                                         - key
663                                         - operator
664                                         type: object
665                                       type: array
666                                     matchLabels:
667                                       additionalProperties:
668                                         type: string
669                                       description: matchLabels is a map of {key,value}
670                                         pairs. A single {key,value} in the matchLabels
671                                         map is equivalent to an element of matchExpressions,
672                                         whose key field is "key", the operator is
673                                         "In", and the values array contains only "value".
674                                         The requirements are ANDed.
675                                       type: object
676                                   type: object
677                                 namespaceSelector:
678                                   description: A label query over the set of namespaces
679                                     that the term applies to. The term is applied
680                                     to the union of the namespaces selected by this
681                                     field and the ones listed in the namespaces field.
682                                     null selector and null or empty namespaces list
683                                     means "this pod's namespace". An empty selector
684                                     ({}) matches all namespaces. This field is beta-level
685                                     and is only honored when PodAffinityNamespaceSelector
686                                     feature is enabled.
687                                   properties:
688                                     matchExpressions:
689                                       description: matchExpressions is a list of label
690                                         selector requirements. The requirements are
691                                         ANDed.
692                                       items:
693                                         description: A label selector requirement
694                                           is a selector that contains values, a key,
695                                           and an operator that relates the key and
696                                           values.
697                                         properties:
698                                           key:
699                                             description: key is the label key that
700                                               the selector applies to.
701                                             type: string
702                                           operator:
703                                             description: operator represents a key's
704                                               relationship to a set of values. Valid
705                                               operators are In, NotIn, Exists and
706                                               DoesNotExist.
707                                             type: string
708                                           values:
709                                             description: values is an array of string
710                                               values. If the operator is In or NotIn,
711                                               the values array must be non-empty.
712                                               If the operator is Exists or DoesNotExist,
713                                               the values array must be empty. This
714                                               array is replaced during a strategic
715                                               merge patch.
716                                             items:
717                                               type: string
718                                             type: array
719                                         required:
720                                         - key
721                                         - operator
722                                         type: object
723                                       type: array
724                                     matchLabels:
725                                       additionalProperties:
726                                         type: string
727                                       description: matchLabels is a map of {key,value}
728                                         pairs. A single {key,value} in the matchLabels
729                                         map is equivalent to an element of matchExpressions,
730                                         whose key field is "key", the operator is
731                                         "In", and the values array contains only "value".
732                                         The requirements are ANDed.
733                                       type: object
734                                   type: object
735                                 namespaces:
736                                   description: namespaces specifies a static list
737                                     of namespace names that the term applies to. The
738                                     term is applied to the union of the namespaces
739                                     listed in this field and the ones selected by
740                                     namespaceSelector. null or empty namespaces list
741                                     and null namespaceSelector means "this pod's namespace"
742                                   items:
743                                     type: string
744                                   type: array
745                                 topologyKey:
746                                   description: This pod should be co-located (affinity)
747                                     or not co-located (anti-affinity) with the pods
748                                     matching the labelSelector in the specified namespaces,
749                                     where co-located is defined as running on a node
750                                     whose value of the label with key topologyKey
751                                     matches that of any node on which any of the selected
752                                     pods is running. Empty topologyKey is not allowed.
753                                   type: string
754                               required:
755                               - topologyKey
756                               type: object
757                             type: array
758                         type: object
759                       podAntiAffinity:
760                         description: Describes pod anti-affinity scheduling rules
761                           (e.g. avoid putting this pod in the same node, zone, etc.
762                           as some other pod(s)).
763                         properties:
764                           preferredDuringSchedulingIgnoredDuringExecution:
765                             description: The scheduler will prefer to schedule pods
766                               to nodes that satisfy the anti-affinity expressions
767                               specified by this field, but it may choose a node that
768                               violates one or more of the expressions. The node that
769                               is most preferred is the one with the greatest sum of
770                               weights, i.e. for each node that meets all of the scheduling
771                               requirements (resource request, requiredDuringScheduling
772                               anti-affinity expressions, etc.), compute a sum by iterating
773                               through the elements of this field and adding "weight"
774                               to the sum if the node has pods which matches the corresponding
775                               podAffinityTerm; the node(s) with the highest sum are
776                               the most preferred.
777                             items:
778                               description: The weights of all of the matched WeightedPodAffinityTerm
779                                 fields are added per-node to find the most preferred
780                                 node(s)
781                               properties:
782                                 podAffinityTerm:
783                                   description: Required. A pod affinity term, associated
784                                     with the corresponding weight.
785                                   properties:
786                                     labelSelector:
787                                       description: A label query over a set of resources,
788                                         in this case pods.
789                                       properties:
790                                         matchExpressions:
791                                           description: matchExpressions is a list
792                                             of label selector requirements. The requirements
793                                             are ANDed.
794                                           items:
795                                             description: A label selector requirement
796                                               is a selector that contains values,
797                                               a key, and an operator that relates
798                                               the key and values.
799                                             properties:
800                                               key:
801                                                 description: key is the label key
802                                                   that the selector applies to.
803                                                 type: string
804                                               operator:
805                                                 description: operator represents a
806                                                   key's relationship to a set of values.
807                                                   Valid operators are In, NotIn, Exists
808                                                   and DoesNotExist.
809                                                 type: string
810                                               values:
811                                                 description: values is an array of
812                                                   string values. If the operator is
813                                                   In or NotIn, the values array must
814                                                   be non-empty. If the operator is
815                                                   Exists or DoesNotExist, the values
816                                                   array must be empty. This array
817                                                   is replaced during a strategic merge
818                                                   patch.
819                                                 items:
820                                                   type: string
821                                                 type: array
822                                             required:
823                                             - key
824                                             - operator
825                                             type: object
826                                           type: array
827                                         matchLabels:
828                                           additionalProperties:
829                                             type: string
830                                           description: matchLabels is a map of {key,value}
831                                             pairs. A single {key,value} in the matchLabels
832                                             map is equivalent to an element of matchExpressions,
833                                             whose key field is "key", the operator
834                                             is "In", and the values array contains
835                                             only "value". The requirements are ANDed.
836                                           type: object
837                                       type: object
838                                     namespaceSelector:
839                                       description: A label query over the set of namespaces
840                                         that the term applies to. The term is applied
841                                         to the union of the namespaces selected by
842                                         this field and the ones listed in the namespaces
843                                         field. null selector and null or empty namespaces
844                                         list means "this pod's namespace". An empty
845                                         selector ({}) matches all namespaces. This
846                                         field is beta-level and is only honored when
847                                         PodAffinityNamespaceSelector feature is enabled.
848                                       properties:
849                                         matchExpressions:
850                                           description: matchExpressions is a list
851                                             of label selector requirements. The requirements
852                                             are ANDed.
853                                           items:
854                                             description: A label selector requirement
855                                               is a selector that contains values,
856                                               a key, and an operator that relates
857                                               the key and values.
858                                             properties:
859                                               key:
860                                                 description: key is the label key
861                                                   that the selector applies to.
862                                                 type: string
863                                               operator:
864                                                 description: operator represents a
865                                                   key's relationship to a set of values.
866                                                   Valid operators are In, NotIn, Exists
867                                                   and DoesNotExist.
868                                                 type: string
869                                               values:
870                                                 description: values is an array of
871                                                   string values. If the operator is
872                                                   In or NotIn, the values array must
873                                                   be non-empty. If the operator is
874                                                   Exists or DoesNotExist, the values
875                                                   array must be empty. This array
876                                                   is replaced during a strategic merge
877                                                   patch.
878                                                 items:
879                                                   type: string
880                                                 type: array
881                                             required:
882                                             - key
883                                             - operator
884                                             type: object
885                                           type: array
886                                         matchLabels:
887                                           additionalProperties:
888                                             type: string
889                                           description: matchLabels is a map of {key,value}
890                                             pairs. A single {key,value} in the matchLabels
891                                             map is equivalent to an element of matchExpressions,
892                                             whose key field is "key", the operator
893                                             is "In", and the values array contains
894                                             only "value". The requirements are ANDed.
895                                           type: object
896                                       type: object
897                                     namespaces:
898                                       description: namespaces specifies a static list
899                                         of namespace names that the term applies to.
900                                         The term is applied to the union of the namespaces
901                                         listed in this field and the ones selected
902                                         by namespaceSelector. null or empty namespaces
903                                         list and null namespaceSelector means "this
904                                         pod's namespace"
905                                       items:
906                                         type: string
907                                       type: array
908                                     topologyKey:
909                                       description: This pod should be co-located (affinity)
910                                         or not co-located (anti-affinity) with the
911                                         pods matching the labelSelector in the specified
912                                         namespaces, where co-located is defined as
913                                         running on a node whose value of the label
914                                         with key topologyKey matches that of any node
915                                         on which any of the selected pods is running.
916                                         Empty topologyKey is not allowed.
917                                       type: string
918                                   required:
919                                   - topologyKey
920                                   type: object
921                                 weight:
922                                   description: weight associated with matching the
923                                     corresponding podAffinityTerm, in the range 1-100.
924                                   format: int32
925                                   type: integer
926                               required:
927                               - podAffinityTerm
928                               - weight
929                               type: object
930                             type: array
931                           requiredDuringSchedulingIgnoredDuringExecution:
932                             description: If the anti-affinity requirements specified
933                               by this field are not met at scheduling time, the pod
934                               will not be scheduled onto the node. If the anti-affinity
935                               requirements specified by this field cease to be met
936                               at some point during pod execution (e.g. due to a pod
937                               label update), the system may or may not try to eventually
938                               evict the pod from its node. When there are multiple
939                               elements, the lists of nodes corresponding to each podAffinityTerm
940                               are intersected, i.e. all terms must be satisfied.
941                             items:
942                               description: Defines a set of pods (namely those matching
943                                 the labelSelector relative to the given namespace(s))
944                                 that this pod should be co-located (affinity) or not
945                                 co-located (anti-affinity) with, where co-located
946                                 is defined as running on a node whose value of the
947                                 label with key <topologyKey> matches that of any node
948                                 on which a pod of the set of pods is running
949                               properties:
950                                 labelSelector:
951                                   description: A label query over a set of resources,
952                                     in this case pods.
953                                   properties:
954                                     matchExpressions:
955                                       description: matchExpressions is a list of label
956                                         selector requirements. The requirements are
957                                         ANDed.
958                                       items:
959                                         description: A label selector requirement
960                                           is a selector that contains values, a key,
961                                           and an operator that relates the key and
962                                           values.
963                                         properties:
964                                           key:
965                                             description: key is the label key that
966                                               the selector applies to.
967                                             type: string
968                                           operator:
969                                             description: operator represents a key's
970                                               relationship to a set of values. Valid
971                                               operators are In, NotIn, Exists and
972                                               DoesNotExist.
973                                             type: string
974                                           values:
975                                             description: values is an array of string
976                                               values. If the operator is In or NotIn,
977                                               the values array must be non-empty.
978                                               If the operator is Exists or DoesNotExist,
979                                               the values array must be empty. This
980                                               array is replaced during a strategic
981                                               merge patch.
982                                             items:
983                                               type: string
984                                             type: array
985                                         required:
986                                         - key
987                                         - operator
988                                         type: object
989                                       type: array
990                                     matchLabels:
991                                       additionalProperties:
992                                         type: string
993                                       description: matchLabels is a map of {key,value}
994                                         pairs. A single {key,value} in the matchLabels
995                                         map is equivalent to an element of matchExpressions,
996                                         whose key field is "key", the operator is
997                                         "In", and the values array contains only "value".
998                                         The requirements are ANDed.
999                                       type: object
1000                                   type: object
1001                                 namespaceSelector:
1002                                   description: A label query over the set of namespaces
1003                                     that the term applies to. The term is applied
1004                                     to the union of the namespaces selected by this
1005                                     field and the ones listed in the namespaces field.
1006                                     null selector and null or empty namespaces list
1007                                     means "this pod's namespace". An empty selector
1008                                     ({}) matches all namespaces. This field is beta-level
1009                                     and is only honored when PodAffinityNamespaceSelector
1010                                     feature is enabled.
1011                                   properties:
1012                                     matchExpressions:
1013                                       description: matchExpressions is a list of label
1014                                         selector requirements. The requirements are
1015                                         ANDed.
1016                                       items:
1017                                         description: A label selector requirement
1018                                           is a selector that contains values, a key,
1019                                           and an operator that relates the key and
1020                                           values.
1021                                         properties:
1022                                           key:
1023                                             description: key is the label key that
1024                                               the selector applies to.
1025                                             type: string
1026                                           operator:
1027                                             description: operator represents a key's
1028                                               relationship to a set of values. Valid
1029                                               operators are In, NotIn, Exists and
1030                                               DoesNotExist.
1031                                             type: string
1032                                           values:
1033                                             description: values is an array of string
1034                                               values. If the operator is In or NotIn,
1035                                               the values array must be non-empty.
1036                                               If the operator is Exists or DoesNotExist,
1037                                               the values array must be empty. This
1038                                               array is replaced during a strategic
1039                                               merge patch.
1040                                             items:
1041                                               type: string
1042                                             type: array
1043                                         required:
1044                                         - key
1045                                         - operator
1046                                         type: object
1047                                       type: array
1048                                     matchLabels:
1049                                       additionalProperties:
1050                                         type: string
1051                                       description: matchLabels is a map of {key,value}
1052                                         pairs. A single {key,value} in the matchLabels
1053                                         map is equivalent to an element of matchExpressions,
1054                                         whose key field is "key", the operator is
1055                                         "In", and the values array contains only "value".
1056                                         The requirements are ANDed.
1057                                       type: object
1058                                   type: object
1059                                 namespaces:
1060                                   description: namespaces specifies a static list
1061                                     of namespace names that the term applies to. The
1062                                     term is applied to the union of the namespaces
1063                                     listed in this field and the ones selected by
1064                                     namespaceSelector. null or empty namespaces list
1065                                     and null namespaceSelector means "this pod's namespace"
1066                                   items:
1067                                     type: string
1068                                   type: array
1069                                 topologyKey:
1070                                   description: This pod should be co-located (affinity)
1071                                     or not co-located (anti-affinity) with the pods
1072                                     matching the labelSelector in the specified namespaces,
1073                                     where co-located is defined as running on a node
1074                                     whose value of the label with key topologyKey
1075                                     matches that of any node on which any of the selected
1076                                     pods is running. Empty topologyKey is not allowed.
1077                                   type: string
1078                               required:
1079                               - topologyKey
1080                               type: object
1081                             type: array
1082                         type: object
1083                     type: object
1084                   nodeSelector:
1085                     additionalProperties:
1086                       type: string
1087                     description: 'nodeSelector is the node selector applied to the
1088                       relevant kind of pods It specifies a map of key-value pairs:
1089                       for the pod to be eligible to run on a node, the node must have
1090                       each of the indicated key-value pairs as labels (it can have
1091                       additional labels as well). See https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector'
1092                     type: object
1093                   tolerations:
1094                     description: tolerations is a list of tolerations applied to the
1095                       relevant kind of pods See https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
1096                       for more info. These are additional tolerations other than default
1097                       ones.
1098                     items:
1099                       description: The pod this Toleration is attached to tolerates
1100                         any taint that matches the triple <key,value,effect> using
1101                         the matching operator <operator>.
1102                       properties:
1103                         effect:
1104                           description: Effect indicates the taint effect to match.
1105                             Empty means match all taint effects. When specified, allowed
1106                             values are NoSchedule, PreferNoSchedule and NoExecute.
1107                           type: string
1108                         key:
1109                           description: Key is the taint key that the toleration applies
1110                             to. Empty means match all taint keys. If the key is empty,
1111                             operator must be Exists; this combination means to match
1112                             all values and all keys.
1113                           type: string
1114                         operator:
1115                           description: Operator represents a key's relationship to
1116                             the value. Valid operators are Exists and Equal. Defaults
1117                             to Equal. Exists is equivalent to wildcard for value,
1118                             so that a pod can tolerate all taints of a particular
1119                             category.
1120                           type: string
1121                         tolerationSeconds:
1122                           description: TolerationSeconds represents the period of
1123                             time the toleration (which must be of effect NoExecute,
1124                             otherwise this field is ignored) tolerates the taint.
1125                             By default, it is not set, which means tolerate the taint
1126                             forever (do not evict). Zero and negative values will
1127                             be treated as 0 (evict immediately) by the system.
1128                           format: int64
1129                           type: integer
1130                         value:
1131                           description: Value is the taint value the toleration matches
1132                             to. If the operator is Exists, the value should be empty,
1133                             otherwise just a regular string.
1134                           type: string
1135                       type: object
1136                     type: array
1137                 type: object
1138               uninstallStrategy:
1139                 description: CDIUninstallStrategy defines the state to leave CDI on
1140                   uninstall
1141                 enum:
1142                 - RemoveWorkloads
1143                 - BlockUninstallIfWorkloadsExist
1144                 type: string
1145               workload:
1146                 description: Restrict on which nodes CDI workload pods will be scheduled
1147                 properties:
1148                   affinity:
1149                     description: affinity enables pod affinity/anti-affinity placement
1150                       expanding the types of constraints that can be expressed with
1151                       nodeSelector. affinity is going to be applied to the relevant
1152                       kind of pods in parallel with nodeSelector See https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity
1153                     properties:
1154                       nodeAffinity:
1155                         description: Describes node affinity scheduling rules for
1156                           the pod.
1157                         properties:
1158                           preferredDuringSchedulingIgnoredDuringExecution:
1159                             description: The scheduler will prefer to schedule pods
1160                               to nodes that satisfy the affinity expressions specified
1161                               by this field, but it may choose a node that violates
1162                               one or more of the expressions. The node that is most
1163                               preferred is the one with the greatest sum of weights,
1164                               i.e. for each node that meets all of the scheduling
1165                               requirements (resource request, requiredDuringScheduling
1166                               affinity expressions, etc.), compute a sum by iterating
1167                               through the elements of this field and adding "weight"
1168                               to the sum if the node matches the corresponding matchExpressions;
1169                               the node(s) with the highest sum are the most preferred.
1170                             items:
1171                               description: An empty preferred scheduling term matches
1172                                 all objects with implicit weight 0 (i.e. it's a no-op).
1173                                 A null preferred scheduling term matches no objects
1174                                 (i.e. is also a no-op).
1175                               properties:
1176                                 preference:
1177                                   description: A node selector term, associated with
1178                                     the corresponding weight.
1179                                   properties:
1180                                     matchExpressions:
1181                                       description: A list of node selector requirements
1182                                         by node's labels.
1183                                       items:
1184                                         description: A node selector requirement is
1185                                           a selector that contains values, a key,
1186                                           and an operator that relates the key and
1187                                           values.
1188                                         properties:
1189                                           key:
1190                                             description: The label key that the selector
1191                                               applies to.
1192                                             type: string
1193                                           operator:
1194                                             description: Represents a key's relationship
1195                                               to a set of values. Valid operators
1196                                               are In, NotIn, Exists, DoesNotExist.
1197                                               Gt, and Lt.
1198                                             type: string
1199                                           values:
1200                                             description: An array of string values.
1201                                               If the operator is In or NotIn, the
1202                                               values array must be non-empty. If the
1203                                               operator is Exists or DoesNotExist,
1204                                               the values array must be empty. If the
1205                                               operator is Gt or Lt, the values array
1206                                               must have a single element, which will
1207                                               be interpreted as an integer. This array
1208                                               is replaced during a strategic merge
1209                                               patch.
1210                                             items:
1211                                               type: string
1212                                             type: array
1213                                         required:
1214                                         - key
1215                                         - operator
1216                                         type: object
1217                                       type: array
1218                                     matchFields:
1219                                       description: A list of node selector requirements
1220                                         by node's fields.
1221                                       items:
1222                                         description: A node selector requirement is
1223                                           a selector that contains values, a key,
1224                                           and an operator that relates the key and
1225                                           values.
1226                                         properties:
1227                                           key:
1228                                             description: The label key that the selector
1229                                               applies to.
1230                                             type: string
1231                                           operator:
1232                                             description: Represents a key's relationship
1233                                               to a set of values. Valid operators
1234                                               are In, NotIn, Exists, DoesNotExist.
1235                                               Gt, and Lt.
1236                                             type: string
1237                                           values:
1238                                             description: An array of string values.
1239                                               If the operator is In or NotIn, the
1240                                               values array must be non-empty. If the
1241                                               operator is Exists or DoesNotExist,
1242                                               the values array must be empty. If the
1243                                               operator is Gt or Lt, the values array
1244                                               must have a single element, which will
1245                                               be interpreted as an integer. This array
1246                                               is replaced during a strategic merge
1247                                               patch.
1248                                             items:
1249                                               type: string
1250                                             type: array
1251                                         required:
1252                                         - key
1253                                         - operator
1254                                         type: object
1255                                       type: array
1256                                   type: object
1257                                 weight:
1258                                   description: Weight associated with matching the
1259                                     corresponding nodeSelectorTerm, in the range 1-100.
1260                                   format: int32
1261                                   type: integer
1262                               required:
1263                               - preference
1264                               - weight
1265                               type: object
1266                             type: array
1267                           requiredDuringSchedulingIgnoredDuringExecution:
1268                             description: If the affinity requirements specified by
1269                               this field are not met at scheduling time, the pod will
1270                               not be scheduled onto the node. If the affinity requirements
1271                               specified by this field cease to be met at some point
1272                               during pod execution (e.g. due to an update), the system
1273                               may or may not try to eventually evict the pod from
1274                               its node.
1275                             properties:
1276                               nodeSelectorTerms:
1277                                 description: Required. A list of node selector terms.
1278                                   The terms are ORed.
1279                                 items:
1280                                   description: A null or empty node selector term
1281                                     matches no objects. The requirements of them are
1282                                     ANDed. The TopologySelectorTerm type implements
1283                                     a subset of the NodeSelectorTerm.
1284                                   properties:
1285                                     matchExpressions:
1286                                       description: A list of node selector requirements
1287                                         by node's labels.
1288                                       items:
1289                                         description: A node selector requirement is
1290                                           a selector that contains values, a key,
1291                                           and an operator that relates the key and
1292                                           values.
1293                                         properties:
1294                                           key:
1295                                             description: The label key that the selector
1296                                               applies to.
1297                                             type: string
1298                                           operator:
1299                                             description: Represents a key's relationship
1300                                               to a set of values. Valid operators
1301                                               are In, NotIn, Exists, DoesNotExist.
1302                                               Gt, and Lt.
1303                                             type: string
1304                                           values:
1305                                             description: An array of string values.
1306                                               If the operator is In or NotIn, the
1307                                               values array must be non-empty. If the
1308                                               operator is Exists or DoesNotExist,
1309                                               the values array must be empty. If the
1310                                               operator is Gt or Lt, the values array
1311                                               must have a single element, which will
1312                                               be interpreted as an integer. This array
1313                                               is replaced during a strategic merge
1314                                               patch.
1315                                             items:
1316                                               type: string
1317                                             type: array
1318                                         required:
1319                                         - key
1320                                         - operator
1321                                         type: object
1322                                       type: array
1323                                     matchFields:
1324                                       description: A list of node selector requirements
1325                                         by node's fields.
1326                                       items:
1327                                         description: A node selector requirement is
1328                                           a selector that contains values, a key,
1329                                           and an operator that relates the key and
1330                                           values.
1331                                         properties:
1332                                           key:
1333                                             description: The label key that the selector
1334                                               applies to.
1335                                             type: string
1336                                           operator:
1337                                             description: Represents a key's relationship
1338                                               to a set of values. Valid operators
1339                                               are In, NotIn, Exists, DoesNotExist.
1340                                               Gt, and Lt.
1341                                             type: string
1342                                           values:
1343                                             description: An array of string values.
1344                                               If the operator is In or NotIn, the
1345                                               values array must be non-empty. If the
1346                                               operator is Exists or DoesNotExist,
1347                                               the values array must be empty. If the
1348                                               operator is Gt or Lt, the values array
1349                                               must have a single element, which will
1350                                               be interpreted as an integer. This array
1351                                               is replaced during a strategic merge
1352                                               patch.
1353                                             items:
1354                                               type: string
1355                                             type: array
1356                                         required:
1357                                         - key
1358                                         - operator
1359                                         type: object
1360                                       type: array
1361                                   type: object
1362                                 type: array
1363                             required:
1364                             - nodeSelectorTerms
1365                             type: object
1366                         type: object
1367                       podAffinity:
1368                         description: Describes pod affinity scheduling rules (e.g.
1369                           co-locate this pod in the same node, zone, etc. as some
1370                           other pod(s)).
1371                         properties:
1372                           preferredDuringSchedulingIgnoredDuringExecution:
1373                             description: The scheduler will prefer to schedule pods
1374                               to nodes that satisfy the affinity expressions specified
1375                               by this field, but it may choose a node that violates
1376                               one or more of the expressions. The node that is most
1377                               preferred is the one with the greatest sum of weights,
1378                               i.e. for each node that meets all of the scheduling
1379                               requirements (resource request, requiredDuringScheduling
1380                               affinity expressions, etc.), compute a sum by iterating
1381                               through the elements of this field and adding "weight"
1382                               to the sum if the node has pods which matches the corresponding
1383                               podAffinityTerm; the node(s) with the highest sum are
1384                               the most preferred.
1385                             items:
1386                               description: The weights of all of the matched WeightedPodAffinityTerm
1387                                 fields are added per-node to find the most preferred
1388                                 node(s)
1389                               properties:
1390                                 podAffinityTerm:
1391                                   description: Required. A pod affinity term, associated
1392                                     with the corresponding weight.
1393                                   properties:
1394                                     labelSelector:
1395                                       description: A label query over a set of resources,
1396                                         in this case pods.
1397                                       properties:
1398                                         matchExpressions:
1399                                           description: matchExpressions is a list
1400                                             of label selector requirements. The requirements
1401                                             are ANDed.
1402                                           items:
1403                                             description: A label selector requirement
1404                                               is a selector that contains values,
1405                                               a key, and an operator that relates
1406                                               the key and values.
1407                                             properties:
1408                                               key:
1409                                                 description: key is the label key
1410                                                   that the selector applies to.
1411                                                 type: string
1412                                               operator:
1413                                                 description: operator represents a
1414                                                   key's relationship to a set of values.
1415                                                   Valid operators are In, NotIn, Exists
1416                                                   and DoesNotExist.
1417                                                 type: string
1418                                               values:
1419                                                 description: values is an array of
1420                                                   string values. If the operator is
1421                                                   In or NotIn, the values array must
1422                                                   be non-empty. If the operator is
1423                                                   Exists or DoesNotExist, the values
1424                                                   array must be empty. This array
1425                                                   is replaced during a strategic merge
1426                                                   patch.
1427                                                 items:
1428                                                   type: string
1429                                                 type: array
1430                                             required:
1431                                             - key
1432                                             - operator
1433                                             type: object
1434                                           type: array
1435                                         matchLabels:
1436                                           additionalProperties:
1437                                             type: string
1438                                           description: matchLabels is a map of {key,value}
1439                                             pairs. A single {key,value} in the matchLabels
1440                                             map is equivalent to an element of matchExpressions,
1441                                             whose key field is "key", the operator
1442                                             is "In", and the values array contains
1443                                             only "value". The requirements are ANDed.
1444                                           type: object
1445                                       type: object
1446                                     namespaceSelector:
1447                                       description: A label query over the set of namespaces
1448                                         that the term applies to. The term is applied
1449                                         to the union of the namespaces selected by
1450                                         this field and the ones listed in the namespaces
1451                                         field. null selector and null or empty namespaces
1452                                         list means "this pod's namespace". An empty
1453                                         selector ({}) matches all namespaces. This
1454                                         field is beta-level and is only honored when
1455                                         PodAffinityNamespaceSelector feature is enabled.
1456                                       properties:
1457                                         matchExpressions:
1458                                           description: matchExpressions is a list
1459                                             of label selector requirements. The requirements
1460                                             are ANDed.
1461                                           items:
1462                                             description: A label selector requirement
1463                                               is a selector that contains values,
1464                                               a key, and an operator that relates
1465                                               the key and values.
1466                                             properties:
1467                                               key:
1468                                                 description: key is the label key
1469                                                   that the selector applies to.
1470                                                 type: string
1471                                               operator:
1472                                                 description: operator represents a
1473                                                   key's relationship to a set of values.
1474                                                   Valid operators are In, NotIn, Exists
1475                                                   and DoesNotExist.
1476                                                 type: string
1477                                               values:
1478                                                 description: values is an array of
1479                                                   string values. If the operator is
1480                                                   In or NotIn, the values array must
1481                                                   be non-empty. If the operator is
1482                                                   Exists or DoesNotExist, the values
1483                                                   array must be empty. This array
1484                                                   is replaced during a strategic merge
1485                                                   patch.
1486                                                 items:
1487                                                   type: string
1488                                                 type: array
1489                                             required:
1490                                             - key
1491                                             - operator
1492                                             type: object
1493                                           type: array
1494                                         matchLabels:
1495                                           additionalProperties:
1496                                             type: string
1497                                           description: matchLabels is a map of {key,value}
1498                                             pairs. A single {key,value} in the matchLabels
1499                                             map is equivalent to an element of matchExpressions,
1500                                             whose key field is "key", the operator
1501                                             is "In", and the values array contains
1502                                             only "value". The requirements are ANDed.
1503                                           type: object
1504                                       type: object
1505                                     namespaces:
1506                                       description: namespaces specifies a static list
1507                                         of namespace names that the term applies to.
1508                                         The term is applied to the union of the namespaces
1509                                         listed in this field and the ones selected
1510                                         by namespaceSelector. null or empty namespaces
1511                                         list and null namespaceSelector means "this
1512                                         pod's namespace"
1513                                       items:
1514                                         type: string
1515                                       type: array
1516                                     topologyKey:
1517                                       description: This pod should be co-located (affinity)
1518                                         or not co-located (anti-affinity) with the
1519                                         pods matching the labelSelector in the specified
1520                                         namespaces, where co-located is defined as
1521                                         running on a node whose value of the label
1522                                         with key topologyKey matches that of any node
1523                                         on which any of the selected pods is running.
1524                                         Empty topologyKey is not allowed.
1525                                       type: string
1526                                   required:
1527                                   - topologyKey
1528                                   type: object
1529                                 weight:
1530                                   description: weight associated with matching the
1531                                     corresponding podAffinityTerm, in the range 1-100.
1532                                   format: int32
1533                                   type: integer
1534                               required:
1535                               - podAffinityTerm
1536                               - weight
1537                               type: object
1538                             type: array
1539                           requiredDuringSchedulingIgnoredDuringExecution:
1540                             description: If the affinity requirements specified by
1541                               this field are not met at scheduling time, the pod will
1542                               not be scheduled onto the node. If the affinity requirements
1543                               specified by this field cease to be met at some point
1544                               during pod execution (e.g. due to a pod label update),
1545                               the system may or may not try to eventually evict the
1546                               pod from its node. When there are multiple elements,
1547                               the lists of nodes corresponding to each podAffinityTerm
1548                               are intersected, i.e. all terms must be satisfied.
1549                             items:
1550                               description: Defines a set of pods (namely those matching
1551                                 the labelSelector relative to the given namespace(s))
1552                                 that this pod should be co-located (affinity) or not
1553                                 co-located (anti-affinity) with, where co-located
1554                                 is defined as running on a node whose value of the
1555                                 label with key <topologyKey> matches that of any node
1556                                 on which a pod of the set of pods is running
1557                               properties:
1558                                 labelSelector:
1559                                   description: A label query over a set of resources,
1560                                     in this case pods.
1561                                   properties:
1562                                     matchExpressions:
1563                                       description: matchExpressions is a list of label
1564                                         selector requirements. The requirements are
1565                                         ANDed.
1566                                       items:
1567                                         description: A label selector requirement
1568                                           is a selector that contains values, a key,
1569                                           and an operator that relates the key and
1570                                           values.
1571                                         properties:
1572                                           key:
1573                                             description: key is the label key that
1574                                               the selector applies to.
1575                                             type: string
1576                                           operator:
1577                                             description: operator represents a key's
1578                                               relationship to a set of values. Valid
1579                                               operators are In, NotIn, Exists and
1580                                               DoesNotExist.
1581                                             type: string
1582                                           values:
1583                                             description: values is an array of string
1584                                               values. If the operator is In or NotIn,
1585                                               the values array must be non-empty.
1586                                               If the operator is Exists or DoesNotExist,
1587                                               the values array must be empty. This
1588                                               array is replaced during a strategic
1589                                               merge patch.
1590                                             items:
1591                                               type: string
1592                                             type: array
1593                                         required:
1594                                         - key
1595                                         - operator
1596                                         type: object
1597                                       type: array
1598                                     matchLabels:
1599                                       additionalProperties:
1600                                         type: string
1601                                       description: matchLabels is a map of {key,value}
1602                                         pairs. A single {key,value} in the matchLabels
1603                                         map is equivalent to an element of matchExpressions,
1604                                         whose key field is "key", the operator is
1605                                         "In", and the values array contains only "value".
1606                                         The requirements are ANDed.
1607                                       type: object
1608                                   type: object
1609                                 namespaceSelector:
1610                                   description: A label query over the set of namespaces
1611                                     that the term applies to. The term is applied
1612                                     to the union of the namespaces selected by this
1613                                     field and the ones listed in the namespaces field.
1614                                     null selector and null or empty namespaces list
1615                                     means "this pod's namespace". An empty selector
1616                                     ({}) matches all namespaces. This field is beta-level
1617                                     and is only honored when PodAffinityNamespaceSelector
1618                                     feature is enabled.
1619                                   properties:
1620                                     matchExpressions:
1621                                       description: matchExpressions is a list of label
1622                                         selector requirements. The requirements are
1623                                         ANDed.
1624                                       items:
1625                                         description: A label selector requirement
1626                                           is a selector that contains values, a key,
1627                                           and an operator that relates the key and
1628                                           values.
1629                                         properties:
1630                                           key:
1631                                             description: key is the label key that
1632                                               the selector applies to.
1633                                             type: string
1634                                           operator:
1635                                             description: operator represents a key's
1636                                               relationship to a set of values. Valid
1637                                               operators are In, NotIn, Exists and
1638                                               DoesNotExist.
1639                                             type: string
1640                                           values:
1641                                             description: values is an array of string
1642                                               values. If the operator is In or NotIn,
1643                                               the values array must be non-empty.
1644                                               If the operator is Exists or DoesNotExist,
1645                                               the values array must be empty. This
1646                                               array is replaced during a strategic
1647                                               merge patch.
1648                                             items:
1649                                               type: string
1650                                             type: array
1651                                         required:
1652                                         - key
1653                                         - operator
1654                                         type: object
1655                                       type: array
1656                                     matchLabels:
1657                                       additionalProperties:
1658                                         type: string
1659                                       description: matchLabels is a map of {key,value}
1660                                         pairs. A single {key,value} in the matchLabels
1661                                         map is equivalent to an element of matchExpressions,
1662                                         whose key field is "key", the operator is
1663                                         "In", and the values array contains only "value".
1664                                         The requirements are ANDed.
1665                                       type: object
1666                                   type: object
1667                                 namespaces:
1668                                   description: namespaces specifies a static list
1669                                     of namespace names that the term applies to. The
1670                                     term is applied to the union of the namespaces
1671                                     listed in this field and the ones selected by
1672                                     namespaceSelector. null or empty namespaces list
1673                                     and null namespaceSelector means "this pod's namespace"
1674                                   items:
1675                                     type: string
1676                                   type: array
1677                                 topologyKey:
1678                                   description: This pod should be co-located (affinity)
1679                                     or not co-located (anti-affinity) with the pods
1680                                     matching the labelSelector in the specified namespaces,
1681                                     where co-located is defined as running on a node
1682                                     whose value of the label with key topologyKey
1683                                     matches that of any node on which any of the selected
1684                                     pods is running. Empty topologyKey is not allowed.
1685                                   type: string
1686                               required:
1687                               - topologyKey
1688                               type: object
1689                             type: array
1690                         type: object
1691                       podAntiAffinity:
1692                         description: Describes pod anti-affinity scheduling rules
1693                           (e.g. avoid putting this pod in the same node, zone, etc.
1694                           as some other pod(s)).
1695                         properties:
1696                           preferredDuringSchedulingIgnoredDuringExecution:
1697                             description: The scheduler will prefer to schedule pods
1698                               to nodes that satisfy the anti-affinity expressions
1699                               specified by this field, but it may choose a node that
1700                               violates one or more of the expressions. The node that
1701                               is most preferred is the one with the greatest sum of
1702                               weights, i.e. for each node that meets all of the scheduling
1703                               requirements (resource request, requiredDuringScheduling
1704                               anti-affinity expressions, etc.), compute a sum by iterating
1705                               through the elements of this field and adding "weight"
1706                               to the sum if the node has pods which matches the corresponding
1707                               podAffinityTerm; the node(s) with the highest sum are
1708                               the most preferred.
1709                             items:
1710                               description: The weights of all of the matched WeightedPodAffinityTerm
1711                                 fields are added per-node to find the most preferred
1712                                 node(s)
1713                               properties:
1714                                 podAffinityTerm:
1715                                   description: Required. A pod affinity term, associated
1716                                     with the corresponding weight.
1717                                   properties:
1718                                     labelSelector:
1719                                       description: A label query over a set of resources,
1720                                         in this case pods.
1721                                       properties:
1722                                         matchExpressions:
1723                                           description: matchExpressions is a list
1724                                             of label selector requirements. The requirements
1725                                             are ANDed.
1726                                           items:
1727                                             description: A label selector requirement
1728                                               is a selector that contains values,
1729                                               a key, and an operator that relates
1730                                               the key and values.
1731                                             properties:
1732                                               key:
1733                                                 description: key is the label key
1734                                                   that the selector applies to.
1735                                                 type: string
1736                                               operator:
1737                                                 description: operator represents a
1738                                                   key's relationship to a set of values.
1739                                                   Valid operators are In, NotIn, Exists
1740                                                   and DoesNotExist.
1741                                                 type: string
1742                                               values:
1743                                                 description: values is an array of
1744                                                   string values. If the operator is
1745                                                   In or NotIn, the values array must
1746                                                   be non-empty. If the operator is
1747                                                   Exists or DoesNotExist, the values
1748                                                   array must be empty. This array
1749                                                   is replaced during a strategic merge
1750                                                   patch.
1751                                                 items:
1752                                                   type: string
1753                                                 type: array
1754                                             required:
1755                                             - key
1756                                             - operator
1757                                             type: object
1758                                           type: array
1759                                         matchLabels:
1760                                           additionalProperties:
1761                                             type: string
1762                                           description: matchLabels is a map of {key,value}
1763                                             pairs. A single {key,value} in the matchLabels
1764                                             map is equivalent to an element of matchExpressions,
1765                                             whose key field is "key", the operator
1766                                             is "In", and the values array contains
1767                                             only "value". The requirements are ANDed.
1768                                           type: object
1769                                       type: object
1770                                     namespaceSelector:
1771                                       description: A label query over the set of namespaces
1772                                         that the term applies to. The term is applied
1773                                         to the union of the namespaces selected by
1774                                         this field and the ones listed in the namespaces
1775                                         field. null selector and null or empty namespaces
1776                                         list means "this pod's namespace". An empty
1777                                         selector ({}) matches all namespaces. This
1778                                         field is beta-level and is only honored when
1779                                         PodAffinityNamespaceSelector feature is enabled.
1780                                       properties:
1781                                         matchExpressions:
1782                                           description: matchExpressions is a list
1783                                             of label selector requirements. The requirements
1784                                             are ANDed.
1785                                           items:
1786                                             description: A label selector requirement
1787                                               is a selector that contains values,
1788                                               a key, and an operator that relates
1789                                               the key and values.
1790                                             properties:
1791                                               key:
1792                                                 description: key is the label key
1793                                                   that the selector applies to.
1794                                                 type: string
1795                                               operator:
1796                                                 description: operator represents a
1797                                                   key's relationship to a set of values.
1798                                                   Valid operators are In, NotIn, Exists
1799                                                   and DoesNotExist.
1800                                                 type: string
1801                                               values:
1802                                                 description: values is an array of
1803                                                   string values. If the operator is
1804                                                   In or NotIn, the values array must
1805                                                   be non-empty. If the operator is
1806                                                   Exists or DoesNotExist, the values
1807                                                   array must be empty. This array
1808                                                   is replaced during a strategic merge
1809                                                   patch.
1810                                                 items:
1811                                                   type: string
1812                                                 type: array
1813                                             required:
1814                                             - key
1815                                             - operator
1816                                             type: object
1817                                           type: array
1818                                         matchLabels:
1819                                           additionalProperties:
1820                                             type: string
1821                                           description: matchLabels is a map of {key,value}
1822                                             pairs. A single {key,value} in the matchLabels
1823                                             map is equivalent to an element of matchExpressions,
1824                                             whose key field is "key", the operator
1825                                             is "In", and the values array contains
1826                                             only "value". The requirements are ANDed.
1827                                           type: object
1828                                       type: object
1829                                     namespaces:
1830                                       description: namespaces specifies a static list
1831                                         of namespace names that the term applies to.
1832                                         The term is applied to the union of the namespaces
1833                                         listed in this field and the ones selected
1834                                         by namespaceSelector. null or empty namespaces
1835                                         list and null namespaceSelector means "this
1836                                         pod's namespace"
1837                                       items:
1838                                         type: string
1839                                       type: array
1840                                     topologyKey:
1841                                       description: This pod should be co-located (affinity)
1842                                         or not co-located (anti-affinity) with the
1843                                         pods matching the labelSelector in the specified
1844                                         namespaces, where co-located is defined as
1845                                         running on a node whose value of the label
1846                                         with key topologyKey matches that of any node
1847                                         on which any of the selected pods is running.
1848                                         Empty topologyKey is not allowed.
1849                                       type: string
1850                                   required:
1851                                   - topologyKey
1852                                   type: object
1853                                 weight:
1854                                   description: weight associated with matching the
1855                                     corresponding podAffinityTerm, in the range 1-100.
1856                                   format: int32
1857                                   type: integer
1858                               required:
1859                               - podAffinityTerm
1860                               - weight
1861                               type: object
1862                             type: array
1863                           requiredDuringSchedulingIgnoredDuringExecution:
1864                             description: If the anti-affinity requirements specified
1865                               by this field are not met at scheduling time, the pod
1866                               will not be scheduled onto the node. If the anti-affinity
1867                               requirements specified by this field cease to be met
1868                               at some point during pod execution (e.g. due to a pod
1869                               label update), the system may or may not try to eventually
1870                               evict the pod from its node. When there are multiple
1871                               elements, the lists of nodes corresponding to each podAffinityTerm
1872                               are intersected, i.e. all terms must be satisfied.
1873                             items:
1874                               description: Defines a set of pods (namely those matching
1875                                 the labelSelector relative to the given namespace(s))
1876                                 that this pod should be co-located (affinity) or not
1877                                 co-located (anti-affinity) with, where co-located
1878                                 is defined as running on a node whose value of the
1879                                 label with key <topologyKey> matches that of any node
1880                                 on which a pod of the set of pods is running
1881                               properties:
1882                                 labelSelector:
1883                                   description: A label query over a set of resources,
1884                                     in this case pods.
1885                                   properties:
1886                                     matchExpressions:
1887                                       description: matchExpressions is a list of label
1888                                         selector requirements. The requirements are
1889                                         ANDed.
1890                                       items:
1891                                         description: A label selector requirement
1892                                           is a selector that contains values, a key,
1893                                           and an operator that relates the key and
1894                                           values.
1895                                         properties:
1896                                           key:
1897                                             description: key is the label key that
1898                                               the selector applies to.
1899                                             type: string
1900                                           operator:
1901                                             description: operator represents a key's
1902                                               relationship to a set of values. Valid
1903                                               operators are In, NotIn, Exists and
1904                                               DoesNotExist.
1905                                             type: string
1906                                           values:
1907                                             description: values is an array of string
1908                                               values. If the operator is In or NotIn,
1909                                               the values array must be non-empty.
1910                                               If the operator is Exists or DoesNotExist,
1911                                               the values array must be empty. This
1912                                               array is replaced during a strategic
1913                                               merge patch.
1914                                             items:
1915                                               type: string
1916                                             type: array
1917                                         required:
1918                                         - key
1919                                         - operator
1920                                         type: object
1921                                       type: array
1922                                     matchLabels:
1923                                       additionalProperties:
1924                                         type: string
1925                                       description: matchLabels is a map of {key,value}
1926                                         pairs. A single {key,value} in the matchLabels
1927                                         map is equivalent to an element of matchExpressions,
1928                                         whose key field is "key", the operator is
1929                                         "In", and the values array contains only "value".
1930                                         The requirements are ANDed.
1931                                       type: object
1932                                   type: object
1933                                 namespaceSelector:
1934                                   description: A label query over the set of namespaces
1935                                     that the term applies to. The term is applied
1936                                     to the union of the namespaces selected by this
1937                                     field and the ones listed in the namespaces field.
1938                                     null selector and null or empty namespaces list
1939                                     means "this pod's namespace". An empty selector
1940                                     ({}) matches all namespaces. This field is beta-level
1941                                     and is only honored when PodAffinityNamespaceSelector
1942                                     feature is enabled.
1943                                   properties:
1944                                     matchExpressions:
1945                                       description: matchExpressions is a list of label
1946                                         selector requirements. The requirements are
1947                                         ANDed.
1948                                       items:
1949                                         description: A label selector requirement
1950                                           is a selector that contains values, a key,
1951                                           and an operator that relates the key and
1952                                           values.
1953                                         properties:
1954                                           key:
1955                                             description: key is the label key that
1956                                               the selector applies to.
1957                                             type: string
1958                                           operator:
1959                                             description: operator represents a key's
1960                                               relationship to a set of values. Valid
1961                                               operators are In, NotIn, Exists and
1962                                               DoesNotExist.
1963                                             type: string
1964                                           values:
1965                                             description: values is an array of string
1966                                               values. If the operator is In or NotIn,
1967                                               the values array must be non-empty.
1968                                               If the operator is Exists or DoesNotExist,
1969                                               the values array must be empty. This
1970                                               array is replaced during a strategic
1971                                               merge patch.
1972                                             items:
1973                                               type: string
1974                                             type: array
1975                                         required:
1976                                         - key
1977                                         - operator
1978                                         type: object
1979                                       type: array
1980                                     matchLabels:
1981                                       additionalProperties:
1982                                         type: string
1983                                       description: matchLabels is a map of {key,value}
1984                                         pairs. A single {key,value} in the matchLabels
1985                                         map is equivalent to an element of matchExpressions,
1986                                         whose key field is "key", the operator is
1987                                         "In", and the values array contains only "value".
1988                                         The requirements are ANDed.
1989                                       type: object
1990                                   type: object
1991                                 namespaces:
1992                                   description: namespaces specifies a static list
1993                                     of namespace names that the term applies to. The
1994                                     term is applied to the union of the namespaces
1995                                     listed in this field and the ones selected by
1996                                     namespaceSelector. null or empty namespaces list
1997                                     and null namespaceSelector means "this pod's namespace"
1998                                   items:
1999                                     type: string
2000                                   type: array
2001                                 topologyKey:
2002                                   description: This pod should be co-located (affinity)
2003                                     or not co-located (anti-affinity) with the pods
2004                                     matching the labelSelector in the specified namespaces,
2005                                     where co-located is defined as running on a node
2006                                     whose value of the label with key topologyKey
2007                                     matches that of any node on which any of the selected
2008                                     pods is running. Empty topologyKey is not allowed.
2009                                   type: string
2010                               required:
2011                               - topologyKey
2012                               type: object
2013                             type: array
2014                         type: object
2015                     type: object
2016                   nodeSelector:
2017                     additionalProperties:
2018                       type: string
2019                     description: 'nodeSelector is the node selector applied to the
2020                       relevant kind of pods It specifies a map of key-value pairs:
2021                       for the pod to be eligible to run on a node, the node must have
2022                       each of the indicated key-value pairs as labels (it can have
2023                       additional labels as well). See https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector'
2024                     type: object
2025                   tolerations:
2026                     description: tolerations is a list of tolerations applied to the
2027                       relevant kind of pods See https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
2028                       for more info. These are additional tolerations other than default
2029                       ones.
2030                     items:
2031                       description: The pod this Toleration is attached to tolerates
2032                         any taint that matches the triple <key,value,effect> using
2033                         the matching operator <operator>.
2034                       properties:
2035                         effect:
2036                           description: Effect indicates the taint effect to match.
2037                             Empty means match all taint effects. When specified, allowed
2038                             values are NoSchedule, PreferNoSchedule and NoExecute.
2039                           type: string
2040                         key:
2041                           description: Key is the taint key that the toleration applies
2042                             to. Empty means match all taint keys. If the key is empty,
2043                             operator must be Exists; this combination means to match
2044                             all values and all keys.
2045                           type: string
2046                         operator:
2047                           description: Operator represents a key's relationship to
2048                             the value. Valid operators are Exists and Equal. Defaults
2049                             to Equal. Exists is equivalent to wildcard for value,
2050                             so that a pod can tolerate all taints of a particular
2051                             category.
2052                           type: string
2053                         tolerationSeconds:
2054                           description: TolerationSeconds represents the period of
2055                             time the toleration (which must be of effect NoExecute,
2056                             otherwise this field is ignored) tolerates the taint.
2057                             By default, it is not set, which means tolerate the taint
2058                             forever (do not evict). Zero and negative values will
2059                             be treated as 0 (evict immediately) by the system.
2060                           format: int64
2061                           type: integer
2062                         value:
2063                           description: Value is the taint value the toleration matches
2064                             to. If the operator is Exists, the value should be empty,
2065                             otherwise just a regular string.
2066                           type: string
2067                       type: object
2068                     type: array
2069                 type: object
2070             type: object
2071           status:
2072             description: CDIStatus defines the status of the installation
2073             properties:
2074               conditions:
2075                 description: A list of current conditions of the resource
2076                 items:
2077                   description: Condition represents the state of the operator's reconciliation
2078                     functionality.
2079                   properties:
2080                     lastHeartbeatTime:
2081                       format: date-time
2082                       type: string
2083                     lastTransitionTime:
2084                       format: date-time
2085                       type: string
2086                     message:
2087                       type: string
2088                     reason:
2089                       type: string
2090                     status:
2091                       type: string
2092                     type:
2093                       description: ConditionType is the state of the operator's reconciliation
2094                         functionality.
2095                       type: string
2096                   required:
2097                   - status
2098                   - type
2099                   type: object
2100                 type: array
2101               observedVersion:
2102                 description: The observed version of the resource
2103                 type: string
2104               operatorVersion:
2105                 description: The version of the resource as defined by the operator
2106                 type: string
2107               phase:
2108                 description: Phase is the current phase of the deployment
2109                 type: string
2110               targetVersion:
2111                 description: The desired version of the resource
2112                 type: string
2113             type: object
2114         required:
2115         - spec
2116         type: object
2117     served: true
2118     storage: false
2119     subresources: {}
2120   - additionalPrinterColumns:
2121     - jsonPath: .metadata.creationTimestamp
2122       name: Age
2123       type: date
2124     - jsonPath: .status.phase
2125       name: Phase
2126       type: string
2127     name: v1beta1
2128     schema:
2129       openAPIV3Schema:
2130         description: CDI is the CDI Operator CRD
2131         properties:
2132           apiVersion:
2133             description: 'APIVersion defines the versioned schema of this representation
2134               of an object. Servers should convert recognized schemas to the latest
2135               internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
2136             type: string
2137           kind:
2138             description: 'Kind is a string value representing the REST resource this
2139               object represents. Servers may infer this from the endpoint the client
2140               submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
2141             type: string
2142           metadata:
2143             type: object
2144           spec:
2145             description: CDISpec defines our specification for the CDI installation
2146             properties:
2147               certConfig:
2148                 description: certificate configuration
2149                 properties:
2150                   ca:
2151                     description: CA configuration CA certs are kept in the CA bundle
2152                       as long as they are valid
2153                     properties:
2154                       duration:
2155                         description: The requested 'duration' (i.e. lifetime) of the
2156                           Certificate.
2157                         type: string
2158                       renewBefore:
2159                         description: The amount of time before the currently issued
2160                           certificate's `notAfter` time that we will begin to attempt
2161                           to renew the certificate.
2162                         type: string
2163                     type: object
2164                   server:
2165                     description: Server configuration Certs are rotated and discarded
2166                     properties:
2167                       duration:
2168                         description: The requested 'duration' (i.e. lifetime) of the
2169                           Certificate.
2170                         type: string
2171                       renewBefore:
2172                         description: The amount of time before the currently issued
2173                           certificate's `notAfter` time that we will begin to attempt
2174                           to renew the certificate.
2175                         type: string
2176                     type: object
2177                 type: object
2178               cloneStrategyOverride:
2179                 description: 'Clone strategy override: should we use a host-assisted
2180                   copy even if snapshots are available?'
2181                 enum:
2182                 - copy
2183                 - snapshot
2184                 type: string
2185               config:
2186                 description: CDIConfig at CDI level
2187                 properties:
2188                   featureGates:
2189                     description: FeatureGates are a list of specific enabled feature
2190                       gates
2191                     items:
2192                       type: string
2193                     type: array
2194                   filesystemOverhead:
2195                     description: FilesystemOverhead describes the space reserved for
2196                       overhead when using Filesystem volumes. A value is between 0
2197                       and 1, if not defined it is 0.055 (5.5% overhead)
2198                     properties:
2199                       global:
2200                         description: Global is how much space of a Filesystem volume
2201                           should be reserved for overhead. This value is used unless
2202                           overridden by a more specific value (per storageClass)
2203                         pattern: ^(0(?:\.\d{1,3})?|1)$
2204                         type: string
2205                       storageClass:
2206                         additionalProperties:
2207                           description: 'Percent is a string that can only be a value
2208                             between [0,1) (Note: we actually rely on reconcile to
2209                             reject invalid values)'
2210                           pattern: ^(0(?:\.\d{1,3})?|1)$
2211                           type: string
2212                         description: StorageClass specifies how much space of a Filesystem
2213                           volume should be reserved for safety. The keys are the storageClass
2214                           and the values are the overhead. This value overrides the
2215                           global value
2216                         type: object
2217                     type: object
2218                   importProxy:
2219                     description: ImportProxy contains importer pod proxy configuration.
2220                     properties:
2221                       HTTPProxy:
2222                         description: HTTPProxy is the URL http://<username>:<pswd>@<ip>:<port>
2223                           of the import proxy for HTTP requests.  Empty means unset
2224                           and will not result in the import pod env var.
2225                         type: string
2226                       HTTPSProxy:
2227                         description: HTTPSProxy is the URL https://<username>:<pswd>@<ip>:<port>
2228                           of the import proxy for HTTPS requests.  Empty means unset
2229                           and will not result in the import pod env var.
2230                         type: string
2231                       noProxy:
2232                         description: NoProxy is a comma-separated list of hostnames
2233                           and/or CIDRs for which the proxy should not be used. Empty
2234                           means unset and will not result in the import pod env var.
2235                         type: string
2236                       trustedCAProxy:
2237                         description: "TrustedCAProxy is the name of a ConfigMap in
2238                           the cdi namespace that contains a user-provided trusted
2239                           certificate authority (CA) bundle. The TrustedCAProxy field
2240                           is consumed by the import controller that is resposible
2241                           for coping it to a config map named trusted-ca-proxy-bundle-cm
2242                           in the cdi namespace. Here is an example of the ConfigMap
2243                           (in yaml): \n apiVersion: v1 kind: ConfigMap metadata:   name:
2244                           trusted-ca-proxy-bundle-cm   namespace: cdi data:   ca.pem:
2245                           |     -----BEGIN CERTIFICATE----- \t   ... <base64 encoded
2246                           cert> ... \t   -----END CERTIFICATE-----"
2247                         type: string
2248                     type: object
2249                   insecureRegistries:
2250                     description: InsecureRegistries is a list of TLS disabled registries
2251                     items:
2252                       type: string
2253                     type: array
2254                   podResourceRequirements:
2255                     description: ResourceRequirements describes the compute resource
2256                       requirements.
2257                     properties:
2258                       limits:
2259                         additionalProperties:
2260                           anyOf:
2261                           - type: integer
2262                           - type: string
2263                           pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
2264                           x-kubernetes-int-or-string: true
2265                         description: 'Limits describes the maximum amount of compute
2266                           resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
2267                         type: object
2268                       requests:
2269                         additionalProperties:
2270                           anyOf:
2271                           - type: integer
2272                           - type: string
2273                           pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
2274                           x-kubernetes-int-or-string: true
2275                         description: 'Requests describes the minimum amount of compute
2276                           resources required. If Requests is omitted for a container,
2277                           it defaults to Limits if that is explicitly specified, otherwise
2278                           to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
2279                         type: object
2280                     type: object
2281                   preallocation:
2282                     description: Preallocation controls whether storage for DataVolumes
2283                       should be allocated in advance.
2284                     type: boolean
2285                   scratchSpaceStorageClass:
2286                     description: 'Override the storage class to used for scratch space
2287                       during transfer operations. The scratch space storage class
2288                       is determined in the following order: 1. value of scratchSpaceStorageClass,
2289                       if that doesn''t exist, use the default storage class, if there
2290                       is no default storage class, use the storage class of the DataVolume,
2291                       if no storage class specified, use no storage class for scratch
2292                       space'
2293                     type: string
2294                   uploadProxyURLOverride:
2295                     description: Override the URL used when uploading to a DataVolume
2296                     type: string
2297                 type: object
2298               imagePullPolicy:
2299                 description: PullPolicy describes a policy for if/when to pull a container
2300                   image
2301                 enum:
2302                 - Always
2303                 - IfNotPresent
2304                 - Never
2305                 type: string
2306               infra:
2307                 description: Rules on which nodes CDI infrastructure pods will be
2308                   scheduled
2309                 properties:
2310                   affinity:
2311                     description: affinity enables pod affinity/anti-affinity placement
2312                       expanding the types of constraints that can be expressed with
2313                       nodeSelector. affinity is going to be applied to the relevant
2314                       kind of pods in parallel with nodeSelector See https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity
2315                     properties:
2316                       nodeAffinity:
2317                         description: Describes node affinity scheduling rules for
2318                           the pod.
2319                         properties:
2320                           preferredDuringSchedulingIgnoredDuringExecution:
2321                             description: The scheduler will prefer to schedule pods
2322                               to nodes that satisfy the affinity expressions specified
2323                               by this field, but it may choose a node that violates
2324                               one or more of the expressions. The node that is most
2325                               preferred is the one with the greatest sum of weights,
2326                               i.e. for each node that meets all of the scheduling
2327                               requirements (resource request, requiredDuringScheduling
2328                               affinity expressions, etc.), compute a sum by iterating
2329                               through the elements of this field and adding "weight"
2330                               to the sum if the node matches the corresponding matchExpressions;
2331                               the node(s) with the highest sum are the most preferred.
2332                             items:
2333                               description: An empty preferred scheduling term matches
2334                                 all objects with implicit weight 0 (i.e. it's a no-op).
2335                                 A null preferred scheduling term matches no objects
2336                                 (i.e. is also a no-op).
2337                               properties:
2338                                 preference:
2339                                   description: A node selector term, associated with
2340                                     the corresponding weight.
2341                                   properties:
2342                                     matchExpressions:
2343                                       description: A list of node selector requirements
2344                                         by node's labels.
2345                                       items:
2346                                         description: A node selector requirement is
2347                                           a selector that contains values, a key,
2348                                           and an operator that relates the key and
2349                                           values.
2350                                         properties:
2351                                           key:
2352                                             description: The label key that the selector
2353                                               applies to.
2354                                             type: string
2355                                           operator:
2356                                             description: Represents a key's relationship
2357                                               to a set of values. Valid operators
2358                                               are In, NotIn, Exists, DoesNotExist.
2359                                               Gt, and Lt.
2360                                             type: string
2361                                           values:
2362                                             description: An array of string values.
2363                                               If the operator is In or NotIn, the
2364                                               values array must be non-empty. If the
2365                                               operator is Exists or DoesNotExist,
2366                                               the values array must be empty. If the
2367                                               operator is Gt or Lt, the values array
2368                                               must have a single element, which will
2369                                               be interpreted as an integer. This array
2370                                               is replaced during a strategic merge
2371                                               patch.
2372                                             items:
2373                                               type: string
2374                                             type: array
2375                                         required:
2376                                         - key
2377                                         - operator
2378                                         type: object
2379                                       type: array
2380                                     matchFields:
2381                                       description: A list of node selector requirements
2382                                         by node's fields.
2383                                       items:
2384                                         description: A node selector requirement is
2385                                           a selector that contains values, a key,
2386                                           and an operator that relates the key and
2387                                           values.
2388                                         properties:
2389                                           key:
2390                                             description: The label key that the selector
2391                                               applies to.
2392                                             type: string
2393                                           operator:
2394                                             description: Represents a key's relationship
2395                                               to a set of values. Valid operators
2396                                               are In, NotIn, Exists, DoesNotExist.
2397                                               Gt, and Lt.
2398                                             type: string
2399                                           values:
2400                                             description: An array of string values.
2401                                               If the operator is In or NotIn, the
2402                                               values array must be non-empty. If the
2403                                               operator is Exists or DoesNotExist,
2404                                               the values array must be empty. If the
2405                                               operator is Gt or Lt, the values array
2406                                               must have a single element, which will
2407                                               be interpreted as an integer. This array
2408                                               is replaced during a strategic merge
2409                                               patch.
2410                                             items:
2411                                               type: string
2412                                             type: array
2413                                         required:
2414                                         - key
2415                                         - operator
2416                                         type: object
2417                                       type: array
2418                                   type: object
2419                                 weight:
2420                                   description: Weight associated with matching the
2421                                     corresponding nodeSelectorTerm, in the range 1-100.
2422                                   format: int32
2423                                   type: integer
2424                               required:
2425                               - preference
2426                               - weight
2427                               type: object
2428                             type: array
2429                           requiredDuringSchedulingIgnoredDuringExecution:
2430                             description: If the affinity requirements specified by
2431                               this field are not met at scheduling time, the pod will
2432                               not be scheduled onto the node. If the affinity requirements
2433                               specified by this field cease to be met at some point
2434                               during pod execution (e.g. due to an update), the system
2435                               may or may not try to eventually evict the pod from
2436                               its node.
2437                             properties:
2438                               nodeSelectorTerms:
2439                                 description: Required. A list of node selector terms.
2440                                   The terms are ORed.
2441                                 items:
2442                                   description: A null or empty node selector term
2443                                     matches no objects. The requirements of them are
2444                                     ANDed. The TopologySelectorTerm type implements
2445                                     a subset of the NodeSelectorTerm.
2446                                   properties:
2447                                     matchExpressions:
2448                                       description: A list of node selector requirements
2449                                         by node's labels.
2450                                       items:
2451                                         description: A node selector requirement is
2452                                           a selector that contains values, a key,
2453                                           and an operator that relates the key and
2454                                           values.
2455                                         properties:
2456                                           key:
2457                                             description: The label key that the selector
2458                                               applies to.
2459                                             type: string
2460                                           operator:
2461                                             description: Represents a key's relationship
2462                                               to a set of values. Valid operators
2463                                               are In, NotIn, Exists, DoesNotExist.
2464                                               Gt, and Lt.
2465                                             type: string
2466                                           values:
2467                                             description: An array of string values.
2468                                               If the operator is In or NotIn, the
2469                                               values array must be non-empty. If the
2470                                               operator is Exists or DoesNotExist,
2471                                               the values array must be empty. If the
2472                                               operator is Gt or Lt, the values array
2473                                               must have a single element, which will
2474                                               be interpreted as an integer. This array
2475                                               is replaced during a strategic merge
2476                                               patch.
2477                                             items:
2478                                               type: string
2479                                             type: array
2480                                         required:
2481                                         - key
2482                                         - operator
2483                                         type: object
2484                                       type: array
2485                                     matchFields:
2486                                       description: A list of node selector requirements
2487                                         by node's fields.
2488                                       items:
2489                                         description: A node selector requirement is
2490                                           a selector that contains values, a key,
2491                                           and an operator that relates the key and
2492                                           values.
2493                                         properties:
2494                                           key:
2495                                             description: The label key that the selector
2496                                               applies to.
2497                                             type: string
2498                                           operator:
2499                                             description: Represents a key's relationship
2500                                               to a set of values. Valid operators
2501                                               are In, NotIn, Exists, DoesNotExist.
2502                                               Gt, and Lt.
2503                                             type: string
2504                                           values:
2505                                             description: An array of string values.
2506                                               If the operator is In or NotIn, the
2507                                               values array must be non-empty. If the
2508                                               operator is Exists or DoesNotExist,
2509                                               the values array must be empty. If the
2510                                               operator is Gt or Lt, the values array
2511                                               must have a single element, which will
2512                                               be interpreted as an integer. This array
2513                                               is replaced during a strategic merge
2514                                               patch.
2515                                             items:
2516                                               type: string
2517                                             type: array
2518                                         required:
2519                                         - key
2520                                         - operator
2521                                         type: object
2522                                       type: array
2523                                   type: object
2524                                 type: array
2525                             required:
2526                             - nodeSelectorTerms
2527                             type: object
2528                         type: object
2529                       podAffinity:
2530                         description: Describes pod affinity scheduling rules (e.g.
2531                           co-locate this pod in the same node, zone, etc. as some
2532                           other pod(s)).
2533                         properties:
2534                           preferredDuringSchedulingIgnoredDuringExecution:
2535                             description: The scheduler will prefer to schedule pods
2536                               to nodes that satisfy the affinity expressions specified
2537                               by this field, but it may choose a node that violates
2538                               one or more of the expressions. The node that is most
2539                               preferred is the one with the greatest sum of weights,
2540                               i.e. for each node that meets all of the scheduling
2541                               requirements (resource request, requiredDuringScheduling
2542                               affinity expressions, etc.), compute a sum by iterating
2543                               through the elements of this field and adding "weight"
2544                               to the sum if the node has pods which matches the corresponding
2545                               podAffinityTerm; the node(s) with the highest sum are
2546                               the most preferred.
2547                             items:
2548                               description: The weights of all of the matched WeightedPodAffinityTerm
2549                                 fields are added per-node to find the most preferred
2550                                 node(s)
2551                               properties:
2552                                 podAffinityTerm:
2553                                   description: Required. A pod affinity term, associated
2554                                     with the corresponding weight.
2555                                   properties:
2556                                     labelSelector:
2557                                       description: A label query over a set of resources,
2558                                         in this case pods.
2559                                       properties:
2560                                         matchExpressions:
2561                                           description: matchExpressions is a list
2562                                             of label selector requirements. The requirements
2563                                             are ANDed.
2564                                           items:
2565                                             description: A label selector requirement
2566                                               is a selector that contains values,
2567                                               a key, and an operator that relates
2568                                               the key and values.
2569                                             properties:
2570                                               key:
2571                                                 description: key is the label key
2572                                                   that the selector applies to.
2573                                                 type: string
2574                                               operator:
2575                                                 description: operator represents a
2576                                                   key's relationship to a set of values.
2577                                                   Valid operators are In, NotIn, Exists
2578                                                   and DoesNotExist.
2579                                                 type: string
2580                                               values:
2581                                                 description: values is an array of
2582                                                   string values. If the operator is
2583                                                   In or NotIn, the values array must
2584                                                   be non-empty. If the operator is
2585                                                   Exists or DoesNotExist, the values
2586                                                   array must be empty. This array
2587                                                   is replaced during a strategic merge
2588                                                   patch.
2589                                                 items:
2590                                                   type: string
2591                                                 type: array
2592                                             required:
2593                                             - key
2594                                             - operator
2595                                             type: object
2596                                           type: array
2597                                         matchLabels:
2598                                           additionalProperties:
2599                                             type: string
2600                                           description: matchLabels is a map of {key,value}
2601                                             pairs. A single {key,value} in the matchLabels
2602                                             map is equivalent to an element of matchExpressions,
2603                                             whose key field is "key", the operator
2604                                             is "In", and the values array contains
2605                                             only "value". The requirements are ANDed.
2606                                           type: object
2607                                       type: object
2608                                     namespaceSelector:
2609                                       description: A label query over the set of namespaces
2610                                         that the term applies to. The term is applied
2611                                         to the union of the namespaces selected by
2612                                         this field and the ones listed in the namespaces
2613                                         field. null selector and null or empty namespaces
2614                                         list means "this pod's namespace". An empty
2615                                         selector ({}) matches all namespaces. This
2616                                         field is beta-level and is only honored when
2617                                         PodAffinityNamespaceSelector feature is enabled.
2618                                       properties:
2619                                         matchExpressions:
2620                                           description: matchExpressions is a list
2621                                             of label selector requirements. The requirements
2622                                             are ANDed.
2623                                           items:
2624                                             description: A label selector requirement
2625                                               is a selector that contains values,
2626                                               a key, and an operator that relates
2627                                               the key and values.
2628                                             properties:
2629                                               key:
2630                                                 description: key is the label key
2631                                                   that the selector applies to.
2632                                                 type: string
2633                                               operator:
2634                                                 description: operator represents a
2635                                                   key's relationship to a set of values.
2636                                                   Valid operators are In, NotIn, Exists
2637                                                   and DoesNotExist.
2638                                                 type: string
2639                                               values:
2640                                                 description: values is an array of
2641                                                   string values. If the operator is
2642                                                   In or NotIn, the values array must
2643                                                   be non-empty. If the operator is
2644                                                   Exists or DoesNotExist, the values
2645                                                   array must be empty. This array
2646                                                   is replaced during a strategic merge
2647                                                   patch.
2648                                                 items:
2649                                                   type: string
2650                                                 type: array
2651                                             required:
2652                                             - key
2653                                             - operator
2654                                             type: object
2655                                           type: array
2656                                         matchLabels:
2657                                           additionalProperties:
2658                                             type: string
2659                                           description: matchLabels is a map of {key,value}
2660                                             pairs. A single {key,value} in the matchLabels
2661                                             map is equivalent to an element of matchExpressions,
2662                                             whose key field is "key", the operator
2663                                             is "In", and the values array contains
2664                                             only "value". The requirements are ANDed.
2665                                           type: object
2666                                       type: object
2667                                     namespaces:
2668                                       description: namespaces specifies a static list
2669                                         of namespace names that the term applies to.
2670                                         The term is applied to the union of the namespaces
2671                                         listed in this field and the ones selected
2672                                         by namespaceSelector. null or empty namespaces
2673                                         list and null namespaceSelector means "this
2674                                         pod's namespace"
2675                                       items:
2676                                         type: string
2677                                       type: array
2678                                     topologyKey:
2679                                       description: This pod should be co-located (affinity)
2680                                         or not co-located (anti-affinity) with the
2681                                         pods matching the labelSelector in the specified
2682                                         namespaces, where co-located is defined as
2683                                         running on a node whose value of the label
2684                                         with key topologyKey matches that of any node
2685                                         on which any of the selected pods is running.
2686                                         Empty topologyKey is not allowed.
2687                                       type: string
2688                                   required:
2689                                   - topologyKey
2690                                   type: object
2691                                 weight:
2692                                   description: weight associated with matching the
2693                                     corresponding podAffinityTerm, in the range 1-100.
2694                                   format: int32
2695                                   type: integer
2696                               required:
2697                               - podAffinityTerm
2698                               - weight
2699                               type: object
2700                             type: array
2701                           requiredDuringSchedulingIgnoredDuringExecution:
2702                             description: If the affinity requirements specified by
2703                               this field are not met at scheduling time, the pod will
2704                               not be scheduled onto the node. If the affinity requirements
2705                               specified by this field cease to be met at some point
2706                               during pod execution (e.g. due to a pod label update),
2707                               the system may or may not try to eventually evict the
2708                               pod from its node. When there are multiple elements,
2709                               the lists of nodes corresponding to each podAffinityTerm
2710                               are intersected, i.e. all terms must be satisfied.
2711                             items:
2712                               description: Defines a set of pods (namely those matching
2713                                 the labelSelector relative to the given namespace(s))
2714                                 that this pod should be co-located (affinity) or not
2715                                 co-located (anti-affinity) with, where co-located
2716                                 is defined as running on a node whose value of the
2717                                 label with key <topologyKey> matches that of any node
2718                                 on which a pod of the set of pods is running
2719                               properties:
2720                                 labelSelector:
2721                                   description: A label query over a set of resources,
2722                                     in this case pods.
2723                                   properties:
2724                                     matchExpressions:
2725                                       description: matchExpressions is a list of label
2726                                         selector requirements. The requirements are
2727                                         ANDed.
2728                                       items:
2729                                         description: A label selector requirement
2730                                           is a selector that contains values, a key,
2731                                           and an operator that relates the key and
2732                                           values.
2733                                         properties:
2734                                           key:
2735                                             description: key is the label key that
2736                                               the selector applies to.
2737                                             type: string
2738                                           operator:
2739                                             description: operator represents a key's
2740                                               relationship to a set of values. Valid
2741                                               operators are In, NotIn, Exists and
2742                                               DoesNotExist.
2743                                             type: string
2744                                           values:
2745                                             description: values is an array of string
2746                                               values. If the operator is In or NotIn,
2747                                               the values array must be non-empty.
2748                                               If the operator is Exists or DoesNotExist,
2749                                               the values array must be empty. This
2750                                               array is replaced during a strategic
2751                                               merge patch.
2752                                             items:
2753                                               type: string
2754                                             type: array
2755                                         required:
2756                                         - key
2757                                         - operator
2758                                         type: object
2759                                       type: array
2760                                     matchLabels:
2761                                       additionalProperties:
2762                                         type: string
2763                                       description: matchLabels is a map of {key,value}
2764                                         pairs. A single {key,value} in the matchLabels
2765                                         map is equivalent to an element of matchExpressions,
2766                                         whose key field is "key", the operator is
2767                                         "In", and the values array contains only "value".
2768                                         The requirements are ANDed.
2769                                       type: object
2770                                   type: object
2771                                 namespaceSelector:
2772                                   description: A label query over the set of namespaces
2773                                     that the term applies to. The term is applied
2774                                     to the union of the namespaces selected by this
2775                                     field and the ones listed in the namespaces field.
2776                                     null selector and null or empty namespaces list
2777                                     means "this pod's namespace". An empty selector
2778                                     ({}) matches all namespaces. This field is beta-level
2779                                     and is only honored when PodAffinityNamespaceSelector
2780                                     feature is enabled.
2781                                   properties:
2782                                     matchExpressions:
2783                                       description: matchExpressions is a list of label
2784                                         selector requirements. The requirements are
2785                                         ANDed.
2786                                       items:
2787                                         description: A label selector requirement
2788                                           is a selector that contains values, a key,
2789                                           and an operator that relates the key and
2790                                           values.
2791                                         properties:
2792                                           key:
2793                                             description: key is the label key that
2794                                               the selector applies to.
2795                                             type: string
2796                                           operator:
2797                                             description: operator represents a key's
2798                                               relationship to a set of values. Valid
2799                                               operators are In, NotIn, Exists and
2800                                               DoesNotExist.
2801                                             type: string
2802                                           values:
2803                                             description: values is an array of string
2804                                               values. If the operator is In or NotIn,
2805                                               the values array must be non-empty.
2806                                               If the operator is Exists or DoesNotExist,
2807                                               the values array must be empty. This
2808                                               array is replaced during a strategic
2809                                               merge patch.
2810                                             items:
2811                                               type: string
2812                                             type: array
2813                                         required:
2814                                         - key
2815                                         - operator
2816                                         type: object
2817                                       type: array
2818                                     matchLabels:
2819                                       additionalProperties:
2820                                         type: string
2821                                       description: matchLabels is a map of {key,value}
2822                                         pairs. A single {key,value} in the matchLabels
2823                                         map is equivalent to an element of matchExpressions,
2824                                         whose key field is "key", the operator is
2825                                         "In", and the values array contains only "value".
2826                                         The requirements are ANDed.
2827                                       type: object
2828                                   type: object
2829                                 namespaces:
2830                                   description: namespaces specifies a static list
2831                                     of namespace names that the term applies to. The
2832                                     term is applied to the union of the namespaces
2833                                     listed in this field and the ones selected by
2834                                     namespaceSelector. null or empty namespaces list
2835                                     and null namespaceSelector means "this pod's namespace"
2836                                   items:
2837                                     type: string
2838                                   type: array
2839                                 topologyKey:
2840                                   description: This pod should be co-located (affinity)
2841                                     or not co-located (anti-affinity) with the pods
2842                                     matching the labelSelector in the specified namespaces,
2843                                     where co-located is defined as running on a node
2844                                     whose value of the label with key topologyKey
2845                                     matches that of any node on which any of the selected
2846                                     pods is running. Empty topologyKey is not allowed.
2847                                   type: string
2848                               required:
2849                               - topologyKey
2850                               type: object
2851                             type: array
2852                         type: object
2853                       podAntiAffinity:
2854                         description: Describes pod anti-affinity scheduling rules
2855                           (e.g. avoid putting this pod in the same node, zone, etc.
2856                           as some other pod(s)).
2857                         properties:
2858                           preferredDuringSchedulingIgnoredDuringExecution:
2859                             description: The scheduler will prefer to schedule pods
2860                               to nodes that satisfy the anti-affinity expressions
2861                               specified by this field, but it may choose a node that
2862                               violates one or more of the expressions. The node that
2863                               is most preferred is the one with the greatest sum of
2864                               weights, i.e. for each node that meets all of the scheduling
2865                               requirements (resource request, requiredDuringScheduling
2866                               anti-affinity expressions, etc.), compute a sum by iterating
2867                               through the elements of this field and adding "weight"
2868                               to the sum if the node has pods which matches the corresponding
2869                               podAffinityTerm; the node(s) with the highest sum are
2870                               the most preferred.
2871                             items:
2872                               description: The weights of all of the matched WeightedPodAffinityTerm
2873                                 fields are added per-node to find the most preferred
2874                                 node(s)
2875                               properties:
2876                                 podAffinityTerm:
2877                                   description: Required. A pod affinity term, associated
2878                                     with the corresponding weight.
2879                                   properties:
2880                                     labelSelector:
2881                                       description: A label query over a set of resources,
2882                                         in this case pods.
2883                                       properties:
2884                                         matchExpressions:
2885                                           description: matchExpressions is a list
2886                                             of label selector requirements. The requirements
2887                                             are ANDed.
2888                                           items:
2889                                             description: A label selector requirement
2890                                               is a selector that contains values,
2891                                               a key, and an operator that relates
2892                                               the key and values.
2893                                             properties:
2894                                               key:
2895                                                 description: key is the label key
2896                                                   that the selector applies to.
2897                                                 type: string
2898                                               operator:
2899                                                 description: operator represents a
2900                                                   key's relationship to a set of values.
2901                                                   Valid operators are In, NotIn, Exists
2902                                                   and DoesNotExist.
2903                                                 type: string
2904                                               values:
2905                                                 description: values is an array of
2906                                                   string values. If the operator is
2907                                                   In or NotIn, the values array must
2908                                                   be non-empty. If the operator is
2909                                                   Exists or DoesNotExist, the values
2910                                                   array must be empty. This array
2911                                                   is replaced during a strategic merge
2912                                                   patch.
2913                                                 items:
2914                                                   type: string
2915                                                 type: array
2916                                             required:
2917                                             - key
2918                                             - operator
2919                                             type: object
2920                                           type: array
2921                                         matchLabels:
2922                                           additionalProperties:
2923                                             type: string
2924                                           description: matchLabels is a map of {key,value}
2925                                             pairs. A single {key,value} in the matchLabels
2926                                             map is equivalent to an element of matchExpressions,
2927                                             whose key field is "key", the operator
2928                                             is "In", and the values array contains
2929                                             only "value". The requirements are ANDed.
2930                                           type: object
2931                                       type: object
2932                                     namespaceSelector:
2933                                       description: A label query over the set of namespaces
2934                                         that the term applies to. The term is applied
2935                                         to the union of the namespaces selected by
2936                                         this field and the ones listed in the namespaces
2937                                         field. null selector and null or empty namespaces
2938                                         list means "this pod's namespace". An empty
2939                                         selector ({}) matches all namespaces. This
2940                                         field is beta-level and is only honored when
2941                                         PodAffinityNamespaceSelector feature is enabled.
2942                                       properties:
2943                                         matchExpressions:
2944                                           description: matchExpressions is a list
2945                                             of label selector requirements. The requirements
2946                                             are ANDed.
2947                                           items:
2948                                             description: A label selector requirement
2949                                               is a selector that contains values,
2950                                               a key, and an operator that relates
2951                                               the key and values.
2952                                             properties:
2953                                               key:
2954                                                 description: key is the label key
2955                                                   that the selector applies to.
2956                                                 type: string
2957                                               operator:
2958                                                 description: operator represents a
2959                                                   key's relationship to a set of values.
2960                                                   Valid operators are In, NotIn, Exists
2961                                                   and DoesNotExist.
2962                                                 type: string
2963                                               values:
2964                                                 description: values is an array of
2965                                                   string values. If the operator is
2966                                                   In or NotIn, the values array must
2967                                                   be non-empty. If the operator is
2968                                                   Exists or DoesNotExist, the values
2969                                                   array must be empty. This array
2970                                                   is replaced during a strategic merge
2971                                                   patch.
2972                                                 items:
2973                                                   type: string
2974                                                 type: array
2975                                             required:
2976                                             - key
2977                                             - operator
2978                                             type: object
2979                                           type: array
2980                                         matchLabels:
2981                                           additionalProperties:
2982                                             type: string
2983                                           description: matchLabels is a map of {key,value}
2984                                             pairs. A single {key,value} in the matchLabels
2985                                             map is equivalent to an element of matchExpressions,
2986                                             whose key field is "key", the operator
2987                                             is "In", and the values array contains
2988                                             only "value". The requirements are ANDed.
2989                                           type: object
2990                                       type: object
2991                                     namespaces:
2992                                       description: namespaces specifies a static list
2993                                         of namespace names that the term applies to.
2994                                         The term is applied to the union of the namespaces
2995                                         listed in this field and the ones selected
2996                                         by namespaceSelector. null or empty namespaces
2997                                         list and null namespaceSelector means "this
2998                                         pod's namespace"
2999                                       items:
3000                                         type: string
3001                                       type: array
3002                                     topologyKey:
3003                                       description: This pod should be co-located (affinity)
3004                                         or not co-located (anti-affinity) with the
3005                                         pods matching the labelSelector in the specified
3006                                         namespaces, where co-located is defined as
3007                                         running on a node whose value of the label
3008                                         with key topologyKey matches that of any node
3009                                         on which any of the selected pods is running.
3010                                         Empty topologyKey is not allowed.
3011                                       type: string
3012                                   required:
3013                                   - topologyKey
3014                                   type: object
3015                                 weight:
3016                                   description: weight associated with matching the
3017                                     corresponding podAffinityTerm, in the range 1-100.
3018                                   format: int32
3019                                   type: integer
3020                               required:
3021                               - podAffinityTerm
3022                               - weight
3023                               type: object
3024                             type: array
3025                           requiredDuringSchedulingIgnoredDuringExecution:
3026                             description: If the anti-affinity requirements specified
3027                               by this field are not met at scheduling time, the pod
3028                               will not be scheduled onto the node. If the anti-affinity
3029                               requirements specified by this field cease to be met
3030                               at some point during pod execution (e.g. due to a pod
3031                               label update), the system may or may not try to eventually
3032                               evict the pod from its node. When there are multiple
3033                               elements, the lists of nodes corresponding to each podAffinityTerm
3034                               are intersected, i.e. all terms must be satisfied.
3035                             items:
3036                               description: Defines a set of pods (namely those matching
3037                                 the labelSelector relative to the given namespace(s))
3038                                 that this pod should be co-located (affinity) or not
3039                                 co-located (anti-affinity) with, where co-located
3040                                 is defined as running on a node whose value of the
3041                                 label with key <topologyKey> matches that of any node
3042                                 on which a pod of the set of pods is running
3043                               properties:
3044                                 labelSelector:
3045                                   description: A label query over a set of resources,
3046                                     in this case pods.
3047                                   properties:
3048                                     matchExpressions:
3049                                       description: matchExpressions is a list of label
3050                                         selector requirements. The requirements are
3051                                         ANDed.
3052                                       items:
3053                                         description: A label selector requirement
3054                                           is a selector that contains values, a key,
3055                                           and an operator that relates the key and
3056                                           values.
3057                                         properties:
3058                                           key:
3059                                             description: key is the label key that
3060                                               the selector applies to.
3061                                             type: string
3062                                           operator:
3063                                             description: operator represents a key's
3064                                               relationship to a set of values. Valid
3065                                               operators are In, NotIn, Exists and
3066                                               DoesNotExist.
3067                                             type: string
3068                                           values:
3069                                             description: values is an array of string
3070                                               values. If the operator is In or NotIn,
3071                                               the values array must be non-empty.
3072                                               If the operator is Exists or DoesNotExist,
3073                                               the values array must be empty. This
3074                                               array is replaced during a strategic
3075                                               merge patch.
3076                                             items:
3077                                               type: string
3078                                             type: array
3079                                         required:
3080                                         - key
3081                                         - operator
3082                                         type: object
3083                                       type: array
3084                                     matchLabels:
3085                                       additionalProperties:
3086                                         type: string
3087                                       description: matchLabels is a map of {key,value}
3088                                         pairs. A single {key,value} in the matchLabels
3089                                         map is equivalent to an element of matchExpressions,
3090                                         whose key field is "key", the operator is
3091                                         "In", and the values array contains only "value".
3092                                         The requirements are ANDed.
3093                                       type: object
3094                                   type: object
3095                                 namespaceSelector:
3096                                   description: A label query over the set of namespaces
3097                                     that the term applies to. The term is applied
3098                                     to the union of the namespaces selected by this
3099                                     field and the ones listed in the namespaces field.
3100                                     null selector and null or empty namespaces list
3101                                     means "this pod's namespace". An empty selector
3102                                     ({}) matches all namespaces. This field is beta-level
3103                                     and is only honored when PodAffinityNamespaceSelector
3104                                     feature is enabled.
3105                                   properties:
3106                                     matchExpressions:
3107                                       description: matchExpressions is a list of label
3108                                         selector requirements. The requirements are
3109                                         ANDed.
3110                                       items:
3111                                         description: A label selector requirement
3112                                           is a selector that contains values, a key,
3113                                           and an operator that relates the key and
3114                                           values.
3115                                         properties:
3116                                           key:
3117                                             description: key is the label key that
3118                                               the selector applies to.
3119                                             type: string
3120                                           operator:
3121                                             description: operator represents a key's
3122                                               relationship to a set of values. Valid
3123                                               operators are In, NotIn, Exists and
3124                                               DoesNotExist.
3125                                             type: string
3126                                           values:
3127                                             description: values is an array of string
3128                                               values. If the operator is In or NotIn,
3129                                               the values array must be non-empty.
3130                                               If the operator is Exists or DoesNotExist,
3131                                               the values array must be empty. This
3132                                               array is replaced during a strategic
3133                                               merge patch.
3134                                             items:
3135                                               type: string
3136                                             type: array
3137                                         required:
3138                                         - key
3139                                         - operator
3140                                         type: object
3141                                       type: array
3142                                     matchLabels:
3143                                       additionalProperties:
3144                                         type: string
3145                                       description: matchLabels is a map of {key,value}
3146                                         pairs. A single {key,value} in the matchLabels
3147                                         map is equivalent to an element of matchExpressions,
3148                                         whose key field is "key", the operator is
3149                                         "In", and the values array contains only "value".
3150                                         The requirements are ANDed.
3151                                       type: object
3152                                   type: object
3153                                 namespaces:
3154                                   description: namespaces specifies a static list
3155                                     of namespace names that the term applies to. The
3156                                     term is applied to the union of the namespaces
3157                                     listed in this field and the ones selected by
3158                                     namespaceSelector. null or empty namespaces list
3159                                     and null namespaceSelector means "this pod's namespace"
3160                                   items:
3161                                     type: string
3162                                   type: array
3163                                 topologyKey:
3164                                   description: This pod should be co-located (affinity)
3165                                     or not co-located (anti-affinity) with the pods
3166                                     matching the labelSelector in the specified namespaces,
3167                                     where co-located is defined as running on a node
3168                                     whose value of the label with key topologyKey
3169                                     matches that of any node on which any of the selected
3170                                     pods is running. Empty topologyKey is not allowed.
3171                                   type: string
3172                               required:
3173                               - topologyKey
3174                               type: object
3175                             type: array
3176                         type: object
3177                     type: object
3178                   nodeSelector:
3179                     additionalProperties:
3180                       type: string
3181                     description: 'nodeSelector is the node selector applied to the
3182                       relevant kind of pods It specifies a map of key-value pairs:
3183                       for the pod to be eligible to run on a node, the node must have
3184                       each of the indicated key-value pairs as labels (it can have
3185                       additional labels as well). See https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector'
3186                     type: object
3187                   tolerations:
3188                     description: tolerations is a list of tolerations applied to the
3189                       relevant kind of pods See https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
3190                       for more info. These are additional tolerations other than default
3191                       ones.
3192                     items:
3193                       description: The pod this Toleration is attached to tolerates
3194                         any taint that matches the triple <key,value,effect> using
3195                         the matching operator <operator>.
3196                       properties:
3197                         effect:
3198                           description: Effect indicates the taint effect to match.
3199                             Empty means match all taint effects. When specified, allowed
3200                             values are NoSchedule, PreferNoSchedule and NoExecute.
3201                           type: string
3202                         key:
3203                           description: Key is the taint key that the toleration applies
3204                             to. Empty means match all taint keys. If the key is empty,
3205                             operator must be Exists; this combination means to match
3206                             all values and all keys.
3207                           type: string
3208                         operator:
3209                           description: Operator represents a key's relationship to
3210                             the value. Valid operators are Exists and Equal. Defaults
3211                             to Equal. Exists is equivalent to wildcard for value,
3212                             so that a pod can tolerate all taints of a particular
3213                             category.
3214                           type: string
3215                         tolerationSeconds:
3216                           description: TolerationSeconds represents the period of
3217                             time the toleration (which must be of effect NoExecute,
3218                             otherwise this field is ignored) tolerates the taint.
3219                             By default, it is not set, which means tolerate the taint
3220                             forever (do not evict). Zero and negative values will
3221                             be treated as 0 (evict immediately) by the system.
3222                           format: int64
3223                           type: integer
3224                         value:
3225                           description: Value is the taint value the toleration matches
3226                             to. If the operator is Exists, the value should be empty,
3227                             otherwise just a regular string.
3228                           type: string
3229                       type: object
3230                     type: array
3231                 type: object
3232               priorityClass:
3233                 description: PriorityClass of the CDI control plane
3234                 type: string
3235               uninstallStrategy:
3236                 description: CDIUninstallStrategy defines the state to leave CDI on
3237                   uninstall
3238                 enum:
3239                 - RemoveWorkloads
3240                 - BlockUninstallIfWorkloadsExist
3241                 type: string
3242               workload:
3243                 description: Restrict on which nodes CDI workload pods will be scheduled
3244                 properties:
3245                   affinity:
3246                     description: affinity enables pod affinity/anti-affinity placement
3247                       expanding the types of constraints that can be expressed with
3248                       nodeSelector. affinity is going to be applied to the relevant
3249                       kind of pods in parallel with nodeSelector See https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity
3250                     properties:
3251                       nodeAffinity:
3252                         description: Describes node affinity scheduling rules for
3253                           the pod.
3254                         properties:
3255                           preferredDuringSchedulingIgnoredDuringExecution:
3256                             description: The scheduler will prefer to schedule pods
3257                               to nodes that satisfy the affinity expressions specified
3258                               by this field, but it may choose a node that violates
3259                               one or more of the expressions. The node that is most
3260                               preferred is the one with the greatest sum of weights,
3261                               i.e. for each node that meets all of the scheduling
3262                               requirements (resource request, requiredDuringScheduling
3263                               affinity expressions, etc.), compute a sum by iterating
3264                               through the elements of this field and adding "weight"
3265                               to the sum if the node matches the corresponding matchExpressions;
3266                               the node(s) with the highest sum are the most preferred.
3267                             items:
3268                               description: An empty preferred scheduling term matches
3269                                 all objects with implicit weight 0 (i.e. it's a no-op).
3270                                 A null preferred scheduling term matches no objects
3271                                 (i.e. is also a no-op).
3272                               properties:
3273                                 preference:
3274                                   description: A node selector term, associated with
3275                                     the corresponding weight.
3276                                   properties:
3277                                     matchExpressions:
3278                                       description: A list of node selector requirements
3279                                         by node's labels.
3280                                       items:
3281                                         description: A node selector requirement is
3282                                           a selector that contains values, a key,
3283                                           and an operator that relates the key and
3284                                           values.
3285                                         properties:
3286                                           key:
3287                                             description: The label key that the selector
3288                                               applies to.
3289                                             type: string
3290                                           operator:
3291                                             description: Represents a key's relationship
3292                                               to a set of values. Valid operators
3293                                               are In, NotIn, Exists, DoesNotExist.
3294                                               Gt, and Lt.
3295                                             type: string
3296                                           values:
3297                                             description: An array of string values.
3298                                               If the operator is In or NotIn, the
3299                                               values array must be non-empty. If the
3300                                               operator is Exists or DoesNotExist,
3301                                               the values array must be empty. If the
3302                                               operator is Gt or Lt, the values array
3303                                               must have a single element, which will
3304                                               be interpreted as an integer. This array
3305                                               is replaced during a strategic merge
3306                                               patch.
3307                                             items:
3308                                               type: string
3309                                             type: array
3310                                         required:
3311                                         - key
3312                                         - operator
3313                                         type: object
3314                                       type: array
3315                                     matchFields:
3316                                       description: A list of node selector requirements
3317                                         by node's fields.
3318                                       items:
3319                                         description: A node selector requirement is
3320                                           a selector that contains values, a key,
3321                                           and an operator that relates the key and
3322                                           values.
3323                                         properties:
3324                                           key:
3325                                             description: The label key that the selector
3326                                               applies to.
3327                                             type: string
3328                                           operator:
3329                                             description: Represents a key's relationship
3330                                               to a set of values. Valid operators
3331                                               are In, NotIn, Exists, DoesNotExist.
3332                                               Gt, and Lt.
3333                                             type: string
3334                                           values:
3335                                             description: An array of string values.
3336                                               If the operator is In or NotIn, the
3337                                               values array must be non-empty. If the
3338                                               operator is Exists or DoesNotExist,
3339                                               the values array must be empty. If the
3340                                               operator is Gt or Lt, the values array
3341                                               must have a single element, which will
3342                                               be interpreted as an integer. This array
3343                                               is replaced during a strategic merge
3344                                               patch.
3345                                             items:
3346                                               type: string
3347                                             type: array
3348                                         required:
3349                                         - key
3350                                         - operator
3351                                         type: object
3352                                       type: array
3353                                   type: object
3354                                 weight:
3355                                   description: Weight associated with matching the
3356                                     corresponding nodeSelectorTerm, in the range 1-100.
3357                                   format: int32
3358                                   type: integer
3359                               required:
3360                               - preference
3361                               - weight
3362                               type: object
3363                             type: array
3364                           requiredDuringSchedulingIgnoredDuringExecution:
3365                             description: If the affinity requirements specified by
3366                               this field are not met at scheduling time, the pod will
3367                               not be scheduled onto the node. If the affinity requirements
3368                               specified by this field cease to be met at some point
3369                               during pod execution (e.g. due to an update), the system
3370                               may or may not try to eventually evict the pod from
3371                               its node.
3372                             properties:
3373                               nodeSelectorTerms:
3374                                 description: Required. A list of node selector terms.
3375                                   The terms are ORed.
3376                                 items:
3377                                   description: A null or empty node selector term
3378                                     matches no objects. The requirements of them are
3379                                     ANDed. The TopologySelectorTerm type implements
3380                                     a subset of the NodeSelectorTerm.
3381                                   properties:
3382                                     matchExpressions:
3383                                       description: A list of node selector requirements
3384                                         by node's labels.
3385                                       items:
3386                                         description: A node selector requirement is
3387                                           a selector that contains values, a key,
3388                                           and an operator that relates the key and
3389                                           values.
3390                                         properties:
3391                                           key:
3392                                             description: The label key that the selector
3393                                               applies to.
3394                                             type: string
3395                                           operator:
3396                                             description: Represents a key's relationship
3397                                               to a set of values. Valid operators
3398                                               are In, NotIn, Exists, DoesNotExist.
3399                                               Gt, and Lt.
3400                                             type: string
3401                                           values:
3402                                             description: An array of string values.
3403                                               If the operator is In or NotIn, the
3404                                               values array must be non-empty. If the
3405                                               operator is Exists or DoesNotExist,
3406                                               the values array must be empty. If the
3407                                               operator is Gt or Lt, the values array
3408                                               must have a single element, which will
3409                                               be interpreted as an integer. This array
3410                                               is replaced during a strategic merge
3411                                               patch.
3412                                             items:
3413                                               type: string
3414                                             type: array
3415                                         required:
3416                                         - key
3417                                         - operator
3418                                         type: object
3419                                       type: array
3420                                     matchFields:
3421                                       description: A list of node selector requirements
3422                                         by node's fields.
3423                                       items:
3424                                         description: A node selector requirement is
3425                                           a selector that contains values, a key,
3426                                           and an operator that relates the key and
3427                                           values.
3428                                         properties:
3429                                           key:
3430                                             description: The label key that the selector
3431                                               applies to.
3432                                             type: string
3433                                           operator:
3434                                             description: Represents a key's relationship
3435                                               to a set of values. Valid operators
3436                                               are In, NotIn, Exists, DoesNotExist.
3437                                               Gt, and Lt.
3438                                             type: string
3439                                           values:
3440                                             description: An array of string values.
3441                                               If the operator is In or NotIn, the
3442                                               values array must be non-empty. If the
3443                                               operator is Exists or DoesNotExist,
3444                                               the values array must be empty. If the
3445                                               operator is Gt or Lt, the values array
3446                                               must have a single element, which will
3447                                               be interpreted as an integer. This array
3448                                               is replaced during a strategic merge
3449                                               patch.
3450                                             items:
3451                                               type: string
3452                                             type: array
3453                                         required:
3454                                         - key
3455                                         - operator
3456                                         type: object
3457                                       type: array
3458                                   type: object
3459                                 type: array
3460                             required:
3461                             - nodeSelectorTerms
3462                             type: object
3463                         type: object
3464                       podAffinity:
3465                         description: Describes pod affinity scheduling rules (e.g.
3466                           co-locate this pod in the same node, zone, etc. as some
3467                           other pod(s)).
3468                         properties:
3469                           preferredDuringSchedulingIgnoredDuringExecution:
3470                             description: The scheduler will prefer to schedule pods
3471                               to nodes that satisfy the affinity expressions specified
3472                               by this field, but it may choose a node that violates
3473                               one or more of the expressions. The node that is most
3474                               preferred is the one with the greatest sum of weights,
3475                               i.e. for each node that meets all of the scheduling
3476                               requirements (resource request, requiredDuringScheduling
3477                               affinity expressions, etc.), compute a sum by iterating
3478                               through the elements of this field and adding "weight"
3479                               to the sum if the node has pods which matches the corresponding
3480                               podAffinityTerm; the node(s) with the highest sum are
3481                               the most preferred.
3482                             items:
3483                               description: The weights of all of the matched WeightedPodAffinityTerm
3484                                 fields are added per-node to find the most preferred
3485                                 node(s)
3486                               properties:
3487                                 podAffinityTerm:
3488                                   description: Required. A pod affinity term, associated
3489                                     with the corresponding weight.
3490                                   properties:
3491                                     labelSelector:
3492                                       description: A label query over a set of resources,
3493                                         in this case pods.
3494                                       properties:
3495                                         matchExpressions:
3496                                           description: matchExpressions is a list
3497                                             of label selector requirements. The requirements
3498                                             are ANDed.
3499                                           items:
3500                                             description: A label selector requirement
3501                                               is a selector that contains values,
3502                                               a key, and an operator that relates
3503                                               the key and values.
3504                                             properties:
3505                                               key:
3506                                                 description: key is the label key
3507                                                   that the selector applies to.
3508                                                 type: string
3509                                               operator:
3510                                                 description: operator represents a
3511                                                   key's relationship to a set of values.
3512                                                   Valid operators are In, NotIn, Exists
3513                                                   and DoesNotExist.
3514                                                 type: string
3515                                               values:
3516                                                 description: values is an array of
3517                                                   string values. If the operator is
3518                                                   In or NotIn, the values array must
3519                                                   be non-empty. If the operator is
3520                                                   Exists or DoesNotExist, the values
3521                                                   array must be empty. This array
3522                                                   is replaced during a strategic merge
3523                                                   patch.
3524                                                 items:
3525                                                   type: string
3526                                                 type: array
3527                                             required:
3528                                             - key
3529                                             - operator
3530                                             type: object
3531                                           type: array
3532                                         matchLabels:
3533                                           additionalProperties:
3534                                             type: string
3535                                           description: matchLabels is a map of {key,value}
3536                                             pairs. A single {key,value} in the matchLabels
3537                                             map is equivalent to an element of matchExpressions,
3538                                             whose key field is "key", the operator
3539                                             is "In", and the values array contains
3540                                             only "value". The requirements are ANDed.
3541                                           type: object
3542                                       type: object
3543                                     namespaceSelector:
3544                                       description: A label query over the set of namespaces
3545                                         that the term applies to. The term is applied
3546                                         to the union of the namespaces selected by
3547                                         this field and the ones listed in the namespaces
3548                                         field. null selector and null or empty namespaces
3549                                         list means "this pod's namespace". An empty
3550                                         selector ({}) matches all namespaces. This
3551                                         field is beta-level and is only honored when
3552                                         PodAffinityNamespaceSelector feature is enabled.
3553                                       properties:
3554                                         matchExpressions:
3555                                           description: matchExpressions is a list
3556                                             of label selector requirements. The requirements
3557                                             are ANDed.
3558                                           items:
3559                                             description: A label selector requirement
3560                                               is a selector that contains values,
3561                                               a key, and an operator that relates
3562                                               the key and values.
3563                                             properties:
3564                                               key:
3565                                                 description: key is the label key
3566                                                   that the selector applies to.
3567                                                 type: string
3568                                               operator:
3569                                                 description: operator represents a
3570                                                   key's relationship to a set of values.
3571                                                   Valid operators are In, NotIn, Exists
3572                                                   and DoesNotExist.
3573                                                 type: string
3574                                               values:
3575                                                 description: values is an array of
3576                                                   string values. If the operator is
3577                                                   In or NotIn, the values array must
3578                                                   be non-empty. If the operator is
3579                                                   Exists or DoesNotExist, the values
3580                                                   array must be empty. This array
3581                                                   is replaced during a strategic merge
3582                                                   patch.
3583                                                 items:
3584                                                   type: string
3585                                                 type: array
3586                                             required:
3587                                             - key
3588                                             - operator
3589                                             type: object
3590                                           type: array
3591                                         matchLabels:
3592                                           additionalProperties:
3593                                             type: string
3594                                           description: matchLabels is a map of {key,value}
3595                                             pairs. A single {key,value} in the matchLabels
3596                                             map is equivalent to an element of matchExpressions,
3597                                             whose key field is "key", the operator
3598                                             is "In", and the values array contains
3599                                             only "value". The requirements are ANDed.
3600                                           type: object
3601                                       type: object
3602                                     namespaces:
3603                                       description: namespaces specifies a static list
3604                                         of namespace names that the term applies to.
3605                                         The term is applied to the union of the namespaces
3606                                         listed in this field and the ones selected
3607                                         by namespaceSelector. null or empty namespaces
3608                                         list and null namespaceSelector means "this
3609                                         pod's namespace"
3610                                       items:
3611                                         type: string
3612                                       type: array
3613                                     topologyKey:
3614                                       description: This pod should be co-located (affinity)
3615                                         or not co-located (anti-affinity) with the
3616                                         pods matching the labelSelector in the specified
3617                                         namespaces, where co-located is defined as
3618                                         running on a node whose value of the label
3619                                         with key topologyKey matches that of any node
3620                                         on which any of the selected pods is running.
3621                                         Empty topologyKey is not allowed.
3622                                       type: string
3623                                   required:
3624                                   - topologyKey
3625                                   type: object
3626                                 weight:
3627                                   description: weight associated with matching the
3628                                     corresponding podAffinityTerm, in the range 1-100.
3629                                   format: int32
3630                                   type: integer
3631                               required:
3632                               - podAffinityTerm
3633                               - weight
3634                               type: object
3635                             type: array
3636                           requiredDuringSchedulingIgnoredDuringExecution:
3637                             description: If the affinity requirements specified by
3638                               this field are not met at scheduling time, the pod will
3639                               not be scheduled onto the node. If the affinity requirements
3640                               specified by this field cease to be met at some point
3641                               during pod execution (e.g. due to a pod label update),
3642                               the system may or may not try to eventually evict the
3643                               pod from its node. When there are multiple elements,
3644                               the lists of nodes corresponding to each podAffinityTerm
3645                               are intersected, i.e. all terms must be satisfied.
3646                             items:
3647                               description: Defines a set of pods (namely those matching
3648                                 the labelSelector relative to the given namespace(s))
3649                                 that this pod should be co-located (affinity) or not
3650                                 co-located (anti-affinity) with, where co-located
3651                                 is defined as running on a node whose value of the
3652                                 label with key <topologyKey> matches that of any node
3653                                 on which a pod of the set of pods is running
3654                               properties:
3655                                 labelSelector:
3656                                   description: A label query over a set of resources,
3657                                     in this case pods.
3658                                   properties:
3659                                     matchExpressions:
3660                                       description: matchExpressions is a list of label
3661                                         selector requirements. The requirements are
3662                                         ANDed.
3663                                       items:
3664                                         description: A label selector requirement
3665                                           is a selector that contains values, a key,
3666                                           and an operator that relates the key and
3667                                           values.
3668                                         properties:
3669                                           key:
3670                                             description: key is the label key that
3671                                               the selector applies to.
3672                                             type: string
3673                                           operator:
3674                                             description: operator represents a key's
3675                                               relationship to a set of values. Valid
3676                                               operators are In, NotIn, Exists and
3677                                               DoesNotExist.
3678                                             type: string
3679                                           values:
3680                                             description: values is an array of string
3681                                               values. If the operator is In or NotIn,
3682                                               the values array must be non-empty.
3683                                               If the operator is Exists or DoesNotExist,
3684                                               the values array must be empty. This
3685                                               array is replaced during a strategic
3686                                               merge patch.
3687                                             items:
3688                                               type: string
3689                                             type: array
3690                                         required:
3691                                         - key
3692                                         - operator
3693                                         type: object
3694                                       type: array
3695                                     matchLabels:
3696                                       additionalProperties:
3697                                         type: string
3698                                       description: matchLabels is a map of {key,value}
3699                                         pairs. A single {key,value} in the matchLabels
3700                                         map is equivalent to an element of matchExpressions,
3701                                         whose key field is "key", the operator is
3702                                         "In", and the values array contains only "value".
3703                                         The requirements are ANDed.
3704                                       type: object
3705                                   type: object
3706                                 namespaceSelector:
3707                                   description: A label query over the set of namespaces
3708                                     that the term applies to. The term is applied
3709                                     to the union of the namespaces selected by this
3710                                     field and the ones listed in the namespaces field.
3711                                     null selector and null or empty namespaces list
3712                                     means "this pod's namespace". An empty selector
3713                                     ({}) matches all namespaces. This field is beta-level
3714                                     and is only honored when PodAffinityNamespaceSelector
3715                                     feature is enabled.
3716                                   properties:
3717                                     matchExpressions:
3718                                       description: matchExpressions is a list of label
3719                                         selector requirements. The requirements are
3720                                         ANDed.
3721                                       items:
3722                                         description: A label selector requirement
3723                                           is a selector that contains values, a key,
3724                                           and an operator that relates the key and
3725                                           values.
3726                                         properties:
3727                                           key:
3728                                             description: key is the label key that
3729                                               the selector applies to.
3730                                             type: string
3731                                           operator:
3732                                             description: operator represents a key's
3733                                               relationship to a set of values. Valid
3734                                               operators are In, NotIn, Exists and
3735                                               DoesNotExist.
3736                                             type: string
3737                                           values:
3738                                             description: values is an array of string
3739                                               values. If the operator is In or NotIn,
3740                                               the values array must be non-empty.
3741                                               If the operator is Exists or DoesNotExist,
3742                                               the values array must be empty. This
3743                                               array is replaced during a strategic
3744                                               merge patch.
3745                                             items:
3746                                               type: string
3747                                             type: array
3748                                         required:
3749                                         - key
3750                                         - operator
3751                                         type: object
3752                                       type: array
3753                                     matchLabels:
3754                                       additionalProperties:
3755                                         type: string
3756                                       description: matchLabels is a map of {key,value}
3757                                         pairs. A single {key,value} in the matchLabels
3758                                         map is equivalent to an element of matchExpressions,
3759                                         whose key field is "key", the operator is
3760                                         "In", and the values array contains only "value".
3761                                         The requirements are ANDed.
3762                                       type: object
3763                                   type: object
3764                                 namespaces:
3765                                   description: namespaces specifies a static list
3766                                     of namespace names that the term applies to. The
3767                                     term is applied to the union of the namespaces
3768                                     listed in this field and the ones selected by
3769                                     namespaceSelector. null or empty namespaces list
3770                                     and null namespaceSelector means "this pod's namespace"
3771                                   items:
3772                                     type: string
3773                                   type: array
3774                                 topologyKey:
3775                                   description: This pod should be co-located (affinity)
3776                                     or not co-located (anti-affinity) with the pods
3777                                     matching the labelSelector in the specified namespaces,
3778                                     where co-located is defined as running on a node
3779                                     whose value of the label with key topologyKey
3780                                     matches that of any node on which any of the selected
3781                                     pods is running. Empty topologyKey is not allowed.
3782                                   type: string
3783                               required:
3784                               - topologyKey
3785                               type: object
3786                             type: array
3787                         type: object
3788                       podAntiAffinity:
3789                         description: Describes pod anti-affinity scheduling rules
3790                           (e.g. avoid putting this pod in the same node, zone, etc.
3791                           as some other pod(s)).
3792                         properties:
3793                           preferredDuringSchedulingIgnoredDuringExecution:
3794                             description: The scheduler will prefer to schedule pods
3795                               to nodes that satisfy the anti-affinity expressions
3796                               specified by this field, but it may choose a node that
3797                               violates one or more of the expressions. The node that
3798                               is most preferred is the one with the greatest sum of
3799                               weights, i.e. for each node that meets all of the scheduling
3800                               requirements (resource request, requiredDuringScheduling
3801                               anti-affinity expressions, etc.), compute a sum by iterating
3802                               through the elements of this field and adding "weight"
3803                               to the sum if the node has pods which matches the corresponding
3804                               podAffinityTerm; the node(s) with the highest sum are
3805                               the most preferred.
3806                             items:
3807                               description: The weights of all of the matched WeightedPodAffinityTerm
3808                                 fields are added per-node to find the most preferred
3809                                 node(s)
3810                               properties:
3811                                 podAffinityTerm:
3812                                   description: Required. A pod affinity term, associated
3813                                     with the corresponding weight.
3814                                   properties:
3815                                     labelSelector:
3816                                       description: A label query over a set of resources,
3817                                         in this case pods.
3818                                       properties:
3819                                         matchExpressions:
3820                                           description: matchExpressions is a list
3821                                             of label selector requirements. The requirements
3822                                             are ANDed.
3823                                           items:
3824                                             description: A label selector requirement
3825                                               is a selector that contains values,
3826                                               a key, and an operator that relates
3827                                               the key and values.
3828                                             properties:
3829                                               key:
3830                                                 description: key is the label key
3831                                                   that the selector applies to.
3832                                                 type: string
3833                                               operator:
3834                                                 description: operator represents a
3835                                                   key's relationship to a set of values.
3836                                                   Valid operators are In, NotIn, Exists
3837                                                   and DoesNotExist.
3838                                                 type: string
3839                                               values:
3840                                                 description: values is an array of
3841                                                   string values. If the operator is
3842                                                   In or NotIn, the values array must
3843                                                   be non-empty. If the operator is
3844                                                   Exists or DoesNotExist, the values
3845                                                   array must be empty. This array
3846                                                   is replaced during a strategic merge
3847                                                   patch.
3848                                                 items:
3849                                                   type: string
3850                                                 type: array
3851                                             required:
3852                                             - key
3853                                             - operator
3854                                             type: object
3855                                           type: array
3856                                         matchLabels:
3857                                           additionalProperties:
3858                                             type: string
3859                                           description: matchLabels is a map of {key,value}
3860                                             pairs. A single {key,value} in the matchLabels
3861                                             map is equivalent to an element of matchExpressions,
3862                                             whose key field is "key", the operator
3863                                             is "In", and the values array contains
3864                                             only "value". The requirements are ANDed.
3865                                           type: object
3866                                       type: object
3867                                     namespaceSelector:
3868                                       description: A label query over the set of namespaces
3869                                         that the term applies to. The term is applied
3870                                         to the union of the namespaces selected by
3871                                         this field and the ones listed in the namespaces
3872                                         field. null selector and null or empty namespaces
3873                                         list means "this pod's namespace". An empty
3874                                         selector ({}) matches all namespaces. This
3875                                         field is beta-level and is only honored when
3876                                         PodAffinityNamespaceSelector feature is enabled.
3877                                       properties:
3878                                         matchExpressions:
3879                                           description: matchExpressions is a list
3880                                             of label selector requirements. The requirements
3881                                             are ANDed.
3882                                           items:
3883                                             description: A label selector requirement
3884                                               is a selector that contains values,
3885                                               a key, and an operator that relates
3886                                               the key and values.
3887                                             properties:
3888                                               key:
3889                                                 description: key is the label key
3890                                                   that the selector applies to.
3891                                                 type: string
3892                                               operator:
3893                                                 description: operator represents a
3894                                                   key's relationship to a set of values.
3895                                                   Valid operators are In, NotIn, Exists
3896                                                   and DoesNotExist.
3897                                                 type: string
3898                                               values:
3899                                                 description: values is an array of
3900                                                   string values. If the operator is
3901                                                   In or NotIn, the values array must
3902                                                   be non-empty. If the operator is
3903                                                   Exists or DoesNotExist, the values
3904                                                   array must be empty. This array
3905                                                   is replaced during a strategic merge
3906                                                   patch.
3907                                                 items:
3908                                                   type: string
3909                                                 type: array
3910                                             required:
3911                                             - key
3912                                             - operator
3913                                             type: object
3914                                           type: array
3915                                         matchLabels:
3916                                           additionalProperties:
3917                                             type: string
3918                                           description: matchLabels is a map of {key,value}
3919                                             pairs. A single {key,value} in the matchLabels
3920                                             map is equivalent to an element of matchExpressions,
3921                                             whose key field is "key", the operator
3922                                             is "In", and the values array contains
3923                                             only "value". The requirements are ANDed.
3924                                           type: object
3925                                       type: object
3926                                     namespaces:
3927                                       description: namespaces specifies a static list
3928                                         of namespace names that the term applies to.
3929                                         The term is applied to the union of the namespaces
3930                                         listed in this field and the ones selected
3931                                         by namespaceSelector. null or empty namespaces
3932                                         list and null namespaceSelector means "this
3933                                         pod's namespace"
3934                                       items:
3935                                         type: string
3936                                       type: array
3937                                     topologyKey:
3938                                       description: This pod should be co-located (affinity)
3939                                         or not co-located (anti-affinity) with the
3940                                         pods matching the labelSelector in the specified
3941                                         namespaces, where co-located is defined as
3942                                         running on a node whose value of the label
3943                                         with key topologyKey matches that of any node
3944                                         on which any of the selected pods is running.
3945                                         Empty topologyKey is not allowed.
3946                                       type: string
3947                                   required:
3948                                   - topologyKey
3949                                   type: object
3950                                 weight:
3951                                   description: weight associated with matching the
3952                                     corresponding podAffinityTerm, in the range 1-100.
3953                                   format: int32
3954                                   type: integer
3955                               required:
3956                               - podAffinityTerm
3957                               - weight
3958                               type: object
3959                             type: array
3960                           requiredDuringSchedulingIgnoredDuringExecution:
3961                             description: If the anti-affinity requirements specified
3962                               by this field are not met at scheduling time, the pod
3963                               will not be scheduled onto the node. If the anti-affinity
3964                               requirements specified by this field cease to be met
3965                               at some point during pod execution (e.g. due to a pod
3966                               label update), the system may or may not try to eventually
3967                               evict the pod from its node. When there are multiple
3968                               elements, the lists of nodes corresponding to each podAffinityTerm
3969                               are intersected, i.e. all terms must be satisfied.
3970                             items:
3971                               description: Defines a set of pods (namely those matching
3972                                 the labelSelector relative to the given namespace(s))
3973                                 that this pod should be co-located (affinity) or not
3974                                 co-located (anti-affinity) with, where co-located
3975                                 is defined as running on a node whose value of the
3976                                 label with key <topologyKey> matches that of any node
3977                                 on which a pod of the set of pods is running
3978                               properties:
3979                                 labelSelector:
3980                                   description: A label query over a set of resources,
3981                                     in this case pods.
3982                                   properties:
3983                                     matchExpressions:
3984                                       description: matchExpressions is a list of label
3985                                         selector requirements. The requirements are
3986                                         ANDed.
3987                                       items:
3988                                         description: A label selector requirement
3989                                           is a selector that contains values, a key,
3990                                           and an operator that relates the key and
3991                                           values.
3992                                         properties:
3993                                           key:
3994                                             description: key is the label key that
3995                                               the selector applies to.
3996                                             type: string
3997                                           operator:
3998                                             description: operator represents a key's
3999                                               relationship to a set of values. Valid
4000                                               operators are In, NotIn, Exists and
4001                                               DoesNotExist.
4002                                             type: string
4003                                           values:
4004                                             description: values is an array of string
4005                                               values. If the operator is In or NotIn,
4006                                               the values array must be non-empty.
4007                                               If the operator is Exists or DoesNotExist,
4008                                               the values array must be empty. This
4009                                               array is replaced during a strategic
4010                                               merge patch.
4011                                             items:
4012                                               type: string
4013                                             type: array
4014                                         required:
4015                                         - key
4016                                         - operator
4017                                         type: object
4018                                       type: array
4019                                     matchLabels:
4020                                       additionalProperties:
4021                                         type: string
4022                                       description: matchLabels is a map of {key,value}
4023                                         pairs. A single {key,value} in the matchLabels
4024                                         map is equivalent to an element of matchExpressions,
4025                                         whose key field is "key", the operator is
4026                                         "In", and the values array contains only "value".
4027                                         The requirements are ANDed.
4028                                       type: object
4029                                   type: object
4030                                 namespaceSelector:
4031                                   description: A label query over the set of namespaces
4032                                     that the term applies to. The term is applied
4033                                     to the union of the namespaces selected by this
4034                                     field and the ones listed in the namespaces field.
4035                                     null selector and null or empty namespaces list
4036                                     means "this pod's namespace". An empty selector
4037                                     ({}) matches all namespaces. This field is beta-level
4038                                     and is only honored when PodAffinityNamespaceSelector
4039                                     feature is enabled.
4040                                   properties:
4041                                     matchExpressions:
4042                                       description: matchExpressions is a list of label
4043                                         selector requirements. The requirements are
4044                                         ANDed.
4045                                       items:
4046                                         description: A label selector requirement
4047                                           is a selector that contains values, a key,
4048                                           and an operator that relates the key and
4049                                           values.
4050                                         properties:
4051                                           key:
4052                                             description: key is the label key that
4053                                               the selector applies to.
4054                                             type: string
4055                                           operator:
4056                                             description: operator represents a key's
4057                                               relationship to a set of values. Valid
4058                                               operators are In, NotIn, Exists and
4059                                               DoesNotExist.
4060                                             type: string
4061                                           values:
4062                                             description: values is an array of string
4063                                               values. If the operator is In or NotIn,
4064                                               the values array must be non-empty.
4065                                               If the operator is Exists or DoesNotExist,
4066                                               the values array must be empty. This
4067                                               array is replaced during a strategic
4068                                               merge patch.
4069                                             items:
4070                                               type: string
4071                                             type: array
4072                                         required:
4073                                         - key
4074                                         - operator
4075                                         type: object
4076                                       type: array
4077                                     matchLabels:
4078                                       additionalProperties:
4079                                         type: string
4080                                       description: matchLabels is a map of {key,value}
4081                                         pairs. A single {key,value} in the matchLabels
4082                                         map is equivalent to an element of matchExpressions,
4083                                         whose key field is "key", the operator is
4084                                         "In", and the values array contains only "value".
4085                                         The requirements are ANDed.
4086                                       type: object
4087                                   type: object
4088                                 namespaces:
4089                                   description: namespaces specifies a static list
4090                                     of namespace names that the term applies to. The
4091                                     term is applied to the union of the namespaces
4092                                     listed in this field and the ones selected by
4093                                     namespaceSelector. null or empty namespaces list
4094                                     and null namespaceSelector means "this pod's namespace"
4095                                   items:
4096                                     type: string
4097                                   type: array
4098                                 topologyKey:
4099                                   description: This pod should be co-located (affinity)
4100                                     or not co-located (anti-affinity) with the pods
4101                                     matching the labelSelector in the specified namespaces,
4102                                     where co-located is defined as running on a node
4103                                     whose value of the label with key topologyKey
4104                                     matches that of any node on which any of the selected
4105                                     pods is running. Empty topologyKey is not allowed.
4106                                   type: string
4107                               required:
4108                               - topologyKey
4109                               type: object
4110                             type: array
4111                         type: object
4112                     type: object
4113                   nodeSelector:
4114                     additionalProperties:
4115                       type: string
4116                     description: 'nodeSelector is the node selector applied to the
4117                       relevant kind of pods It specifies a map of key-value pairs:
4118                       for the pod to be eligible to run on a node, the node must have
4119                       each of the indicated key-value pairs as labels (it can have
4120                       additional labels as well). See https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector'
4121                     type: object
4122                   tolerations:
4123                     description: tolerations is a list of tolerations applied to the
4124                       relevant kind of pods See https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
4125                       for more info. These are additional tolerations other than default
4126                       ones.
4127                     items:
4128                       description: The pod this Toleration is attached to tolerates
4129                         any taint that matches the triple <key,value,effect> using
4130                         the matching operator <operator>.
4131                       properties:
4132                         effect:
4133                           description: Effect indicates the taint effect to match.
4134                             Empty means match all taint effects. When specified, allowed
4135                             values are NoSchedule, PreferNoSchedule and NoExecute.
4136                           type: string
4137                         key:
4138                           description: Key is the taint key that the toleration applies
4139                             to. Empty means match all taint keys. If the key is empty,
4140                             operator must be Exists; this combination means to match
4141                             all values and all keys.
4142                           type: string
4143                         operator:
4144                           description: Operator represents a key's relationship to
4145                             the value. Valid operators are Exists and Equal. Defaults
4146                             to Equal. Exists is equivalent to wildcard for value,
4147                             so that a pod can tolerate all taints of a particular
4148                             category.
4149                           type: string
4150                         tolerationSeconds:
4151                           description: TolerationSeconds represents the period of
4152                             time the toleration (which must be of effect NoExecute,
4153                             otherwise this field is ignored) tolerates the taint.
4154                             By default, it is not set, which means tolerate the taint
4155                             forever (do not evict). Zero and negative values will
4156                             be treated as 0 (evict immediately) by the system.
4157                           format: int64
4158                           type: integer
4159                         value:
4160                           description: Value is the taint value the toleration matches
4161                             to. If the operator is Exists, the value should be empty,
4162                             otherwise just a regular string.
4163                           type: string
4164                       type: object
4165                     type: array
4166                 type: object
4167             type: object
4168           status:
4169             description: CDIStatus defines the status of the installation
4170             properties:
4171               conditions:
4172                 description: A list of current conditions of the resource
4173                 items:
4174                   description: Condition represents the state of the operator's reconciliation
4175                     functionality.
4176                   properties:
4177                     lastHeartbeatTime:
4178                       format: date-time
4179                       type: string
4180                     lastTransitionTime:
4181                       format: date-time
4182                       type: string
4183                     message:
4184                       type: string
4185                     reason:
4186                       type: string
4187                     status:
4188                       type: string
4189                     type:
4190                       description: ConditionType is the state of the operator's reconciliation
4191                         functionality.
4192                       type: string
4193                   required:
4194                   - status
4195                   - type
4196                   type: object
4197                 type: array
4198               observedVersion:
4199                 description: The observed version of the resource
4200                 type: string
4201               operatorVersion:
4202                 description: The version of the resource as defined by the operator
4203                 type: string
4204               phase:
4205                 description: Phase is the current phase of the deployment
4206                 type: string
4207               targetVersion:
4208                 description: The desired version of the resource
4209                 type: string
4210             type: object
4211         required:
4212         - spec
4213         type: object
4214     served: true
4215     storage: true
4216     subresources: {}
4217 ---
4218 apiVersion: rbac.authorization.k8s.io/v1
4219 kind: ClusterRole
4220 metadata:
4221   labels:
4222     operator.cdi.kubevirt.io: ""
4223   name: cdi-operator-cluster
4224 rules:
4225 - apiGroups:
4226   - rbac.authorization.k8s.io
4227   resources:
4228   - clusterrolebindings
4229   - clusterroles
4230   verbs:
4231   - '*'
4232 - apiGroups:
4233   - security.openshift.io
4234   resources:
4235   - securitycontextconstraints
4236   verbs:
4237   - get
4238   - list
4239   - watch
4240   - update
4241   - create
4242 - apiGroups:
4243   - ""
4244   resources:
4245   - pods
4246   - services
4247   verbs:
4248   - get
4249   - list
4250   - watch
4251   - delete
4252 - apiGroups:
4253   - apiextensions.k8s.io
4254   resources:
4255   - customresourcedefinitions
4256   verbs:
4257   - '*'
4258 - apiGroups:
4259   - cdi.kubevirt.io
4260   - upload.cdi.kubevirt.io
4261   resources:
4262   - '*'
4263   verbs:
4264   - '*'
4265 - apiGroups:
4266   - admissionregistration.k8s.io
4267   resources:
4268   - validatingwebhookconfigurations
4269   - mutatingwebhookconfigurations
4270   verbs:
4271   - '*'
4272 - apiGroups:
4273   - apiregistration.k8s.io
4274   resources:
4275   - apiservices
4276   verbs:
4277   - '*'
4278 - apiGroups:
4279   - authorization.k8s.io
4280   resources:
4281   - subjectaccessreviews
4282   verbs:
4283   - create
4284 - apiGroups:
4285   - ""
4286   resources:
4287   - configmaps
4288   verbs:
4289   - get
4290   - list
4291   - watch
4292 - apiGroups:
4293   - ""
4294   resources:
4295   - persistentvolumeclaims
4296   verbs:
4297   - get
4298 - apiGroups:
4299   - cdi.kubevirt.io
4300   resources:
4301   - datavolumes
4302   verbs:
4303   - list
4304   - get
4305 - apiGroups:
4306   - cdi.kubevirt.io
4307   resources:
4308   - datasources
4309   verbs:
4310   - list
4311   - get
4312 - apiGroups:
4313   - cdi.kubevirt.io
4314   resources:
4315   - cdis
4316   verbs:
4317   - get
4318 - apiGroups:
4319   - cdi.kubevirt.io
4320   resources:
4321   - cdis/finalizers
4322   verbs:
4323   - '*'
4324 - apiGroups:
4325   - ""
4326   resources:
4327   - events
4328   verbs:
4329   - create
4330   - patch
4331 - apiGroups:
4332   - ""
4333   resources:
4334   - persistentvolumes
4335   - persistentvolumeclaims
4336   - volumesnapshots
4337   verbs:
4338   - get
4339   - list
4340   - watch
4341   - create
4342   - update
4343   - delete
4344 - apiGroups:
4345   - ""
4346   resources:
4347   - persistentvolumeclaims/finalizers
4348   - pods/finalizers
4349   - volumesnapshots/finalizers
4350   verbs:
4351   - update
4352 - apiGroups:
4353   - ""
4354   resources:
4355   - pods
4356   - services
4357   verbs:
4358   - get
4359   - list
4360   - watch
4361   - create
4362   - delete
4363 - apiGroups:
4364   - networking.k8s.io
4365   resources:
4366   - ingresses
4367   verbs:
4368   - get
4369   - list
4370   - watch
4371 - apiGroups:
4372   - ""
4373   resources:
4374   - configmaps
4375   verbs:
4376   - get
4377 - apiGroups:
4378   - storage.k8s.io
4379   resources:
4380   - storageclasses
4381   - csidrivers
4382   verbs:
4383   - get
4384   - list
4385   - watch
4386 - apiGroups:
4387   - route.openshift.io
4388   resources:
4389   - routes
4390   verbs:
4391   - get
4392   - list
4393   - watch
4394 - apiGroups:
4395   - config.openshift.io
4396   resources:
4397   - proxies
4398   verbs:
4399   - get
4400   - list
4401   - watch
4402 - apiGroups:
4403   - cdi.kubevirt.io
4404   resources:
4405   - '*'
4406   verbs:
4407   - '*'
4408 - apiGroups:
4409   - snapshot.storage.k8s.io
4410   resources:
4411   - '*'
4412   verbs:
4413   - '*'
4414 - apiGroups:
4415   - apiextensions.k8s.io
4416   resources:
4417   - customresourcedefinitions
4418   verbs:
4419   - get
4420   - list
4421   - watch
4422 - apiGroups:
4423   - scheduling.k8s.io
4424   resources:
4425   - priorityclasses
4426   verbs:
4427   - get
4428   - list
4429   - watch
4430 - apiGroups:
4431   - image.openshift.io
4432   resources:
4433   - imagestreams
4434   verbs:
4435   - get
4436   - list
4437   - watch
4438 - apiGroups:
4439   - ""
4440   resources:
4441   - secrets
4442   verbs:
4443   - create
4444 - apiGroups:
4445   - ""
4446   resources:
4447   - persistentvolumeclaims
4448   verbs:
4449   - get
4450 - apiGroups:
4451   - cdi.kubevirt.io
4452   resources:
4453   - dataimportcrons
4454   verbs:
4455   - get
4456   - list
4457   - update
4458 ---
4459 apiVersion: rbac.authorization.k8s.io/v1
4460 kind: ClusterRoleBinding
4461 metadata:
4462   labels:
4463     operator.cdi.kubevirt.io: ""
4464   name: cdi-operator
4465 roleRef:
4466   apiGroup: rbac.authorization.k8s.io
4467   kind: ClusterRole
4468   name: cdi-operator-cluster
4469 subjects:
4470 - kind: ServiceAccount
4471   name: cdi-operator
4472   namespace: cdi
4473 ---
4474 apiVersion: v1
4475 kind: ServiceAccount
4476 metadata:
4477   labels:
4478     operator.cdi.kubevirt.io: ""
4479   name: cdi-operator
4480   namespace: cdi
4481 ---
4482 apiVersion: rbac.authorization.k8s.io/v1
4483 kind: Role
4484 metadata:
4485   labels:
4486     app.kubernetes.io/component: storage
4487     app.kubernetes.io/managed-by: cdi-operator
4488     cdi.kubevirt.io: ""
4489   name: cdi-operator
4490   namespace: cdi
4491 rules:
4492 - apiGroups:
4493   - rbac.authorization.k8s.io
4494   resources:
4495   - rolebindings
4496   - roles
4497   verbs:
4498   - '*'
4499 - apiGroups:
4500   - ""
4501   resources:
4502   - serviceaccounts
4503   - configmaps
4504   - events
4505   - secrets
4506   - services
4507   verbs:
4508   - '*'
4509 - apiGroups:
4510   - apps
4511   resources:
4512   - deployments
4513   - deployments/finalizers
4514   verbs:
4515   - '*'
4516 - apiGroups:
4517   - route.openshift.io
4518   resources:
4519   - routes
4520   - routes/custom-host
4521   verbs:
4522   - '*'
4523 - apiGroups:
4524   - config.openshift.io
4525   resources:
4526   - proxies
4527   verbs:
4528   - get
4529   - list
4530   - watch
4531 - apiGroups:
4532   - monitoring.coreos.com
4533   resources:
4534   - servicemonitors
4535   - prometheusrules
4536   verbs:
4537   - get
4538   - list
4539   - watch
4540   - create
4541   - delete
4542   - update
4543   - patch
4544 ---
4545 apiVersion: rbac.authorization.k8s.io/v1
4546 kind: RoleBinding
4547 metadata:
4548   labels:
4549     app.kubernetes.io/component: storage
4550     app.kubernetes.io/managed-by: cdi-operator
4551     cdi.kubevirt.io: ""
4552   name: cdi-operator
4553   namespace: cdi
4554 roleRef:
4555   apiGroup: rbac.authorization.k8s.io
4556   kind: Role
4557   name: cdi-operator
4558 subjects:
4559 - kind: ServiceAccount
4560   name: cdi-operator
4561   namespace: cdi
4562 ---
4563 apiVersion: apps/v1
4564 kind: Deployment
4565 metadata:
4566   labels:
4567     name: cdi-operator
4568     operator.cdi.kubevirt.io: ""
4569     prometheus.cdi.kubevirt.io: "true"
4570   name: cdi-operator
4571   namespace: cdi
4572 spec:
4573   replicas: 1
4574   selector:
4575     matchLabels:
4576       name: cdi-operator
4577       operator.cdi.kubevirt.io: ""
4578   strategy: {}
4579   template:
4580     metadata:
4581       labels:
4582         name: cdi-operator
4583         operator.cdi.kubevirt.io: ""
4584         prometheus.cdi.kubevirt.io: "true"
4585     spec:
4586       containers:
4587       - env:
4588         - name: DEPLOY_CLUSTER_RESOURCES
4589           value: "true"
4590         - name: OPERATOR_VERSION
4591           value: v1.44.1
4592         - name: CONTROLLER_IMAGE
4593           value: quay.io/kubevirt/cdi-controller:v1.44.1
4594         - name: IMPORTER_IMAGE
4595           value: quay.io/kubevirt/cdi-importer:v1.44.1
4596         - name: CLONER_IMAGE
4597           value: quay.io/kubevirt/cdi-cloner:v1.44.1
4598         - name: APISERVER_IMAGE
4599           value: quay.io/kubevirt/cdi-apiserver:v1.44.1
4600         - name: UPLOAD_SERVER_IMAGE
4601           value: quay.io/kubevirt/cdi-uploadserver:v1.44.1
4602         - name: UPLOAD_PROXY_IMAGE
4603           value: quay.io/kubevirt/cdi-uploadproxy:v1.44.1
4604         - name: VERBOSITY
4605           value: "1"
4606         - name: PULL_POLICY
4607           value: IfNotPresent
4608         - name: MONITORING_NAMESPACE
4609         image: quay.io/kubevirt/cdi-operator:v1.44.1
4610         imagePullPolicy: IfNotPresent
4611         name: cdi-operator
4612         ports:
4613         - containerPort: 8080
4614           name: metrics
4615           protocol: TCP
4616         resources:
4617           requests:
4618             cpu: 10m
4619             memory: 150Mi
4620       nodeSelector:
4621         kubernetes.io/os: linux
4622       securityContext:
4623         runAsNonRoot: true
4624       serviceAccountName: cdi-operator
4625       tolerations:
4626       - key: CriticalAddonsOnly
4627         operator: Exists
4628 ---
4629 apiVersion: v1
4630 kind: ConfigMap
4631 metadata:
4632   labels:
4633     operator.cdi.kubevirt.io: ""
4634   name: cdi-operator-leader-election-helper
4635   namespace: cdi