1---
2apiVersion: apiextensions.k8s.io/v1
3kind: CustomResourceDefinition
4metadata:
5 annotations:
6 controller-gen.kubebuilder.io/version: (unknown)
7 name: vmusbredirections.virtualmachine.edge.ncr.com
8spec:
9 group: virtualmachine.edge.ncr.com
10 names:
11 kind: VirtualMachineUSBRedirection
12 listKind: VirtualMachineUSBRedirectionList
13 plural: vmusbredirections
14 shortNames:
15 - usbredir
16 - usbredirs
17 - vmusbredir
18 - vmusbredirs
19 singular: vmusbredirection
20 scope: Namespaced
21 versions:
22 - additionalPrinterColumns:
23 - jsonPath: .status.conditions[?(@.type=="VirtualMachineUSBRedirectionConfigured")].reason
24 name: Status
25 type: string
26 - jsonPath: .status.conditions[?(@.type=="VirtualMachineUSBRedirectionConfigured")].message
27 name: Message
28 priority: 1
29 type: string
30 - jsonPath: .status.conditions[?(@.type=="VirtualMachineUSBRedirectionConfigured")].lastTransitionTime
31 name: Last-Transition
32 type: date
33 - jsonPath: .metadata.creationTimestamp
34 name: Age
35 type: date
36 - jsonPath: .spec.virtualMachineName
37 name: Virtual-Machine
38 type: string
39 - jsonPath: .spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[0].matchExpressions[0].values[0]
40 name: Node-Affinity
41 type: string
42 - jsonPath: .spec.device.ids.vendorId
43 name: Device Vendor-ID
44 type: string
45 - jsonPath: .spec.device.ids.productId
46 name: Device Product-ID
47 type: string
48 - jsonPath: .spec.device.addresses.busAddress
49 name: Device Bus-Address
50 type: string
51 - jsonPath: .spec.device.addresses.deviceAddress
52 name: Device Device-Address
53 type: string
54 name: v1alpha
55 schema:
56 openAPIV3Schema:
57 description: A v1alpha.VirtualMachineUSBRedirection handles USB Redirection
58 for the specified VirtualMachineInstance
59 properties:
60 apiVersion:
61 description: |-
62 APIVersion defines the versioned schema of this representation of an object.
63 Servers should convert recognized schemas to the latest internal value, and
64 may reject unrecognized values.
65 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
66 type: string
67 kind:
68 description: |-
69 Kind is a string value representing the REST resource this object represents.
70 Servers may infer this from the endpoint the client submits requests to.
71 Cannot be updated.
72 In CamelCase.
73 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
74 type: string
75 metadata:
76 type: object
77 spec:
78 properties:
79 affinity:
80 description: Affinity is a group of affinity scheduling rules.
81 properties:
82 nodeAffinity:
83 description: Describes node affinity scheduling rules for the
84 pod.
85 properties:
86 preferredDuringSchedulingIgnoredDuringExecution:
87 description: |-
88 The scheduler will prefer to schedule pods to nodes that satisfy
89 the affinity expressions specified by this field, but it may choose
90 a node that violates one or more of the expressions. The node that is
91 most preferred is the one with the greatest sum of weights, i.e.
92 for each node that meets all of the scheduling requirements (resource
93 request, requiredDuringScheduling affinity expressions, etc.),
94 compute a sum by iterating through the elements of this field and adding
95 "weight" to the sum if the node matches the corresponding matchExpressions; the
96 node(s) with the highest sum are the most preferred.
97 items:
98 description: |-
99 An empty preferred scheduling term matches all objects with implicit weight 0
100 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
101 properties:
102 preference:
103 description: A node selector term, associated with the
104 corresponding weight.
105 properties:
106 matchExpressions:
107 description: A list of node selector requirements
108 by node's labels.
109 items:
110 description: |-
111 A node selector requirement is a selector that contains values, a key, and an operator
112 that relates the key and values.
113 properties:
114 key:
115 description: The label key that the selector
116 applies to.
117 type: string
118 operator:
119 description: |-
120 Represents a key's relationship to a set of values.
121 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
122 type: string
123 values:
124 description: |-
125 An array of string values. If the operator is In or NotIn,
126 the values array must be non-empty. If the operator is Exists or DoesNotExist,
127 the values array must be empty. If the operator is Gt or Lt, the values
128 array must have a single element, which will be interpreted as an integer.
129 This array is replaced during a strategic merge patch.
130 items:
131 type: string
132 type: array
133 x-kubernetes-list-type: atomic
134 required:
135 - key
136 - operator
137 type: object
138 type: array
139 x-kubernetes-list-type: atomic
140 matchFields:
141 description: A list of node selector requirements
142 by node's fields.
143 items:
144 description: |-
145 A node selector requirement is a selector that contains values, a key, and an operator
146 that relates the key and values.
147 properties:
148 key:
149 description: The label key that the selector
150 applies to.
151 type: string
152 operator:
153 description: |-
154 Represents a key's relationship to a set of values.
155 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
156 type: string
157 values:
158 description: |-
159 An array of string values. If the operator is In or NotIn,
160 the values array must be non-empty. If the operator is Exists or DoesNotExist,
161 the values array must be empty. If the operator is Gt or Lt, the values
162 array must have a single element, which will be interpreted as an integer.
163 This array is replaced during a strategic merge patch.
164 items:
165 type: string
166 type: array
167 x-kubernetes-list-type: atomic
168 required:
169 - key
170 - operator
171 type: object
172 type: array
173 x-kubernetes-list-type: atomic
174 type: object
175 x-kubernetes-map-type: atomic
176 weight:
177 description: Weight associated with matching the corresponding
178 nodeSelectorTerm, in the range 1-100.
179 format: int32
180 type: integer
181 required:
182 - preference
183 - weight
184 type: object
185 type: array
186 x-kubernetes-list-type: atomic
187 requiredDuringSchedulingIgnoredDuringExecution:
188 description: |-
189 If the affinity requirements specified by this field are not met at
190 scheduling time, the pod will not be scheduled onto the node.
191 If the affinity requirements specified by this field cease to be met
192 at some point during pod execution (e.g. due to an update), the system
193 may or may not try to eventually evict the pod from its node.
194 properties:
195 nodeSelectorTerms:
196 description: Required. A list of node selector terms.
197 The terms are ORed.
198 items:
199 description: |-
200 A null or empty node selector term matches no objects. The requirements of
201 them are ANDed.
202 The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
203 properties:
204 matchExpressions:
205 description: A list of node selector requirements
206 by node's labels.
207 items:
208 description: |-
209 A node selector requirement is a selector that contains values, a key, and an operator
210 that relates the key and values.
211 properties:
212 key:
213 description: The label key that the selector
214 applies to.
215 type: string
216 operator:
217 description: |-
218 Represents a key's relationship to a set of values.
219 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
220 type: string
221 values:
222 description: |-
223 An array of string values. If the operator is In or NotIn,
224 the values array must be non-empty. If the operator is Exists or DoesNotExist,
225 the values array must be empty. If the operator is Gt or Lt, the values
226 array must have a single element, which will be interpreted as an integer.
227 This array is replaced during a strategic merge patch.
228 items:
229 type: string
230 type: array
231 x-kubernetes-list-type: atomic
232 required:
233 - key
234 - operator
235 type: object
236 type: array
237 x-kubernetes-list-type: atomic
238 matchFields:
239 description: A list of node selector requirements
240 by node's fields.
241 items:
242 description: |-
243 A node selector requirement is a selector that contains values, a key, and an operator
244 that relates the key and values.
245 properties:
246 key:
247 description: The label key that the selector
248 applies to.
249 type: string
250 operator:
251 description: |-
252 Represents a key's relationship to a set of values.
253 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
254 type: string
255 values:
256 description: |-
257 An array of string values. If the operator is In or NotIn,
258 the values array must be non-empty. If the operator is Exists or DoesNotExist,
259 the values array must be empty. If the operator is Gt or Lt, the values
260 array must have a single element, which will be interpreted as an integer.
261 This array is replaced during a strategic merge patch.
262 items:
263 type: string
264 type: array
265 x-kubernetes-list-type: atomic
266 required:
267 - key
268 - operator
269 type: object
270 type: array
271 x-kubernetes-list-type: atomic
272 type: object
273 x-kubernetes-map-type: atomic
274 type: array
275 x-kubernetes-list-type: atomic
276 required:
277 - nodeSelectorTerms
278 type: object
279 x-kubernetes-map-type: atomic
280 type: object
281 podAffinity:
282 description: Describes pod affinity scheduling rules (e.g. co-locate
283 this pod in the same node, zone, etc. as some other pod(s)).
284 properties:
285 preferredDuringSchedulingIgnoredDuringExecution:
286 description: |-
287 The scheduler will prefer to schedule pods to nodes that satisfy
288 the affinity expressions specified by this field, but it may choose
289 a node that violates one or more of the expressions. The node that is
290 most preferred is the one with the greatest sum of weights, i.e.
291 for each node that meets all of the scheduling requirements (resource
292 request, requiredDuringScheduling affinity expressions, etc.),
293 compute a sum by iterating through the elements of this field and adding
294 "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
295 node(s) with the highest sum are the most preferred.
296 items:
297 description: The weights of all of the matched WeightedPodAffinityTerm
298 fields are added per-node to find the most preferred node(s)
299 properties:
300 podAffinityTerm:
301 description: Required. A pod affinity term, associated
302 with the corresponding weight.
303 properties:
304 labelSelector:
305 description: |-
306 A label query over a set of resources, in this case pods.
307 If it's null, this PodAffinityTerm matches with no Pods.
308 properties:
309 matchExpressions:
310 description: matchExpressions is a list of label
311 selector requirements. The requirements are
312 ANDed.
313 items:
314 description: |-
315 A label selector requirement is a selector that contains values, a key, and an operator that
316 relates the key and values.
317 properties:
318 key:
319 description: key is the label key that
320 the selector applies to.
321 type: string
322 operator:
323 description: |-
324 operator represents a key's relationship to a set of values.
325 Valid operators are In, NotIn, Exists and DoesNotExist.
326 type: string
327 values:
328 description: |-
329 values is an array of string values. If the operator is In or NotIn,
330 the values array must be non-empty. If the operator is Exists or DoesNotExist,
331 the values array must be empty. This array is replaced during a strategic
332 merge patch.
333 items:
334 type: string
335 type: array
336 x-kubernetes-list-type: atomic
337 required:
338 - key
339 - operator
340 type: object
341 type: array
342 x-kubernetes-list-type: atomic
343 matchLabels:
344 additionalProperties:
345 type: string
346 description: |-
347 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
348 map is equivalent to an element of matchExpressions, whose key field is "key", the
349 operator is "In", and the values array contains only "value". The requirements are ANDed.
350 type: object
351 type: object
352 x-kubernetes-map-type: atomic
353 matchLabelKeys:
354 description: |-
355 MatchLabelKeys is a set of pod label keys to select which pods will
356 be taken into consideration. The keys are used to lookup values from the
357 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
358 to select the group of existing pods which pods will be taken into consideration
359 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
360 pod labels will be ignored. The default value is empty.
361 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
362 Also, matchLabelKeys cannot be set when labelSelector isn't set.
363 This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
364 items:
365 type: string
366 type: array
367 x-kubernetes-list-type: atomic
368 mismatchLabelKeys:
369 description: |-
370 MismatchLabelKeys is a set of pod label keys to select which pods will
371 be taken into consideration. The keys are used to lookup values from the
372 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
373 to select the group of existing pods which pods will be taken into consideration
374 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
375 pod labels will be ignored. The default value is empty.
376 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
377 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
378 This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
379 items:
380 type: string
381 type: array
382 x-kubernetes-list-type: atomic
383 namespaceSelector:
384 description: |-
385 A label query over the set of namespaces that the term applies to.
386 The term is applied to the union of the namespaces selected by this field
387 and the ones listed in the namespaces field.
388 null selector and null or empty namespaces list means "this pod's namespace".
389 An empty selector ({}) matches all namespaces.
390 properties:
391 matchExpressions:
392 description: matchExpressions is a list of label
393 selector requirements. The requirements are
394 ANDed.
395 items:
396 description: |-
397 A label selector requirement is a selector that contains values, a key, and an operator that
398 relates the key and values.
399 properties:
400 key:
401 description: key is the label key that
402 the selector applies to.
403 type: string
404 operator:
405 description: |-
406 operator represents a key's relationship to a set of values.
407 Valid operators are In, NotIn, Exists and DoesNotExist.
408 type: string
409 values:
410 description: |-
411 values is an array of string values. If the operator is In or NotIn,
412 the values array must be non-empty. If the operator is Exists or DoesNotExist,
413 the values array must be empty. This array is replaced during a strategic
414 merge patch.
415 items:
416 type: string
417 type: array
418 x-kubernetes-list-type: atomic
419 required:
420 - key
421 - operator
422 type: object
423 type: array
424 x-kubernetes-list-type: atomic
425 matchLabels:
426 additionalProperties:
427 type: string
428 description: |-
429 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
430 map is equivalent to an element of matchExpressions, whose key field is "key", the
431 operator is "In", and the values array contains only "value". The requirements are ANDed.
432 type: object
433 type: object
434 x-kubernetes-map-type: atomic
435 namespaces:
436 description: |-
437 namespaces specifies a static list of namespace names that the term applies to.
438 The term is applied to the union of the namespaces listed in this field
439 and the ones selected by namespaceSelector.
440 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
441 items:
442 type: string
443 type: array
444 x-kubernetes-list-type: atomic
445 topologyKey:
446 description: |-
447 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
448 the labelSelector in the specified namespaces, where co-located is defined as running on a node
449 whose value of the label with key topologyKey matches that of any node on which any of the
450 selected pods is running.
451 Empty topologyKey is not allowed.
452 type: string
453 required:
454 - topologyKey
455 type: object
456 weight:
457 description: |-
458 weight associated with matching the corresponding podAffinityTerm,
459 in the range 1-100.
460 format: int32
461 type: integer
462 required:
463 - podAffinityTerm
464 - weight
465 type: object
466 type: array
467 x-kubernetes-list-type: atomic
468 requiredDuringSchedulingIgnoredDuringExecution:
469 description: |-
470 If the affinity requirements specified by this field are not met at
471 scheduling time, the pod will not be scheduled onto the node.
472 If the affinity requirements specified by this field cease to be met
473 at some point during pod execution (e.g. due to a pod label update), the
474 system may or may not try to eventually evict the pod from its node.
475 When there are multiple elements, the lists of nodes corresponding to each
476 podAffinityTerm are intersected, i.e. all terms must be satisfied.
477 items:
478 description: |-
479 Defines a set of pods (namely those matching the labelSelector
480 relative to the given namespace(s)) that this pod should be
481 co-located (affinity) or not co-located (anti-affinity) with,
482 where co-located is defined as running on a node whose value of
483 the label with key <topologyKey> matches that of any node on which
484 a pod of the set of pods is running
485 properties:
486 labelSelector:
487 description: |-
488 A label query over a set of resources, in this case pods.
489 If it's null, this PodAffinityTerm matches with no Pods.
490 properties:
491 matchExpressions:
492 description: matchExpressions is a list of label
493 selector requirements. The requirements are ANDed.
494 items:
495 description: |-
496 A label selector requirement is a selector that contains values, a key, and an operator that
497 relates the key and values.
498 properties:
499 key:
500 description: key is the label key that the
501 selector applies to.
502 type: string
503 operator:
504 description: |-
505 operator represents a key's relationship to a set of values.
506 Valid operators are In, NotIn, Exists and DoesNotExist.
507 type: string
508 values:
509 description: |-
510 values is an array of string values. If the operator is In or NotIn,
511 the values array must be non-empty. If the operator is Exists or DoesNotExist,
512 the values array must be empty. This array is replaced during a strategic
513 merge patch.
514 items:
515 type: string
516 type: array
517 x-kubernetes-list-type: atomic
518 required:
519 - key
520 - operator
521 type: object
522 type: array
523 x-kubernetes-list-type: atomic
524 matchLabels:
525 additionalProperties:
526 type: string
527 description: |-
528 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
529 map is equivalent to an element of matchExpressions, whose key field is "key", the
530 operator is "In", and the values array contains only "value". The requirements are ANDed.
531 type: object
532 type: object
533 x-kubernetes-map-type: atomic
534 matchLabelKeys:
535 description: |-
536 MatchLabelKeys is a set of pod label keys to select which pods will
537 be taken into consideration. The keys are used to lookup values from the
538 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
539 to select the group of existing pods which pods will be taken into consideration
540 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
541 pod labels will be ignored. The default value is empty.
542 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
543 Also, matchLabelKeys cannot be set when labelSelector isn't set.
544 This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
545 items:
546 type: string
547 type: array
548 x-kubernetes-list-type: atomic
549 mismatchLabelKeys:
550 description: |-
551 MismatchLabelKeys is a set of pod label keys to select which pods will
552 be taken into consideration. The keys are used to lookup values from the
553 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
554 to select the group of existing pods which pods will be taken into consideration
555 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
556 pod labels will be ignored. The default value is empty.
557 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
558 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
559 This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
560 items:
561 type: string
562 type: array
563 x-kubernetes-list-type: atomic
564 namespaceSelector:
565 description: |-
566 A label query over the set of namespaces that the term applies to.
567 The term is applied to the union of the namespaces selected by this field
568 and the ones listed in the namespaces field.
569 null selector and null or empty namespaces list means "this pod's namespace".
570 An empty selector ({}) matches all namespaces.
571 properties:
572 matchExpressions:
573 description: matchExpressions is a list of label
574 selector requirements. The requirements are ANDed.
575 items:
576 description: |-
577 A label selector requirement is a selector that contains values, a key, and an operator that
578 relates the key and values.
579 properties:
580 key:
581 description: key is the label key that the
582 selector applies to.
583 type: string
584 operator:
585 description: |-
586 operator represents a key's relationship to a set of values.
587 Valid operators are In, NotIn, Exists and DoesNotExist.
588 type: string
589 values:
590 description: |-
591 values is an array of string values. If the operator is In or NotIn,
592 the values array must be non-empty. If the operator is Exists or DoesNotExist,
593 the values array must be empty. This array is replaced during a strategic
594 merge patch.
595 items:
596 type: string
597 type: array
598 x-kubernetes-list-type: atomic
599 required:
600 - key
601 - operator
602 type: object
603 type: array
604 x-kubernetes-list-type: atomic
605 matchLabels:
606 additionalProperties:
607 type: string
608 description: |-
609 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
610 map is equivalent to an element of matchExpressions, whose key field is "key", the
611 operator is "In", and the values array contains only "value". The requirements are ANDed.
612 type: object
613 type: object
614 x-kubernetes-map-type: atomic
615 namespaces:
616 description: |-
617 namespaces specifies a static list of namespace names that the term applies to.
618 The term is applied to the union of the namespaces listed in this field
619 and the ones selected by namespaceSelector.
620 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
621 items:
622 type: string
623 type: array
624 x-kubernetes-list-type: atomic
625 topologyKey:
626 description: |-
627 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
628 the labelSelector in the specified namespaces, where co-located is defined as running on a node
629 whose value of the label with key topologyKey matches that of any node on which any of the
630 selected pods is running.
631 Empty topologyKey is not allowed.
632 type: string
633 required:
634 - topologyKey
635 type: object
636 type: array
637 x-kubernetes-list-type: atomic
638 type: object
639 podAntiAffinity:
640 description: Describes pod anti-affinity scheduling rules (e.g.
641 avoid putting this pod in the same node, zone, etc. as some
642 other pod(s)).
643 properties:
644 preferredDuringSchedulingIgnoredDuringExecution:
645 description: |-
646 The scheduler will prefer to schedule pods to nodes that satisfy
647 the anti-affinity expressions specified by this field, but it may choose
648 a node that violates one or more of the expressions. The node that is
649 most preferred is the one with the greatest sum of weights, i.e.
650 for each node that meets all of the scheduling requirements (resource
651 request, requiredDuringScheduling anti-affinity expressions, etc.),
652 compute a sum by iterating through the elements of this field and adding
653 "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
654 node(s) with the highest sum are the most preferred.
655 items:
656 description: The weights of all of the matched WeightedPodAffinityTerm
657 fields are added per-node to find the most preferred node(s)
658 properties:
659 podAffinityTerm:
660 description: Required. A pod affinity term, associated
661 with the corresponding weight.
662 properties:
663 labelSelector:
664 description: |-
665 A label query over a set of resources, in this case pods.
666 If it's null, this PodAffinityTerm matches with no Pods.
667 properties:
668 matchExpressions:
669 description: matchExpressions is a list of label
670 selector requirements. The requirements are
671 ANDed.
672 items:
673 description: |-
674 A label selector requirement is a selector that contains values, a key, and an operator that
675 relates the key and values.
676 properties:
677 key:
678 description: key is the label key that
679 the selector applies to.
680 type: string
681 operator:
682 description: |-
683 operator represents a key's relationship to a set of values.
684 Valid operators are In, NotIn, Exists and DoesNotExist.
685 type: string
686 values:
687 description: |-
688 values is an array of string values. If the operator is In or NotIn,
689 the values array must be non-empty. If the operator is Exists or DoesNotExist,
690 the values array must be empty. This array is replaced during a strategic
691 merge patch.
692 items:
693 type: string
694 type: array
695 x-kubernetes-list-type: atomic
696 required:
697 - key
698 - operator
699 type: object
700 type: array
701 x-kubernetes-list-type: atomic
702 matchLabels:
703 additionalProperties:
704 type: string
705 description: |-
706 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
707 map is equivalent to an element of matchExpressions, whose key field is "key", the
708 operator is "In", and the values array contains only "value". The requirements are ANDed.
709 type: object
710 type: object
711 x-kubernetes-map-type: atomic
712 matchLabelKeys:
713 description: |-
714 MatchLabelKeys is a set of pod label keys to select which pods will
715 be taken into consideration. The keys are used to lookup values from the
716 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
717 to select the group of existing pods which pods will be taken into consideration
718 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
719 pod labels will be ignored. The default value is empty.
720 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
721 Also, matchLabelKeys cannot be set when labelSelector isn't set.
722 This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
723 items:
724 type: string
725 type: array
726 x-kubernetes-list-type: atomic
727 mismatchLabelKeys:
728 description: |-
729 MismatchLabelKeys is a set of pod label keys to select which pods will
730 be taken into consideration. The keys are used to lookup values from the
731 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
732 to select the group of existing pods which pods will be taken into consideration
733 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
734 pod labels will be ignored. The default value is empty.
735 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
736 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
737 This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
738 items:
739 type: string
740 type: array
741 x-kubernetes-list-type: atomic
742 namespaceSelector:
743 description: |-
744 A label query over the set of namespaces that the term applies to.
745 The term is applied to the union of the namespaces selected by this field
746 and the ones listed in the namespaces field.
747 null selector and null or empty namespaces list means "this pod's namespace".
748 An empty selector ({}) matches all namespaces.
749 properties:
750 matchExpressions:
751 description: matchExpressions is a list of label
752 selector requirements. The requirements are
753 ANDed.
754 items:
755 description: |-
756 A label selector requirement is a selector that contains values, a key, and an operator that
757 relates the key and values.
758 properties:
759 key:
760 description: key is the label key that
761 the selector applies to.
762 type: string
763 operator:
764 description: |-
765 operator represents a key's relationship to a set of values.
766 Valid operators are In, NotIn, Exists and DoesNotExist.
767 type: string
768 values:
769 description: |-
770 values is an array of string values. If the operator is In or NotIn,
771 the values array must be non-empty. If the operator is Exists or DoesNotExist,
772 the values array must be empty. This array is replaced during a strategic
773 merge patch.
774 items:
775 type: string
776 type: array
777 x-kubernetes-list-type: atomic
778 required:
779 - key
780 - operator
781 type: object
782 type: array
783 x-kubernetes-list-type: atomic
784 matchLabels:
785 additionalProperties:
786 type: string
787 description: |-
788 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
789 map is equivalent to an element of matchExpressions, whose key field is "key", the
790 operator is "In", and the values array contains only "value". The requirements are ANDed.
791 type: object
792 type: object
793 x-kubernetes-map-type: atomic
794 namespaces:
795 description: |-
796 namespaces specifies a static list of namespace names that the term applies to.
797 The term is applied to the union of the namespaces listed in this field
798 and the ones selected by namespaceSelector.
799 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
800 items:
801 type: string
802 type: array
803 x-kubernetes-list-type: atomic
804 topologyKey:
805 description: |-
806 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
807 the labelSelector in the specified namespaces, where co-located is defined as running on a node
808 whose value of the label with key topologyKey matches that of any node on which any of the
809 selected pods is running.
810 Empty topologyKey is not allowed.
811 type: string
812 required:
813 - topologyKey
814 type: object
815 weight:
816 description: |-
817 weight associated with matching the corresponding podAffinityTerm,
818 in the range 1-100.
819 format: int32
820 type: integer
821 required:
822 - podAffinityTerm
823 - weight
824 type: object
825 type: array
826 x-kubernetes-list-type: atomic
827 requiredDuringSchedulingIgnoredDuringExecution:
828 description: |-
829 If the anti-affinity requirements specified by this field are not met at
830 scheduling time, the pod will not be scheduled onto the node.
831 If the anti-affinity requirements specified by this field cease to be met
832 at some point during pod execution (e.g. due to a pod label update), the
833 system may or may not try to eventually evict the pod from its node.
834 When there are multiple elements, the lists of nodes corresponding to each
835 podAffinityTerm are intersected, i.e. all terms must be satisfied.
836 items:
837 description: |-
838 Defines a set of pods (namely those matching the labelSelector
839 relative to the given namespace(s)) that this pod should be
840 co-located (affinity) or not co-located (anti-affinity) with,
841 where co-located is defined as running on a node whose value of
842 the label with key <topologyKey> matches that of any node on which
843 a pod of the set of pods is running
844 properties:
845 labelSelector:
846 description: |-
847 A label query over a set of resources, in this case pods.
848 If it's null, this PodAffinityTerm matches with no Pods.
849 properties:
850 matchExpressions:
851 description: matchExpressions is a list of label
852 selector requirements. The requirements are ANDed.
853 items:
854 description: |-
855 A label selector requirement is a selector that contains values, a key, and an operator that
856 relates the key and values.
857 properties:
858 key:
859 description: key is the label key that the
860 selector applies to.
861 type: string
862 operator:
863 description: |-
864 operator represents a key's relationship to a set of values.
865 Valid operators are In, NotIn, Exists and DoesNotExist.
866 type: string
867 values:
868 description: |-
869 values is an array of string values. If the operator is In or NotIn,
870 the values array must be non-empty. If the operator is Exists or DoesNotExist,
871 the values array must be empty. This array is replaced during a strategic
872 merge patch.
873 items:
874 type: string
875 type: array
876 x-kubernetes-list-type: atomic
877 required:
878 - key
879 - operator
880 type: object
881 type: array
882 x-kubernetes-list-type: atomic
883 matchLabels:
884 additionalProperties:
885 type: string
886 description: |-
887 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
888 map is equivalent to an element of matchExpressions, whose key field is "key", the
889 operator is "In", and the values array contains only "value". The requirements are ANDed.
890 type: object
891 type: object
892 x-kubernetes-map-type: atomic
893 matchLabelKeys:
894 description: |-
895 MatchLabelKeys is a set of pod label keys to select which pods will
896 be taken into consideration. The keys are used to lookup values from the
897 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
898 to select the group of existing pods which pods will be taken into consideration
899 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
900 pod labels will be ignored. The default value is empty.
901 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
902 Also, matchLabelKeys cannot be set when labelSelector isn't set.
903 This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
904 items:
905 type: string
906 type: array
907 x-kubernetes-list-type: atomic
908 mismatchLabelKeys:
909 description: |-
910 MismatchLabelKeys is a set of pod label keys to select which pods will
911 be taken into consideration. The keys are used to lookup values from the
912 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
913 to select the group of existing pods which pods will be taken into consideration
914 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
915 pod labels will be ignored. The default value is empty.
916 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
917 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
918 This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
919 items:
920 type: string
921 type: array
922 x-kubernetes-list-type: atomic
923 namespaceSelector:
924 description: |-
925 A label query over the set of namespaces that the term applies to.
926 The term is applied to the union of the namespaces selected by this field
927 and the ones listed in the namespaces field.
928 null selector and null or empty namespaces list means "this pod's namespace".
929 An empty selector ({}) matches all namespaces.
930 properties:
931 matchExpressions:
932 description: matchExpressions is a list of label
933 selector requirements. The requirements are ANDed.
934 items:
935 description: |-
936 A label selector requirement is a selector that contains values, a key, and an operator that
937 relates the key and values.
938 properties:
939 key:
940 description: key is the label key that the
941 selector applies to.
942 type: string
943 operator:
944 description: |-
945 operator represents a key's relationship to a set of values.
946 Valid operators are In, NotIn, Exists and DoesNotExist.
947 type: string
948 values:
949 description: |-
950 values is an array of string values. If the operator is In or NotIn,
951 the values array must be non-empty. If the operator is Exists or DoesNotExist,
952 the values array must be empty. This array is replaced during a strategic
953 merge patch.
954 items:
955 type: string
956 type: array
957 x-kubernetes-list-type: atomic
958 required:
959 - key
960 - operator
961 type: object
962 type: array
963 x-kubernetes-list-type: atomic
964 matchLabels:
965 additionalProperties:
966 type: string
967 description: |-
968 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
969 map is equivalent to an element of matchExpressions, whose key field is "key", the
970 operator is "In", and the values array contains only "value". The requirements are ANDed.
971 type: object
972 type: object
973 x-kubernetes-map-type: atomic
974 namespaces:
975 description: |-
976 namespaces specifies a static list of namespace names that the term applies to.
977 The term is applied to the union of the namespaces listed in this field
978 and the ones selected by namespaceSelector.
979 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
980 items:
981 type: string
982 type: array
983 x-kubernetes-list-type: atomic
984 topologyKey:
985 description: |-
986 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
987 the labelSelector in the specified namespaces, where co-located is defined as running on a node
988 whose value of the label with key topologyKey matches that of any node on which any of the
989 selected pods is running.
990 Empty topologyKey is not allowed.
991 type: string
992 required:
993 - topologyKey
994 type: object
995 type: array
996 x-kubernetes-list-type: atomic
997 type: object
998 type: object
999 device:
1000 description: Pair of either VendorID/ProductID or BusAddress/DeviceAddress
1001 maxProperties: 1
1002 minProperties: 1
1003 properties:
1004 addresses:
1005 description: |-
1006 USB Device defined by BusAddress/DeviceAddress combination
1007 TODO: This feature will soon be replaced by IDs (https://github.com/ncr-swt-retail/edge-roadmap/issues/8633)
1008 properties:
1009 busAddress:
1010 description: Address for the Bus of the USB Device
1011 type: string
1012 deviceAddress:
1013 description: Address for the Device of the USB Device
1014 type: string
1015 required:
1016 - busAddress
1017 - deviceAddress
1018 type: object
1019 ids:
1020 description: |-
1021 USB Device defined by VendorID/ProductID combination
1022 TODO: This feature is currently not supported (https://github.com/ncr-swt-retail/edge-roadmap/issues/8633)
1023 properties:
1024 productId:
1025 description: |-
1026 ID assigned to the USB Device. It is maintained by the vendor who owns the VendorID
1027 in order to distinguish between different products under a single VendorID
1028 type: string
1029 vendorId:
1030 description: ID for the vendor of the USB Device, as given
1031 by usb.org
1032 type: string
1033 required:
1034 - productId
1035 - vendorId
1036 type: object
1037 type: object
1038 virtualMachineName:
1039 description: |-
1040 Name of the VirtualMachineInstance we are providing USB redirection for.
1041 Use instead of OwnerReference. VMI must be in the same Namespace.
1042 type: string
1043 required:
1044 - virtualMachineName
1045 type: object
1046 status:
1047 properties:
1048 conditions:
1049 items:
1050 description: "Condition contains details for one aspect of the current
1051 state of this API Resource.\n---\nThis struct is intended for
1052 direct use as an array at the field path .status.conditions. For
1053 example,\n\n\n\ttype FooStatus struct{\n\t // Represents the
1054 observations of a foo's current state.\n\t // Known .status.conditions.type
1055 are: \"Available\", \"Progressing\", and \"Degraded\"\n\t //
1056 +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t
1057 \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\"
1058 patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t
1059 \ // other fields\n\t}"
1060 properties:
1061 lastTransitionTime:
1062 description: |-
1063 lastTransitionTime is the last time the condition transitioned from one status to another.
1064 This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
1065 format: date-time
1066 type: string
1067 message:
1068 description: |-
1069 message is a human readable message indicating details about the transition.
1070 This may be an empty string.
1071 maxLength: 32768
1072 type: string
1073 observedGeneration:
1074 description: |-
1075 observedGeneration represents the .metadata.generation that the condition was set based upon.
1076 For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
1077 with respect to the current state of the instance.
1078 format: int64
1079 minimum: 0
1080 type: integer
1081 reason:
1082 description: |-
1083 reason contains a programmatic identifier indicating the reason for the condition's last transition.
1084 Producers of specific condition types may define expected values and meanings for this field,
1085 and whether the values are considered a guaranteed API.
1086 The value should be a CamelCase string.
1087 This field may not be empty.
1088 maxLength: 1024
1089 minLength: 1
1090 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
1091 type: string
1092 status:
1093 description: status of the condition, one of True, False, Unknown.
1094 enum:
1095 - "True"
1096 - "False"
1097 - Unknown
1098 type: string
1099 type:
1100 description: |-
1101 type of condition in CamelCase or in foo.example.com/CamelCase.
1102 ---
1103 Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be
1104 useful (see .node.status.conditions), the ability to deconflict is important.
1105 The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
1106 maxLength: 316
1107 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
1108 type: string
1109 required:
1110 - lastTransitionTime
1111 - message
1112 - reason
1113 - status
1114 - type
1115 type: object
1116 type: array
1117 type: object
1118 required:
1119 - spec
1120 type: object
1121 served: true
1122 storage: true
1123 subresources:
1124 status: {}
View as plain text