github.com/operator-framework/operator-lifecycle-manager@v0.30.0/deploy/chart/crds/0000_50_olm_00-subscriptions.crd.yaml (about) 1 apiVersion: apiextensions.k8s.io/v1 2 kind: CustomResourceDefinition 3 metadata: 4 annotations: 5 controller-gen.kubebuilder.io/version: v0.16.1 6 name: subscriptions.operators.coreos.com 7 spec: 8 group: operators.coreos.com 9 names: 10 categories: 11 - olm 12 kind: Subscription 13 listKind: SubscriptionList 14 plural: subscriptions 15 shortNames: 16 - sub 17 - subs 18 singular: subscription 19 scope: Namespaced 20 versions: 21 - additionalPrinterColumns: 22 - description: The package subscribed to 23 jsonPath: .spec.name 24 name: Package 25 type: string 26 - description: The catalog source for the specified package 27 jsonPath: .spec.source 28 name: Source 29 type: string 30 - description: The channel of updates to subscribe to 31 jsonPath: .spec.channel 32 name: Channel 33 type: string 34 name: v1alpha1 35 schema: 36 openAPIV3Schema: 37 description: Subscription keeps operators up to date by tracking changes to Catalogs. 38 type: object 39 required: 40 - metadata 41 - spec 42 properties: 43 apiVersion: 44 description: |- 45 APIVersion defines the versioned schema of this representation of an object. 46 Servers should convert recognized schemas to the latest internal value, and 47 may reject unrecognized values. 48 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources 49 type: string 50 kind: 51 description: |- 52 Kind is a string value representing the REST resource this object represents. 53 Servers may infer this from the endpoint the client submits requests to. 54 Cannot be updated. 55 In CamelCase. 56 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 57 type: string 58 metadata: 59 type: object 60 spec: 61 description: SubscriptionSpec defines an Application that can be installed 62 type: object 63 required: 64 - name 65 - source 66 - sourceNamespace 67 properties: 68 channel: 69 type: string 70 config: 71 description: SubscriptionConfig contains configuration specified for a subscription. 72 type: object 73 properties: 74 affinity: 75 description: |- 76 If specified, overrides the pod's scheduling constraints. 77 nil sub-attributes will *not* override the original values in the pod.spec for those sub-attributes. 78 Use empty object ({}) to erase original sub-attribute values. 79 type: object 80 properties: 81 nodeAffinity: 82 description: Describes node affinity scheduling rules for the pod. 83 type: object 84 properties: 85 preferredDuringSchedulingIgnoredDuringExecution: 86 description: |- 87 The scheduler will prefer to schedule pods to nodes that satisfy 88 the affinity expressions specified by this field, but it may choose 89 a node that violates one or more of the expressions. The node that is 90 most preferred is the one with the greatest sum of weights, i.e. 91 for each node that meets all of the scheduling requirements (resource 92 request, requiredDuringScheduling affinity expressions, etc.), 93 compute a sum by iterating through the elements of this field and adding 94 "weight" to the sum if the node matches the corresponding matchExpressions; the 95 node(s) with the highest sum are the most preferred. 96 type: array 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 type: object 102 required: 103 - preference 104 - weight 105 properties: 106 preference: 107 description: A node selector term, associated with the corresponding weight. 108 type: object 109 properties: 110 matchExpressions: 111 description: A list of node selector requirements by node's labels. 112 type: array 113 items: 114 description: |- 115 A node selector requirement is a selector that contains values, a key, and an operator 116 that relates the key and values. 117 type: object 118 required: 119 - key 120 - operator 121 properties: 122 key: 123 description: The label key that the selector applies to. 124 type: string 125 operator: 126 description: |- 127 Represents a key's relationship to a set of values. 128 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. 129 type: string 130 values: 131 description: |- 132 An array of string values. If the operator is In or NotIn, 133 the values array must be non-empty. If the operator is Exists or DoesNotExist, 134 the values array must be empty. If the operator is Gt or Lt, the values 135 array must have a single element, which will be interpreted as an integer. 136 This array is replaced during a strategic merge patch. 137 type: array 138 items: 139 type: string 140 x-kubernetes-list-type: atomic 141 x-kubernetes-list-type: atomic 142 matchFields: 143 description: A list of node selector requirements by node's fields. 144 type: array 145 items: 146 description: |- 147 A node selector requirement is a selector that contains values, a key, and an operator 148 that relates the key and values. 149 type: object 150 required: 151 - key 152 - operator 153 properties: 154 key: 155 description: The label key that the selector applies to. 156 type: string 157 operator: 158 description: |- 159 Represents a key's relationship to a set of values. 160 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. 161 type: string 162 values: 163 description: |- 164 An array of string values. If the operator is In or NotIn, 165 the values array must be non-empty. If the operator is Exists or DoesNotExist, 166 the values array must be empty. If the operator is Gt or Lt, the values 167 array must have a single element, which will be interpreted as an integer. 168 This array is replaced during a strategic merge patch. 169 type: array 170 items: 171 type: string 172 x-kubernetes-list-type: atomic 173 x-kubernetes-list-type: atomic 174 x-kubernetes-map-type: atomic 175 weight: 176 description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100. 177 type: integer 178 format: int32 179 x-kubernetes-list-type: atomic 180 requiredDuringSchedulingIgnoredDuringExecution: 181 description: |- 182 If the affinity requirements specified by this field are not met at 183 scheduling time, the pod will not be scheduled onto the node. 184 If the affinity requirements specified by this field cease to be met 185 at some point during pod execution (e.g. due to an update), the system 186 may or may not try to eventually evict the pod from its node. 187 type: object 188 required: 189 - nodeSelectorTerms 190 properties: 191 nodeSelectorTerms: 192 description: Required. A list of node selector terms. The terms are ORed. 193 type: array 194 items: 195 description: |- 196 A null or empty node selector term matches no objects. The requirements of 197 them are ANDed. 198 The TopologySelectorTerm type implements a subset of the NodeSelectorTerm. 199 type: object 200 properties: 201 matchExpressions: 202 description: A list of node selector requirements by node's labels. 203 type: array 204 items: 205 description: |- 206 A node selector requirement is a selector that contains values, a key, and an operator 207 that relates the key and values. 208 type: object 209 required: 210 - key 211 - operator 212 properties: 213 key: 214 description: The label key that the selector 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 type: array 229 items: 230 type: string 231 x-kubernetes-list-type: atomic 232 x-kubernetes-list-type: atomic 233 matchFields: 234 description: A list of node selector requirements by node's fields. 235 type: array 236 items: 237 description: |- 238 A node selector requirement is a selector that contains values, a key, and an operator 239 that relates the key and values. 240 type: object 241 required: 242 - key 243 - operator 244 properties: 245 key: 246 description: The label key that the selector applies to. 247 type: string 248 operator: 249 description: |- 250 Represents a key's relationship to a set of values. 251 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. 252 type: string 253 values: 254 description: |- 255 An array of string values. If the operator is In or NotIn, 256 the values array must be non-empty. If the operator is Exists or DoesNotExist, 257 the values array must be empty. If the operator is Gt or Lt, the values 258 array must have a single element, which will be interpreted as an integer. 259 This array is replaced during a strategic merge patch. 260 type: array 261 items: 262 type: string 263 x-kubernetes-list-type: atomic 264 x-kubernetes-list-type: atomic 265 x-kubernetes-map-type: atomic 266 x-kubernetes-list-type: atomic 267 x-kubernetes-map-type: atomic 268 podAffinity: 269 description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)). 270 type: object 271 properties: 272 preferredDuringSchedulingIgnoredDuringExecution: 273 description: |- 274 The scheduler will prefer to schedule pods to nodes that satisfy 275 the affinity expressions specified by this field, but it may choose 276 a node that violates one or more of the expressions. The node that is 277 most preferred is the one with the greatest sum of weights, i.e. 278 for each node that meets all of the scheduling requirements (resource 279 request, requiredDuringScheduling affinity expressions, etc.), 280 compute a sum by iterating through the elements of this field and adding 281 "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the 282 node(s) with the highest sum are the most preferred. 283 type: array 284 items: 285 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s) 286 type: object 287 required: 288 - podAffinityTerm 289 - weight 290 properties: 291 podAffinityTerm: 292 description: Required. A pod affinity term, associated with the corresponding weight. 293 type: object 294 required: 295 - topologyKey 296 properties: 297 labelSelector: 298 description: |- 299 A label query over a set of resources, in this case pods. 300 If it's null, this PodAffinityTerm matches with no Pods. 301 type: object 302 properties: 303 matchExpressions: 304 description: matchExpressions is a list of label selector requirements. The requirements are ANDed. 305 type: array 306 items: 307 description: |- 308 A label selector requirement is a selector that contains values, a key, and an operator that 309 relates the key and values. 310 type: object 311 required: 312 - key 313 - operator 314 properties: 315 key: 316 description: key is the label key that the selector applies to. 317 type: string 318 operator: 319 description: |- 320 operator represents a key's relationship to a set of values. 321 Valid operators are In, NotIn, Exists and DoesNotExist. 322 type: string 323 values: 324 description: |- 325 values is an array of string values. If the operator is In or NotIn, 326 the values array must be non-empty. If the operator is Exists or DoesNotExist, 327 the values array must be empty. This array is replaced during a strategic 328 merge patch. 329 type: array 330 items: 331 type: string 332 x-kubernetes-list-type: atomic 333 x-kubernetes-list-type: atomic 334 matchLabels: 335 description: |- 336 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels 337 map is equivalent to an element of matchExpressions, whose key field is "key", the 338 operator is "In", and the values array contains only "value". The requirements are ANDed. 339 type: object 340 additionalProperties: 341 type: string 342 x-kubernetes-map-type: atomic 343 matchLabelKeys: 344 description: |- 345 MatchLabelKeys is a set of pod label keys to select which pods will 346 be taken into consideration. The keys are used to lookup values from the 347 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` 348 to select the group of existing pods which pods will be taken into consideration 349 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming 350 pod labels will be ignored. The default value is empty. 351 The same key is forbidden to exist in both matchLabelKeys and labelSelector. 352 Also, matchLabelKeys cannot be set when labelSelector isn't set. 353 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). 354 type: array 355 items: 356 type: string 357 x-kubernetes-list-type: atomic 358 mismatchLabelKeys: 359 description: |- 360 MismatchLabelKeys is a set of pod label keys to select which pods will 361 be taken into consideration. The keys are used to lookup values from the 362 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` 363 to select the group of existing pods which pods will be taken into consideration 364 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming 365 pod labels will be ignored. The default value is empty. 366 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. 367 Also, mismatchLabelKeys cannot be set when labelSelector isn't set. 368 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). 369 type: array 370 items: 371 type: string 372 x-kubernetes-list-type: atomic 373 namespaceSelector: 374 description: |- 375 A label query over the set of namespaces that the term applies to. 376 The term is applied to the union of the namespaces selected by this field 377 and the ones listed in the namespaces field. 378 null selector and null or empty namespaces list means "this pod's namespace". 379 An empty selector ({}) matches all namespaces. 380 type: object 381 properties: 382 matchExpressions: 383 description: matchExpressions is a list of label selector requirements. The requirements are ANDed. 384 type: array 385 items: 386 description: |- 387 A label selector requirement is a selector that contains values, a key, and an operator that 388 relates the key and values. 389 type: object 390 required: 391 - key 392 - operator 393 properties: 394 key: 395 description: key is the label key that the selector applies to. 396 type: string 397 operator: 398 description: |- 399 operator represents a key's relationship to a set of values. 400 Valid operators are In, NotIn, Exists and DoesNotExist. 401 type: string 402 values: 403 description: |- 404 values is an array of string values. If the operator is In or NotIn, 405 the values array must be non-empty. If the operator is Exists or DoesNotExist, 406 the values array must be empty. This array is replaced during a strategic 407 merge patch. 408 type: array 409 items: 410 type: string 411 x-kubernetes-list-type: atomic 412 x-kubernetes-list-type: atomic 413 matchLabels: 414 description: |- 415 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels 416 map is equivalent to an element of matchExpressions, whose key field is "key", the 417 operator is "In", and the values array contains only "value". The requirements are ANDed. 418 type: object 419 additionalProperties: 420 type: string 421 x-kubernetes-map-type: atomic 422 namespaces: 423 description: |- 424 namespaces specifies a static list of namespace names that the term applies to. 425 The term is applied to the union of the namespaces listed in this field 426 and the ones selected by namespaceSelector. 427 null or empty namespaces list and null namespaceSelector means "this pod's namespace". 428 type: array 429 items: 430 type: string 431 x-kubernetes-list-type: atomic 432 topologyKey: 433 description: |- 434 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching 435 the labelSelector in the specified namespaces, where co-located is defined as running on a node 436 whose value of the label with key topologyKey matches that of any node on which any of the 437 selected pods is running. 438 Empty topologyKey is not allowed. 439 type: string 440 weight: 441 description: |- 442 weight associated with matching the corresponding podAffinityTerm, 443 in the range 1-100. 444 type: integer 445 format: int32 446 x-kubernetes-list-type: atomic 447 requiredDuringSchedulingIgnoredDuringExecution: 448 description: |- 449 If the affinity requirements specified by this field are not met at 450 scheduling time, the pod will not be scheduled onto the node. 451 If the affinity requirements specified by this field cease to be met 452 at some point during pod execution (e.g. due to a pod label update), the 453 system may or may not try to eventually evict the pod from its node. 454 When there are multiple elements, the lists of nodes corresponding to each 455 podAffinityTerm are intersected, i.e. all terms must be satisfied. 456 type: array 457 items: 458 description: |- 459 Defines a set of pods (namely those matching the labelSelector 460 relative to the given namespace(s)) that this pod should be 461 co-located (affinity) or not co-located (anti-affinity) with, 462 where co-located is defined as running on a node whose value of 463 the label with key <topologyKey> matches that of any node on which 464 a pod of the set of pods is running 465 type: object 466 required: 467 - topologyKey 468 properties: 469 labelSelector: 470 description: |- 471 A label query over a set of resources, in this case pods. 472 If it's null, this PodAffinityTerm matches with no Pods. 473 type: object 474 properties: 475 matchExpressions: 476 description: matchExpressions is a list of label selector requirements. The requirements are ANDed. 477 type: array 478 items: 479 description: |- 480 A label selector requirement is a selector that contains values, a key, and an operator that 481 relates the key and values. 482 type: object 483 required: 484 - key 485 - operator 486 properties: 487 key: 488 description: key is the label key that the selector applies to. 489 type: string 490 operator: 491 description: |- 492 operator represents a key's relationship to a set of values. 493 Valid operators are In, NotIn, Exists and DoesNotExist. 494 type: string 495 values: 496 description: |- 497 values is an array of string values. If the operator is In or NotIn, 498 the values array must be non-empty. If the operator is Exists or DoesNotExist, 499 the values array must be empty. This array is replaced during a strategic 500 merge patch. 501 type: array 502 items: 503 type: string 504 x-kubernetes-list-type: atomic 505 x-kubernetes-list-type: atomic 506 matchLabels: 507 description: |- 508 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels 509 map is equivalent to an element of matchExpressions, whose key field is "key", the 510 operator is "In", and the values array contains only "value". The requirements are ANDed. 511 type: object 512 additionalProperties: 513 type: string 514 x-kubernetes-map-type: atomic 515 matchLabelKeys: 516 description: |- 517 MatchLabelKeys is a set of pod label keys to select which pods will 518 be taken into consideration. The keys are used to lookup values from the 519 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` 520 to select the group of existing pods which pods will be taken into consideration 521 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming 522 pod labels will be ignored. The default value is empty. 523 The same key is forbidden to exist in both matchLabelKeys and labelSelector. 524 Also, matchLabelKeys cannot be set when labelSelector isn't set. 525 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). 526 type: array 527 items: 528 type: string 529 x-kubernetes-list-type: atomic 530 mismatchLabelKeys: 531 description: |- 532 MismatchLabelKeys is a set of pod label keys to select which pods will 533 be taken into consideration. The keys are used to lookup values from the 534 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` 535 to select the group of existing pods which pods will be taken into consideration 536 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming 537 pod labels will be ignored. The default value is empty. 538 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. 539 Also, mismatchLabelKeys cannot be set when labelSelector isn't set. 540 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). 541 type: array 542 items: 543 type: string 544 x-kubernetes-list-type: atomic 545 namespaceSelector: 546 description: |- 547 A label query over the set of namespaces that the term applies to. 548 The term is applied to the union of the namespaces selected by this field 549 and the ones listed in the namespaces field. 550 null selector and null or empty namespaces list means "this pod's namespace". 551 An empty selector ({}) matches all namespaces. 552 type: object 553 properties: 554 matchExpressions: 555 description: matchExpressions is a list of label selector requirements. The requirements are ANDed. 556 type: array 557 items: 558 description: |- 559 A label selector requirement is a selector that contains values, a key, and an operator that 560 relates the key and values. 561 type: object 562 required: 563 - key 564 - operator 565 properties: 566 key: 567 description: key is the label key that the selector applies to. 568 type: string 569 operator: 570 description: |- 571 operator represents a key's relationship to a set of values. 572 Valid operators are In, NotIn, Exists and DoesNotExist. 573 type: string 574 values: 575 description: |- 576 values is an array of string values. If the operator is In or NotIn, 577 the values array must be non-empty. If the operator is Exists or DoesNotExist, 578 the values array must be empty. This array is replaced during a strategic 579 merge patch. 580 type: array 581 items: 582 type: string 583 x-kubernetes-list-type: atomic 584 x-kubernetes-list-type: atomic 585 matchLabels: 586 description: |- 587 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels 588 map is equivalent to an element of matchExpressions, whose key field is "key", the 589 operator is "In", and the values array contains only "value". The requirements are ANDed. 590 type: object 591 additionalProperties: 592 type: string 593 x-kubernetes-map-type: atomic 594 namespaces: 595 description: |- 596 namespaces specifies a static list of namespace names that the term applies to. 597 The term is applied to the union of the namespaces listed in this field 598 and the ones selected by namespaceSelector. 599 null or empty namespaces list and null namespaceSelector means "this pod's namespace". 600 type: array 601 items: 602 type: string 603 x-kubernetes-list-type: atomic 604 topologyKey: 605 description: |- 606 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching 607 the labelSelector in the specified namespaces, where co-located is defined as running on a node 608 whose value of the label with key topologyKey matches that of any node on which any of the 609 selected pods is running. 610 Empty topologyKey is not allowed. 611 type: string 612 x-kubernetes-list-type: atomic 613 podAntiAffinity: 614 description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)). 615 type: object 616 properties: 617 preferredDuringSchedulingIgnoredDuringExecution: 618 description: |- 619 The scheduler will prefer to schedule pods to nodes that satisfy 620 the anti-affinity expressions specified by this field, but it may choose 621 a node that violates one or more of the expressions. The node that is 622 most preferred is the one with the greatest sum of weights, i.e. 623 for each node that meets all of the scheduling requirements (resource 624 request, requiredDuringScheduling anti-affinity expressions, etc.), 625 compute a sum by iterating through the elements of this field and adding 626 "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the 627 node(s) with the highest sum are the most preferred. 628 type: array 629 items: 630 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s) 631 type: object 632 required: 633 - podAffinityTerm 634 - weight 635 properties: 636 podAffinityTerm: 637 description: Required. A pod affinity term, associated with the corresponding weight. 638 type: object 639 required: 640 - topologyKey 641 properties: 642 labelSelector: 643 description: |- 644 A label query over a set of resources, in this case pods. 645 If it's null, this PodAffinityTerm matches with no Pods. 646 type: object 647 properties: 648 matchExpressions: 649 description: matchExpressions is a list of label selector requirements. The requirements are ANDed. 650 type: array 651 items: 652 description: |- 653 A label selector requirement is a selector that contains values, a key, and an operator that 654 relates the key and values. 655 type: object 656 required: 657 - key 658 - operator 659 properties: 660 key: 661 description: key is the label key that the selector applies to. 662 type: string 663 operator: 664 description: |- 665 operator represents a key's relationship to a set of values. 666 Valid operators are In, NotIn, Exists and DoesNotExist. 667 type: string 668 values: 669 description: |- 670 values is an array of string values. If the operator is In or NotIn, 671 the values array must be non-empty. If the operator is Exists or DoesNotExist, 672 the values array must be empty. This array is replaced during a strategic 673 merge patch. 674 type: array 675 items: 676 type: string 677 x-kubernetes-list-type: atomic 678 x-kubernetes-list-type: atomic 679 matchLabels: 680 description: |- 681 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels 682 map is equivalent to an element of matchExpressions, whose key field is "key", the 683 operator is "In", and the values array contains only "value". The requirements are ANDed. 684 type: object 685 additionalProperties: 686 type: string 687 x-kubernetes-map-type: atomic 688 matchLabelKeys: 689 description: |- 690 MatchLabelKeys is a set of pod label keys to select which pods will 691 be taken into consideration. The keys are used to lookup values from the 692 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` 693 to select the group of existing pods which pods will be taken into consideration 694 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming 695 pod labels will be ignored. The default value is empty. 696 The same key is forbidden to exist in both matchLabelKeys and labelSelector. 697 Also, matchLabelKeys cannot be set when labelSelector isn't set. 698 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). 699 type: array 700 items: 701 type: string 702 x-kubernetes-list-type: atomic 703 mismatchLabelKeys: 704 description: |- 705 MismatchLabelKeys is a set of pod label keys to select which pods will 706 be taken into consideration. The keys are used to lookup values from the 707 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` 708 to select the group of existing pods which pods will be taken into consideration 709 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming 710 pod labels will be ignored. The default value is empty. 711 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. 712 Also, mismatchLabelKeys cannot be set when labelSelector isn't set. 713 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). 714 type: array 715 items: 716 type: string 717 x-kubernetes-list-type: atomic 718 namespaceSelector: 719 description: |- 720 A label query over the set of namespaces that the term applies to. 721 The term is applied to the union of the namespaces selected by this field 722 and the ones listed in the namespaces field. 723 null selector and null or empty namespaces list means "this pod's namespace". 724 An empty selector ({}) matches all namespaces. 725 type: object 726 properties: 727 matchExpressions: 728 description: matchExpressions is a list of label selector requirements. The requirements are ANDed. 729 type: array 730 items: 731 description: |- 732 A label selector requirement is a selector that contains values, a key, and an operator that 733 relates the key and values. 734 type: object 735 required: 736 - key 737 - operator 738 properties: 739 key: 740 description: key is the label key that the selector applies to. 741 type: string 742 operator: 743 description: |- 744 operator represents a key's relationship to a set of values. 745 Valid operators are In, NotIn, Exists and DoesNotExist. 746 type: string 747 values: 748 description: |- 749 values is an array of string values. If the operator is In or NotIn, 750 the values array must be non-empty. If the operator is Exists or DoesNotExist, 751 the values array must be empty. This array is replaced during a strategic 752 merge patch. 753 type: array 754 items: 755 type: string 756 x-kubernetes-list-type: atomic 757 x-kubernetes-list-type: atomic 758 matchLabels: 759 description: |- 760 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels 761 map is equivalent to an element of matchExpressions, whose key field is "key", the 762 operator is "In", and the values array contains only "value". The requirements are ANDed. 763 type: object 764 additionalProperties: 765 type: string 766 x-kubernetes-map-type: atomic 767 namespaces: 768 description: |- 769 namespaces specifies a static list of namespace names that the term applies to. 770 The term is applied to the union of the namespaces listed in this field 771 and the ones selected by namespaceSelector. 772 null or empty namespaces list and null namespaceSelector means "this pod's namespace". 773 type: array 774 items: 775 type: string 776 x-kubernetes-list-type: atomic 777 topologyKey: 778 description: |- 779 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching 780 the labelSelector in the specified namespaces, where co-located is defined as running on a node 781 whose value of the label with key topologyKey matches that of any node on which any of the 782 selected pods is running. 783 Empty topologyKey is not allowed. 784 type: string 785 weight: 786 description: |- 787 weight associated with matching the corresponding podAffinityTerm, 788 in the range 1-100. 789 type: integer 790 format: int32 791 x-kubernetes-list-type: atomic 792 requiredDuringSchedulingIgnoredDuringExecution: 793 description: |- 794 If the anti-affinity requirements specified by this field are not met at 795 scheduling time, the pod will not be scheduled onto the node. 796 If the anti-affinity requirements specified by this field cease to be met 797 at some point during pod execution (e.g. due to a pod label update), the 798 system may or may not try to eventually evict the pod from its node. 799 When there are multiple elements, the lists of nodes corresponding to each 800 podAffinityTerm are intersected, i.e. all terms must be satisfied. 801 type: array 802 items: 803 description: |- 804 Defines a set of pods (namely those matching the labelSelector 805 relative to the given namespace(s)) that this pod should be 806 co-located (affinity) or not co-located (anti-affinity) with, 807 where co-located is defined as running on a node whose value of 808 the label with key <topologyKey> matches that of any node on which 809 a pod of the set of pods is running 810 type: object 811 required: 812 - topologyKey 813 properties: 814 labelSelector: 815 description: |- 816 A label query over a set of resources, in this case pods. 817 If it's null, this PodAffinityTerm matches with no Pods. 818 type: object 819 properties: 820 matchExpressions: 821 description: matchExpressions is a list of label selector requirements. The requirements are ANDed. 822 type: array 823 items: 824 description: |- 825 A label selector requirement is a selector that contains values, a key, and an operator that 826 relates the key and values. 827 type: object 828 required: 829 - key 830 - operator 831 properties: 832 key: 833 description: key is the label key that the selector applies to. 834 type: string 835 operator: 836 description: |- 837 operator represents a key's relationship to a set of values. 838 Valid operators are In, NotIn, Exists and DoesNotExist. 839 type: string 840 values: 841 description: |- 842 values is an array of string values. If the operator is In or NotIn, 843 the values array must be non-empty. If the operator is Exists or DoesNotExist, 844 the values array must be empty. This array is replaced during a strategic 845 merge patch. 846 type: array 847 items: 848 type: string 849 x-kubernetes-list-type: atomic 850 x-kubernetes-list-type: atomic 851 matchLabels: 852 description: |- 853 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels 854 map is equivalent to an element of matchExpressions, whose key field is "key", the 855 operator is "In", and the values array contains only "value". The requirements are ANDed. 856 type: object 857 additionalProperties: 858 type: string 859 x-kubernetes-map-type: atomic 860 matchLabelKeys: 861 description: |- 862 MatchLabelKeys is a set of pod label keys to select which pods will 863 be taken into consideration. The keys are used to lookup values from the 864 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` 865 to select the group of existing pods which pods will be taken into consideration 866 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming 867 pod labels will be ignored. The default value is empty. 868 The same key is forbidden to exist in both matchLabelKeys and labelSelector. 869 Also, matchLabelKeys cannot be set when labelSelector isn't set. 870 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). 871 type: array 872 items: 873 type: string 874 x-kubernetes-list-type: atomic 875 mismatchLabelKeys: 876 description: |- 877 MismatchLabelKeys is a set of pod label keys to select which pods will 878 be taken into consideration. The keys are used to lookup values from the 879 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` 880 to select the group of existing pods which pods will be taken into consideration 881 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming 882 pod labels will be ignored. The default value is empty. 883 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. 884 Also, mismatchLabelKeys cannot be set when labelSelector isn't set. 885 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). 886 type: array 887 items: 888 type: string 889 x-kubernetes-list-type: atomic 890 namespaceSelector: 891 description: |- 892 A label query over the set of namespaces that the term applies to. 893 The term is applied to the union of the namespaces selected by this field 894 and the ones listed in the namespaces field. 895 null selector and null or empty namespaces list means "this pod's namespace". 896 An empty selector ({}) matches all namespaces. 897 type: object 898 properties: 899 matchExpressions: 900 description: matchExpressions is a list of label selector requirements. The requirements are ANDed. 901 type: array 902 items: 903 description: |- 904 A label selector requirement is a selector that contains values, a key, and an operator that 905 relates the key and values. 906 type: object 907 required: 908 - key 909 - operator 910 properties: 911 key: 912 description: key is the label key that the selector applies to. 913 type: string 914 operator: 915 description: |- 916 operator represents a key's relationship to a set of values. 917 Valid operators are In, NotIn, Exists and DoesNotExist. 918 type: string 919 values: 920 description: |- 921 values is an array of string values. If the operator is In or NotIn, 922 the values array must be non-empty. If the operator is Exists or DoesNotExist, 923 the values array must be empty. This array is replaced during a strategic 924 merge patch. 925 type: array 926 items: 927 type: string 928 x-kubernetes-list-type: atomic 929 x-kubernetes-list-type: atomic 930 matchLabels: 931 description: |- 932 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels 933 map is equivalent to an element of matchExpressions, whose key field is "key", the 934 operator is "In", and the values array contains only "value". The requirements are ANDed. 935 type: object 936 additionalProperties: 937 type: string 938 x-kubernetes-map-type: atomic 939 namespaces: 940 description: |- 941 namespaces specifies a static list of namespace names that the term applies to. 942 The term is applied to the union of the namespaces listed in this field 943 and the ones selected by namespaceSelector. 944 null or empty namespaces list and null namespaceSelector means "this pod's namespace". 945 type: array 946 items: 947 type: string 948 x-kubernetes-list-type: atomic 949 topologyKey: 950 description: |- 951 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching 952 the labelSelector in the specified namespaces, where co-located is defined as running on a node 953 whose value of the label with key topologyKey matches that of any node on which any of the 954 selected pods is running. 955 Empty topologyKey is not allowed. 956 type: string 957 x-kubernetes-list-type: atomic 958 annotations: 959 description: |- 960 Annotations is an unstructured key value map stored with each Deployment, Pod, APIService in the Operator. 961 Typically, annotations may be set by external tools to store and retrieve arbitrary metadata. 962 Use this field to pre-define annotations that OLM should add to each of the Subscription's 963 deployments, pods, and apiservices. 964 type: object 965 additionalProperties: 966 type: string 967 env: 968 description: |- 969 Env is a list of environment variables to set in the container. 970 Cannot be updated. 971 type: array 972 items: 973 description: EnvVar represents an environment variable present in a Container. 974 type: object 975 required: 976 - name 977 properties: 978 name: 979 description: Name of the environment variable. Must be a C_IDENTIFIER. 980 type: string 981 value: 982 description: |- 983 Variable references $(VAR_NAME) are expanded 984 using the previously defined environment variables in the container and 985 any service environment variables. If a variable cannot be resolved, 986 the reference in the input string will be unchanged. Double $$ are reduced 987 to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. 988 "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". 989 Escaped references will never be expanded, regardless of whether the variable 990 exists or not. 991 Defaults to "". 992 type: string 993 valueFrom: 994 description: Source for the environment variable's value. Cannot be used if value is not empty. 995 type: object 996 properties: 997 configMapKeyRef: 998 description: Selects a key of a ConfigMap. 999 type: object 1000 required: 1001 - key 1002 properties: 1003 key: 1004 description: The key to select. 1005 type: string 1006 name: 1007 description: |- 1008 Name of the referent. 1009 This field is effectively required, but due to backwards compatibility is 1010 allowed to be empty. Instances of this type with an empty value here are 1011 almost certainly wrong. 1012 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names 1013 type: string 1014 default: "" 1015 optional: 1016 description: Specify whether the ConfigMap or its key must be defined 1017 type: boolean 1018 x-kubernetes-map-type: atomic 1019 fieldRef: 1020 description: |- 1021 Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['<KEY>']`, `metadata.annotations['<KEY>']`, 1022 spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. 1023 type: object 1024 required: 1025 - fieldPath 1026 properties: 1027 apiVersion: 1028 description: Version of the schema the FieldPath is written in terms of, defaults to "v1". 1029 type: string 1030 fieldPath: 1031 description: Path of the field to select in the specified API version. 1032 type: string 1033 x-kubernetes-map-type: atomic 1034 resourceFieldRef: 1035 description: |- 1036 Selects a resource of the container: only resources limits and requests 1037 (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. 1038 type: object 1039 required: 1040 - resource 1041 properties: 1042 containerName: 1043 description: 'Container name: required for volumes, optional for env vars' 1044 type: string 1045 divisor: 1046 description: Specifies the output format of the exposed resources, defaults to "1" 1047 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 1048 anyOf: 1049 - type: integer 1050 - type: string 1051 x-kubernetes-int-or-string: true 1052 resource: 1053 description: 'Required: resource to select' 1054 type: string 1055 x-kubernetes-map-type: atomic 1056 secretKeyRef: 1057 description: Selects a key of a secret in the pod's namespace 1058 type: object 1059 required: 1060 - key 1061 properties: 1062 key: 1063 description: The key of the secret to select from. Must be a valid secret key. 1064 type: string 1065 name: 1066 description: |- 1067 Name of the referent. 1068 This field is effectively required, but due to backwards compatibility is 1069 allowed to be empty. Instances of this type with an empty value here are 1070 almost certainly wrong. 1071 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names 1072 type: string 1073 default: "" 1074 optional: 1075 description: Specify whether the Secret or its key must be defined 1076 type: boolean 1077 x-kubernetes-map-type: atomic 1078 envFrom: 1079 description: |- 1080 EnvFrom is a list of sources to populate environment variables in the container. 1081 The keys defined within a source must be a C_IDENTIFIER. All invalid keys 1082 will be reported as an event when the container is starting. When a key exists in multiple 1083 sources, the value associated with the last source will take precedence. 1084 Values defined by an Env with a duplicate key will take precedence. 1085 Immutable. 1086 type: array 1087 items: 1088 description: EnvFromSource represents the source of a set of ConfigMaps 1089 type: object 1090 properties: 1091 configMapRef: 1092 description: The ConfigMap to select from 1093 type: object 1094 properties: 1095 name: 1096 description: |- 1097 Name of the referent. 1098 This field is effectively required, but due to backwards compatibility is 1099 allowed to be empty. Instances of this type with an empty value here are 1100 almost certainly wrong. 1101 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names 1102 type: string 1103 default: "" 1104 optional: 1105 description: Specify whether the ConfigMap must be defined 1106 type: boolean 1107 x-kubernetes-map-type: atomic 1108 prefix: 1109 description: An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER. 1110 type: string 1111 secretRef: 1112 description: The Secret to select from 1113 type: object 1114 properties: 1115 name: 1116 description: |- 1117 Name of the referent. 1118 This field is effectively required, but due to backwards compatibility is 1119 allowed to be empty. Instances of this type with an empty value here are 1120 almost certainly wrong. 1121 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names 1122 type: string 1123 default: "" 1124 optional: 1125 description: Specify whether the Secret must be defined 1126 type: boolean 1127 x-kubernetes-map-type: atomic 1128 nodeSelector: 1129 description: |- 1130 NodeSelector is a selector which must be true for the pod to fit on a node. 1131 Selector which must match a node's labels for the pod to be scheduled on that node. 1132 More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ 1133 type: object 1134 additionalProperties: 1135 type: string 1136 resources: 1137 description: |- 1138 Resources represents compute resources required by this container. 1139 Immutable. 1140 More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/ 1141 type: object 1142 properties: 1143 claims: 1144 description: |- 1145 Claims lists the names of resources, defined in spec.resourceClaims, 1146 that are used by this container. 1147 1148 This is an alpha field and requires enabling the 1149 DynamicResourceAllocation feature gate. 1150 1151 This field is immutable. It can only be set for containers. 1152 type: array 1153 items: 1154 description: ResourceClaim references one entry in PodSpec.ResourceClaims. 1155 type: object 1156 required: 1157 - name 1158 properties: 1159 name: 1160 description: |- 1161 Name must match the name of one entry in pod.spec.resourceClaims of 1162 the Pod where this field is used. It makes that resource available 1163 inside a container. 1164 type: string 1165 request: 1166 description: |- 1167 Request is the name chosen for a request in the referenced claim. 1168 If empty, everything from the claim is made available, otherwise 1169 only the result of this request. 1170 type: string 1171 x-kubernetes-list-map-keys: 1172 - name 1173 x-kubernetes-list-type: map 1174 limits: 1175 description: |- 1176 Limits describes the maximum amount of compute resources allowed. 1177 More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ 1178 type: object 1179 additionalProperties: 1180 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 1181 anyOf: 1182 - type: integer 1183 - type: string 1184 x-kubernetes-int-or-string: true 1185 requests: 1186 description: |- 1187 Requests describes the minimum amount of compute resources required. 1188 If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, 1189 otherwise to an implementation-defined value. Requests cannot exceed Limits. 1190 More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ 1191 type: object 1192 additionalProperties: 1193 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 1194 anyOf: 1195 - type: integer 1196 - type: string 1197 x-kubernetes-int-or-string: true 1198 selector: 1199 description: |- 1200 Selector is the label selector for pods to be configured. 1201 Existing ReplicaSets whose pods are 1202 selected by this will be the ones affected by this deployment. 1203 It must match the pod template's labels. 1204 type: object 1205 properties: 1206 matchExpressions: 1207 description: matchExpressions is a list of label selector requirements. The requirements are ANDed. 1208 type: array 1209 items: 1210 description: |- 1211 A label selector requirement is a selector that contains values, a key, and an operator that 1212 relates the key and values. 1213 type: object 1214 required: 1215 - key 1216 - operator 1217 properties: 1218 key: 1219 description: key is the label key that the selector applies to. 1220 type: string 1221 operator: 1222 description: |- 1223 operator represents a key's relationship to a set of values. 1224 Valid operators are In, NotIn, Exists and DoesNotExist. 1225 type: string 1226 values: 1227 description: |- 1228 values is an array of string values. If the operator is In or NotIn, 1229 the values array must be non-empty. If the operator is Exists or DoesNotExist, 1230 the values array must be empty. This array is replaced during a strategic 1231 merge patch. 1232 type: array 1233 items: 1234 type: string 1235 x-kubernetes-list-type: atomic 1236 x-kubernetes-list-type: atomic 1237 matchLabels: 1238 description: |- 1239 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels 1240 map is equivalent to an element of matchExpressions, whose key field is "key", the 1241 operator is "In", and the values array contains only "value". The requirements are ANDed. 1242 type: object 1243 additionalProperties: 1244 type: string 1245 x-kubernetes-map-type: atomic 1246 tolerations: 1247 description: Tolerations are the pod's tolerations. 1248 type: array 1249 items: 1250 description: |- 1251 The pod this Toleration is attached to tolerates any taint that matches 1252 the triple <key,value,effect> using the matching operator <operator>. 1253 type: object 1254 properties: 1255 effect: 1256 description: |- 1257 Effect indicates the taint effect to match. Empty means match all taint effects. 1258 When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute. 1259 type: string 1260 key: 1261 description: |- 1262 Key is the taint key that the toleration applies to. Empty means match all taint keys. 1263 If the key is empty, operator must be Exists; this combination means to match all values and all keys. 1264 type: string 1265 operator: 1266 description: |- 1267 Operator represents a key's relationship to the value. 1268 Valid operators are Exists and Equal. Defaults to Equal. 1269 Exists is equivalent to wildcard for value, so that a pod can 1270 tolerate all taints of a particular category. 1271 type: string 1272 tolerationSeconds: 1273 description: |- 1274 TolerationSeconds represents the period of time the toleration (which must be 1275 of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, 1276 it is not set, which means tolerate the taint forever (do not evict). Zero and 1277 negative values will be treated as 0 (evict immediately) by the system. 1278 type: integer 1279 format: int64 1280 value: 1281 description: |- 1282 Value is the taint value the toleration matches to. 1283 If the operator is Exists, the value should be empty, otherwise just a regular string. 1284 type: string 1285 volumeMounts: 1286 description: List of VolumeMounts to set in the container. 1287 type: array 1288 items: 1289 description: VolumeMount describes a mounting of a Volume within a container. 1290 type: object 1291 required: 1292 - mountPath 1293 - name 1294 properties: 1295 mountPath: 1296 description: |- 1297 Path within the container at which the volume should be mounted. Must 1298 not contain ':'. 1299 type: string 1300 mountPropagation: 1301 description: |- 1302 mountPropagation determines how mounts are propagated from the host 1303 to container and the other way around. 1304 When not set, MountPropagationNone is used. 1305 This field is beta in 1.10. 1306 When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified 1307 (which defaults to None). 1308 type: string 1309 name: 1310 description: This must match the Name of a Volume. 1311 type: string 1312 readOnly: 1313 description: |- 1314 Mounted read-only if true, read-write otherwise (false or unspecified). 1315 Defaults to false. 1316 type: boolean 1317 recursiveReadOnly: 1318 description: |- 1319 RecursiveReadOnly specifies whether read-only mounts should be handled 1320 recursively. 1321 1322 If ReadOnly is false, this field has no meaning and must be unspecified. 1323 1324 If ReadOnly is true, and this field is set to Disabled, the mount is not made 1325 recursively read-only. If this field is set to IfPossible, the mount is made 1326 recursively read-only, if it is supported by the container runtime. If this 1327 field is set to Enabled, the mount is made recursively read-only if it is 1328 supported by the container runtime, otherwise the pod will not be started and 1329 an error will be generated to indicate the reason. 1330 1331 If this field is set to IfPossible or Enabled, MountPropagation must be set to 1332 None (or be unspecified, which defaults to None). 1333 1334 If this field is not specified, it is treated as an equivalent of Disabled. 1335 type: string 1336 subPath: 1337 description: |- 1338 Path within the volume from which the container's volume should be mounted. 1339 Defaults to "" (volume's root). 1340 type: string 1341 subPathExpr: 1342 description: |- 1343 Expanded path within the volume from which the container's volume should be mounted. 1344 Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. 1345 Defaults to "" (volume's root). 1346 SubPathExpr and SubPath are mutually exclusive. 1347 type: string 1348 volumes: 1349 description: List of Volumes to set in the podSpec. 1350 type: array 1351 items: 1352 description: Volume represents a named volume in a pod that may be accessed by any container in the pod. 1353 type: object 1354 required: 1355 - name 1356 properties: 1357 awsElasticBlockStore: 1358 description: |- 1359 awsElasticBlockStore represents an AWS Disk resource that is attached to a 1360 kubelet's host machine and then exposed to the pod. 1361 More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore 1362 type: object 1363 required: 1364 - volumeID 1365 properties: 1366 fsType: 1367 description: |- 1368 fsType is the filesystem type of the volume that you want to mount. 1369 Tip: Ensure that the filesystem type is supported by the host operating system. 1370 Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. 1371 More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore 1372 type: string 1373 partition: 1374 description: |- 1375 partition is the partition in the volume that you want to mount. 1376 If omitted, the default is to mount by volume name. 1377 Examples: For volume /dev/sda1, you specify the partition as "1". 1378 Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). 1379 type: integer 1380 format: int32 1381 readOnly: 1382 description: |- 1383 readOnly value true will force the readOnly setting in VolumeMounts. 1384 More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore 1385 type: boolean 1386 volumeID: 1387 description: |- 1388 volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). 1389 More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore 1390 type: string 1391 azureDisk: 1392 description: azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. 1393 type: object 1394 required: 1395 - diskName 1396 - diskURI 1397 properties: 1398 cachingMode: 1399 description: 'cachingMode is the Host Caching mode: None, Read Only, Read Write.' 1400 type: string 1401 diskName: 1402 description: diskName is the Name of the data disk in the blob storage 1403 type: string 1404 diskURI: 1405 description: diskURI is the URI of data disk in the blob storage 1406 type: string 1407 fsType: 1408 description: |- 1409 fsType is Filesystem type to mount. 1410 Must be a filesystem type supported by the host operating system. 1411 Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. 1412 type: string 1413 default: ext4 1414 kind: 1415 description: 'kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared' 1416 type: string 1417 readOnly: 1418 description: |- 1419 readOnly Defaults to false (read/write). ReadOnly here will force 1420 the ReadOnly setting in VolumeMounts. 1421 type: boolean 1422 default: false 1423 azureFile: 1424 description: azureFile represents an Azure File Service mount on the host and bind mount to the pod. 1425 type: object 1426 required: 1427 - secretName 1428 - shareName 1429 properties: 1430 readOnly: 1431 description: |- 1432 readOnly defaults to false (read/write). ReadOnly here will force 1433 the ReadOnly setting in VolumeMounts. 1434 type: boolean 1435 secretName: 1436 description: secretName is the name of secret that contains Azure Storage Account Name and Key 1437 type: string 1438 shareName: 1439 description: shareName is the azure share Name 1440 type: string 1441 cephfs: 1442 description: cephFS represents a Ceph FS mount on the host that shares a pod's lifetime 1443 type: object 1444 required: 1445 - monitors 1446 properties: 1447 monitors: 1448 description: |- 1449 monitors is Required: Monitors is a collection of Ceph monitors 1450 More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it 1451 type: array 1452 items: 1453 type: string 1454 x-kubernetes-list-type: atomic 1455 path: 1456 description: 'path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /' 1457 type: string 1458 readOnly: 1459 description: |- 1460 readOnly is Optional: Defaults to false (read/write). ReadOnly here will force 1461 the ReadOnly setting in VolumeMounts. 1462 More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it 1463 type: boolean 1464 secretFile: 1465 description: |- 1466 secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret 1467 More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it 1468 type: string 1469 secretRef: 1470 description: |- 1471 secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. 1472 More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it 1473 type: object 1474 properties: 1475 name: 1476 description: |- 1477 Name of the referent. 1478 This field is effectively required, but due to backwards compatibility is 1479 allowed to be empty. Instances of this type with an empty value here are 1480 almost certainly wrong. 1481 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names 1482 type: string 1483 default: "" 1484 x-kubernetes-map-type: atomic 1485 user: 1486 description: |- 1487 user is optional: User is the rados user name, default is admin 1488 More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it 1489 type: string 1490 cinder: 1491 description: |- 1492 cinder represents a cinder volume attached and mounted on kubelets host machine. 1493 More info: https://examples.k8s.io/mysql-cinder-pd/README.md 1494 type: object 1495 required: 1496 - volumeID 1497 properties: 1498 fsType: 1499 description: |- 1500 fsType is the filesystem type to mount. 1501 Must be a filesystem type supported by the host operating system. 1502 Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. 1503 More info: https://examples.k8s.io/mysql-cinder-pd/README.md 1504 type: string 1505 readOnly: 1506 description: |- 1507 readOnly defaults to false (read/write). ReadOnly here will force 1508 the ReadOnly setting in VolumeMounts. 1509 More info: https://examples.k8s.io/mysql-cinder-pd/README.md 1510 type: boolean 1511 secretRef: 1512 description: |- 1513 secretRef is optional: points to a secret object containing parameters used to connect 1514 to OpenStack. 1515 type: object 1516 properties: 1517 name: 1518 description: |- 1519 Name of the referent. 1520 This field is effectively required, but due to backwards compatibility is 1521 allowed to be empty. Instances of this type with an empty value here are 1522 almost certainly wrong. 1523 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names 1524 type: string 1525 default: "" 1526 x-kubernetes-map-type: atomic 1527 volumeID: 1528 description: |- 1529 volumeID used to identify the volume in cinder. 1530 More info: https://examples.k8s.io/mysql-cinder-pd/README.md 1531 type: string 1532 configMap: 1533 description: configMap represents a configMap that should populate this volume 1534 type: object 1535 properties: 1536 defaultMode: 1537 description: |- 1538 defaultMode is optional: mode bits used to set permissions on created files by default. 1539 Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. 1540 YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. 1541 Defaults to 0644. 1542 Directories within the path are not affected by this setting. 1543 This might be in conflict with other options that affect the file 1544 mode, like fsGroup, and the result can be other mode bits set. 1545 type: integer 1546 format: int32 1547 items: 1548 description: |- 1549 items if unspecified, each key-value pair in the Data field of the referenced 1550 ConfigMap will be projected into the volume as a file whose name is the 1551 key and content is the value. If specified, the listed keys will be 1552 projected into the specified paths, and unlisted keys will not be 1553 present. If a key is specified which is not present in the ConfigMap, 1554 the volume setup will error unless it is marked optional. Paths must be 1555 relative and may not contain the '..' path or start with '..'. 1556 type: array 1557 items: 1558 description: Maps a string key to a path within a volume. 1559 type: object 1560 required: 1561 - key 1562 - path 1563 properties: 1564 key: 1565 description: key is the key to project. 1566 type: string 1567 mode: 1568 description: |- 1569 mode is Optional: mode bits used to set permissions on this file. 1570 Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. 1571 YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. 1572 If not specified, the volume defaultMode will be used. 1573 This might be in conflict with other options that affect the file 1574 mode, like fsGroup, and the result can be other mode bits set. 1575 type: integer 1576 format: int32 1577 path: 1578 description: |- 1579 path is the relative path of the file to map the key to. 1580 May not be an absolute path. 1581 May not contain the path element '..'. 1582 May not start with the string '..'. 1583 type: string 1584 x-kubernetes-list-type: atomic 1585 name: 1586 description: |- 1587 Name of the referent. 1588 This field is effectively required, but due to backwards compatibility is 1589 allowed to be empty. Instances of this type with an empty value here are 1590 almost certainly wrong. 1591 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names 1592 type: string 1593 default: "" 1594 optional: 1595 description: optional specify whether the ConfigMap or its keys must be defined 1596 type: boolean 1597 x-kubernetes-map-type: atomic 1598 csi: 1599 description: csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). 1600 type: object 1601 required: 1602 - driver 1603 properties: 1604 driver: 1605 description: |- 1606 driver is the name of the CSI driver that handles this volume. 1607 Consult with your admin for the correct name as registered in the cluster. 1608 type: string 1609 fsType: 1610 description: |- 1611 fsType to mount. Ex. "ext4", "xfs", "ntfs". 1612 If not provided, the empty value is passed to the associated CSI driver 1613 which will determine the default filesystem to apply. 1614 type: string 1615 nodePublishSecretRef: 1616 description: |- 1617 nodePublishSecretRef is a reference to the secret object containing 1618 sensitive information to pass to the CSI driver to complete the CSI 1619 NodePublishVolume and NodeUnpublishVolume calls. 1620 This field is optional, and may be empty if no secret is required. If the 1621 secret object contains more than one secret, all secret references are passed. 1622 type: object 1623 properties: 1624 name: 1625 description: |- 1626 Name of the referent. 1627 This field is effectively required, but due to backwards compatibility is 1628 allowed to be empty. Instances of this type with an empty value here are 1629 almost certainly wrong. 1630 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names 1631 type: string 1632 default: "" 1633 x-kubernetes-map-type: atomic 1634 readOnly: 1635 description: |- 1636 readOnly specifies a read-only configuration for the volume. 1637 Defaults to false (read/write). 1638 type: boolean 1639 volumeAttributes: 1640 description: |- 1641 volumeAttributes stores driver-specific properties that are passed to the CSI 1642 driver. Consult your driver's documentation for supported values. 1643 type: object 1644 additionalProperties: 1645 type: string 1646 downwardAPI: 1647 description: downwardAPI represents downward API about the pod that should populate this volume 1648 type: object 1649 properties: 1650 defaultMode: 1651 description: |- 1652 Optional: mode bits to use on created files by default. Must be a 1653 Optional: mode bits used to set permissions on created files by default. 1654 Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. 1655 YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. 1656 Defaults to 0644. 1657 Directories within the path are not affected by this setting. 1658 This might be in conflict with other options that affect the file 1659 mode, like fsGroup, and the result can be other mode bits set. 1660 type: integer 1661 format: int32 1662 items: 1663 description: Items is a list of downward API volume file 1664 type: array 1665 items: 1666 description: DownwardAPIVolumeFile represents information to create the file containing the pod field 1667 type: object 1668 required: 1669 - path 1670 properties: 1671 fieldRef: 1672 description: 'Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.' 1673 type: object 1674 required: 1675 - fieldPath 1676 properties: 1677 apiVersion: 1678 description: Version of the schema the FieldPath is written in terms of, defaults to "v1". 1679 type: string 1680 fieldPath: 1681 description: Path of the field to select in the specified API version. 1682 type: string 1683 x-kubernetes-map-type: atomic 1684 mode: 1685 description: |- 1686 Optional: mode bits used to set permissions on this file, must be an octal value 1687 between 0000 and 0777 or a decimal value between 0 and 511. 1688 YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. 1689 If not specified, the volume defaultMode will be used. 1690 This might be in conflict with other options that affect the file 1691 mode, like fsGroup, and the result can be other mode bits set. 1692 type: integer 1693 format: int32 1694 path: 1695 description: 'Required: Path is the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..''' 1696 type: string 1697 resourceFieldRef: 1698 description: |- 1699 Selects a resource of the container: only resources limits and requests 1700 (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported. 1701 type: object 1702 required: 1703 - resource 1704 properties: 1705 containerName: 1706 description: 'Container name: required for volumes, optional for env vars' 1707 type: string 1708 divisor: 1709 description: Specifies the output format of the exposed resources, defaults to "1" 1710 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 1711 anyOf: 1712 - type: integer 1713 - type: string 1714 x-kubernetes-int-or-string: true 1715 resource: 1716 description: 'Required: resource to select' 1717 type: string 1718 x-kubernetes-map-type: atomic 1719 x-kubernetes-list-type: atomic 1720 emptyDir: 1721 description: |- 1722 emptyDir represents a temporary directory that shares a pod's lifetime. 1723 More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir 1724 type: object 1725 properties: 1726 medium: 1727 description: |- 1728 medium represents what type of storage medium should back this directory. 1729 The default is "" which means to use the node's default medium. 1730 Must be an empty string (default) or Memory. 1731 More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir 1732 type: string 1733 sizeLimit: 1734 description: |- 1735 sizeLimit is the total amount of local storage required for this EmptyDir volume. 1736 The size limit is also applicable for memory medium. 1737 The maximum usage on memory medium EmptyDir would be the minimum value between 1738 the SizeLimit specified here and the sum of memory limits of all containers in a pod. 1739 The default is nil which means that the limit is undefined. 1740 More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir 1741 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 1742 anyOf: 1743 - type: integer 1744 - type: string 1745 x-kubernetes-int-or-string: true 1746 ephemeral: 1747 description: |- 1748 ephemeral represents a volume that is handled by a cluster storage driver. 1749 The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, 1750 and deleted when the pod is removed. 1751 1752 Use this if: 1753 a) the volume is only needed while the pod runs, 1754 b) features of normal volumes like restoring from snapshot or capacity 1755 tracking are needed, 1756 c) the storage driver is specified through a storage class, and 1757 d) the storage driver supports dynamic volume provisioning through 1758 a PersistentVolumeClaim (see EphemeralVolumeSource for more 1759 information on the connection between this volume type 1760 and PersistentVolumeClaim). 1761 1762 Use PersistentVolumeClaim or one of the vendor-specific 1763 APIs for volumes that persist for longer than the lifecycle 1764 of an individual pod. 1765 1766 Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to 1767 be used that way - see the documentation of the driver for 1768 more information. 1769 1770 A pod can use both types of ephemeral volumes and 1771 persistent volumes at the same time. 1772 type: object 1773 properties: 1774 volumeClaimTemplate: 1775 description: |- 1776 Will be used to create a stand-alone PVC to provision the volume. 1777 The pod in which this EphemeralVolumeSource is embedded will be the 1778 owner of the PVC, i.e. the PVC will be deleted together with the 1779 pod. The name of the PVC will be `<pod name>-<volume name>` where 1780 `<volume name>` is the name from the `PodSpec.Volumes` array 1781 entry. Pod validation will reject the pod if the concatenated name 1782 is not valid for a PVC (for example, too long). 1783 1784 An existing PVC with that name that is not owned by the pod 1785 will *not* be used for the pod to avoid using an unrelated 1786 volume by mistake. Starting the pod is then blocked until 1787 the unrelated PVC is removed. If such a pre-created PVC is 1788 meant to be used by the pod, the PVC has to updated with an 1789 owner reference to the pod once the pod exists. Normally 1790 this should not be necessary, but it may be useful when 1791 manually reconstructing a broken cluster. 1792 1793 This field is read-only and no changes will be made by Kubernetes 1794 to the PVC after it has been created. 1795 1796 Required, must not be nil. 1797 type: object 1798 required: 1799 - spec 1800 properties: 1801 metadata: 1802 description: |- 1803 May contain labels and annotations that will be copied into the PVC 1804 when creating it. No other fields are allowed and will be rejected during 1805 validation. 1806 type: object 1807 spec: 1808 description: |- 1809 The specification for the PersistentVolumeClaim. The entire content is 1810 copied unchanged into the PVC that gets created from this 1811 template. The same fields as in a PersistentVolumeClaim 1812 are also valid here. 1813 type: object 1814 properties: 1815 accessModes: 1816 description: |- 1817 accessModes contains the desired access modes the volume should have. 1818 More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1 1819 type: array 1820 items: 1821 type: string 1822 x-kubernetes-list-type: atomic 1823 dataSource: 1824 description: |- 1825 dataSource field can be used to specify either: 1826 * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) 1827 * An existing PVC (PersistentVolumeClaim) 1828 If the provisioner or an external controller can support the specified data source, 1829 it will create a new volume based on the contents of the specified data source. 1830 When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, 1831 and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. 1832 If the namespace is specified, then dataSourceRef will not be copied to dataSource. 1833 type: object 1834 required: 1835 - kind 1836 - name 1837 properties: 1838 apiGroup: 1839 description: |- 1840 APIGroup is the group for the resource being referenced. 1841 If APIGroup is not specified, the specified Kind must be in the core API group. 1842 For any other third-party types, APIGroup is required. 1843 type: string 1844 kind: 1845 description: Kind is the type of resource being referenced 1846 type: string 1847 name: 1848 description: Name is the name of resource being referenced 1849 type: string 1850 x-kubernetes-map-type: atomic 1851 dataSourceRef: 1852 description: |- 1853 dataSourceRef specifies the object from which to populate the volume with data, if a non-empty 1854 volume is desired. This may be any object from a non-empty API group (non 1855 core object) or a PersistentVolumeClaim object. 1856 When this field is specified, volume binding will only succeed if the type of 1857 the specified object matches some installed volume populator or dynamic 1858 provisioner. 1859 This field will replace the functionality of the dataSource field and as such 1860 if both fields are non-empty, they must have the same value. For backwards 1861 compatibility, when namespace isn't specified in dataSourceRef, 1862 both fields (dataSource and dataSourceRef) will be set to the same 1863 value automatically if one of them is empty and the other is non-empty. 1864 When namespace is specified in dataSourceRef, 1865 dataSource isn't set to the same value and must be empty. 1866 There are three important differences between dataSource and dataSourceRef: 1867 * While dataSource only allows two specific types of objects, dataSourceRef 1868 allows any non-core object, as well as PersistentVolumeClaim objects. 1869 * While dataSource ignores disallowed values (dropping them), dataSourceRef 1870 preserves all values, and generates an error if a disallowed value is 1871 specified. 1872 * While dataSource only allows local objects, dataSourceRef allows objects 1873 in any namespaces. 1874 (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. 1875 (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled. 1876 type: object 1877 required: 1878 - kind 1879 - name 1880 properties: 1881 apiGroup: 1882 description: |- 1883 APIGroup is the group for the resource being referenced. 1884 If APIGroup is not specified, the specified Kind must be in the core API group. 1885 For any other third-party types, APIGroup is required. 1886 type: string 1887 kind: 1888 description: Kind is the type of resource being referenced 1889 type: string 1890 name: 1891 description: Name is the name of resource being referenced 1892 type: string 1893 namespace: 1894 description: |- 1895 Namespace is the namespace of resource being referenced 1896 Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. 1897 (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled. 1898 type: string 1899 resources: 1900 description: |- 1901 resources represents the minimum resources the volume should have. 1902 If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements 1903 that are lower than previous value but must still be higher than capacity recorded in the 1904 status field of the claim. 1905 More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources 1906 type: object 1907 properties: 1908 limits: 1909 description: |- 1910 Limits describes the maximum amount of compute resources allowed. 1911 More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ 1912 type: object 1913 additionalProperties: 1914 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 1915 anyOf: 1916 - type: integer 1917 - type: string 1918 x-kubernetes-int-or-string: true 1919 requests: 1920 description: |- 1921 Requests describes the minimum amount of compute resources required. 1922 If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, 1923 otherwise to an implementation-defined value. Requests cannot exceed Limits. 1924 More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ 1925 type: object 1926 additionalProperties: 1927 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 1928 anyOf: 1929 - type: integer 1930 - type: string 1931 x-kubernetes-int-or-string: true 1932 selector: 1933 description: selector is a label query over volumes to consider for binding. 1934 type: object 1935 properties: 1936 matchExpressions: 1937 description: matchExpressions is a list of label selector requirements. The requirements are ANDed. 1938 type: array 1939 items: 1940 description: |- 1941 A label selector requirement is a selector that contains values, a key, and an operator that 1942 relates the key and values. 1943 type: object 1944 required: 1945 - key 1946 - operator 1947 properties: 1948 key: 1949 description: key is the label key that the selector applies to. 1950 type: string 1951 operator: 1952 description: |- 1953 operator represents a key's relationship to a set of values. 1954 Valid operators are In, NotIn, Exists and DoesNotExist. 1955 type: string 1956 values: 1957 description: |- 1958 values is an array of string values. If the operator is In or NotIn, 1959 the values array must be non-empty. If the operator is Exists or DoesNotExist, 1960 the values array must be empty. This array is replaced during a strategic 1961 merge patch. 1962 type: array 1963 items: 1964 type: string 1965 x-kubernetes-list-type: atomic 1966 x-kubernetes-list-type: atomic 1967 matchLabels: 1968 description: |- 1969 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels 1970 map is equivalent to an element of matchExpressions, whose key field is "key", the 1971 operator is "In", and the values array contains only "value". The requirements are ANDed. 1972 type: object 1973 additionalProperties: 1974 type: string 1975 x-kubernetes-map-type: atomic 1976 storageClassName: 1977 description: |- 1978 storageClassName is the name of the StorageClass required by the claim. 1979 More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1 1980 type: string 1981 volumeAttributesClassName: 1982 description: |- 1983 volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. 1984 If specified, the CSI driver will create or update the volume with the attributes defined 1985 in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, 1986 it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass 1987 will be applied to the claim but it's not allowed to reset this field to empty string once it is set. 1988 If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass 1989 will be set by the persistentvolume controller if it exists. 1990 If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be 1991 set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource 1992 exists. 1993 More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ 1994 (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). 1995 type: string 1996 volumeMode: 1997 description: |- 1998 volumeMode defines what type of volume is required by the claim. 1999 Value of Filesystem is implied when not included in claim spec. 2000 type: string 2001 volumeName: 2002 description: volumeName is the binding reference to the PersistentVolume backing this claim. 2003 type: string 2004 fc: 2005 description: fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. 2006 type: object 2007 properties: 2008 fsType: 2009 description: |- 2010 fsType is the filesystem type to mount. 2011 Must be a filesystem type supported by the host operating system. 2012 Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. 2013 type: string 2014 lun: 2015 description: 'lun is Optional: FC target lun number' 2016 type: integer 2017 format: int32 2018 readOnly: 2019 description: |- 2020 readOnly is Optional: Defaults to false (read/write). ReadOnly here will force 2021 the ReadOnly setting in VolumeMounts. 2022 type: boolean 2023 targetWWNs: 2024 description: 'targetWWNs is Optional: FC target worldwide names (WWNs)' 2025 type: array 2026 items: 2027 type: string 2028 x-kubernetes-list-type: atomic 2029 wwids: 2030 description: |- 2031 wwids Optional: FC volume world wide identifiers (wwids) 2032 Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously. 2033 type: array 2034 items: 2035 type: string 2036 x-kubernetes-list-type: atomic 2037 flexVolume: 2038 description: |- 2039 flexVolume represents a generic volume resource that is 2040 provisioned/attached using an exec based plugin. 2041 type: object 2042 required: 2043 - driver 2044 properties: 2045 driver: 2046 description: driver is the name of the driver to use for this volume. 2047 type: string 2048 fsType: 2049 description: |- 2050 fsType is the filesystem type to mount. 2051 Must be a filesystem type supported by the host operating system. 2052 Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script. 2053 type: string 2054 options: 2055 description: 'options is Optional: this field holds extra command options if any.' 2056 type: object 2057 additionalProperties: 2058 type: string 2059 readOnly: 2060 description: |- 2061 readOnly is Optional: defaults to false (read/write). ReadOnly here will force 2062 the ReadOnly setting in VolumeMounts. 2063 type: boolean 2064 secretRef: 2065 description: |- 2066 secretRef is Optional: secretRef is reference to the secret object containing 2067 sensitive information to pass to the plugin scripts. This may be 2068 empty if no secret object is specified. If the secret object 2069 contains more than one secret, all secrets are passed to the plugin 2070 scripts. 2071 type: object 2072 properties: 2073 name: 2074 description: |- 2075 Name of the referent. 2076 This field is effectively required, but due to backwards compatibility is 2077 allowed to be empty. Instances of this type with an empty value here are 2078 almost certainly wrong. 2079 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names 2080 type: string 2081 default: "" 2082 x-kubernetes-map-type: atomic 2083 flocker: 2084 description: flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running 2085 type: object 2086 properties: 2087 datasetName: 2088 description: |- 2089 datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker 2090 should be considered as deprecated 2091 type: string 2092 datasetUUID: 2093 description: datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset 2094 type: string 2095 gcePersistentDisk: 2096 description: |- 2097 gcePersistentDisk represents a GCE Disk resource that is attached to a 2098 kubelet's host machine and then exposed to the pod. 2099 More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk 2100 type: object 2101 required: 2102 - pdName 2103 properties: 2104 fsType: 2105 description: |- 2106 fsType is filesystem type of the volume that you want to mount. 2107 Tip: Ensure that the filesystem type is supported by the host operating system. 2108 Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. 2109 More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk 2110 type: string 2111 partition: 2112 description: |- 2113 partition is the partition in the volume that you want to mount. 2114 If omitted, the default is to mount by volume name. 2115 Examples: For volume /dev/sda1, you specify the partition as "1". 2116 Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). 2117 More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk 2118 type: integer 2119 format: int32 2120 pdName: 2121 description: |- 2122 pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. 2123 More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk 2124 type: string 2125 readOnly: 2126 description: |- 2127 readOnly here will force the ReadOnly setting in VolumeMounts. 2128 Defaults to false. 2129 More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk 2130 type: boolean 2131 gitRepo: 2132 description: |- 2133 gitRepo represents a git repository at a particular revision. 2134 DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an 2135 EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir 2136 into the Pod's container. 2137 type: object 2138 required: 2139 - repository 2140 properties: 2141 directory: 2142 description: |- 2143 directory is the target directory name. 2144 Must not contain or start with '..'. If '.' is supplied, the volume directory will be the 2145 git repository. Otherwise, if specified, the volume will contain the git repository in 2146 the subdirectory with the given name. 2147 type: string 2148 repository: 2149 description: repository is the URL 2150 type: string 2151 revision: 2152 description: revision is the commit hash for the specified revision. 2153 type: string 2154 glusterfs: 2155 description: |- 2156 glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. 2157 More info: https://examples.k8s.io/volumes/glusterfs/README.md 2158 type: object 2159 required: 2160 - endpoints 2161 - path 2162 properties: 2163 endpoints: 2164 description: |- 2165 endpoints is the endpoint name that details Glusterfs topology. 2166 More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod 2167 type: string 2168 path: 2169 description: |- 2170 path is the Glusterfs volume path. 2171 More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod 2172 type: string 2173 readOnly: 2174 description: |- 2175 readOnly here will force the Glusterfs volume to be mounted with read-only permissions. 2176 Defaults to false. 2177 More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod 2178 type: boolean 2179 hostPath: 2180 description: |- 2181 hostPath represents a pre-existing file or directory on the host 2182 machine that is directly exposed to the container. This is generally 2183 used for system agents or other privileged things that are allowed 2184 to see the host machine. Most containers will NOT need this. 2185 More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath 2186 type: object 2187 required: 2188 - path 2189 properties: 2190 path: 2191 description: |- 2192 path of the directory on the host. 2193 If the path is a symlink, it will follow the link to the real path. 2194 More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath 2195 type: string 2196 type: 2197 description: |- 2198 type for HostPath Volume 2199 Defaults to "" 2200 More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath 2201 type: string 2202 image: 2203 description: |- 2204 image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. 2205 The volume is resolved at pod startup depending on which PullPolicy value is provided: 2206 2207 - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. 2208 - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. 2209 - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. 2210 2211 The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. 2212 A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. 2213 The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. 2214 The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. 2215 The volume will be mounted read-only (ro) and non-executable files (noexec). 2216 Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath). 2217 The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type. 2218 type: object 2219 properties: 2220 pullPolicy: 2221 description: |- 2222 Policy for pulling OCI objects. Possible values are: 2223 Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. 2224 Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. 2225 IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. 2226 Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. 2227 type: string 2228 reference: 2229 description: |- 2230 Required: Image or artifact reference to be used. 2231 Behaves in the same way as pod.spec.containers[*].image. 2232 Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets. 2233 More info: https://kubernetes.io/docs/concepts/containers/images 2234 This field is optional to allow higher level config management to default or override 2235 container images in workload controllers like Deployments and StatefulSets. 2236 type: string 2237 iscsi: 2238 description: |- 2239 iscsi represents an ISCSI Disk resource that is attached to a 2240 kubelet's host machine and then exposed to the pod. 2241 More info: https://examples.k8s.io/volumes/iscsi/README.md 2242 type: object 2243 required: 2244 - iqn 2245 - lun 2246 - targetPortal 2247 properties: 2248 chapAuthDiscovery: 2249 description: chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication 2250 type: boolean 2251 chapAuthSession: 2252 description: chapAuthSession defines whether support iSCSI Session CHAP authentication 2253 type: boolean 2254 fsType: 2255 description: |- 2256 fsType is the filesystem type of the volume that you want to mount. 2257 Tip: Ensure that the filesystem type is supported by the host operating system. 2258 Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. 2259 More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi 2260 type: string 2261 initiatorName: 2262 description: |- 2263 initiatorName is the custom iSCSI Initiator Name. 2264 If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface 2265 <target portal>:<volume name> will be created for the connection. 2266 type: string 2267 iqn: 2268 description: iqn is the target iSCSI Qualified Name. 2269 type: string 2270 iscsiInterface: 2271 description: |- 2272 iscsiInterface is the interface Name that uses an iSCSI transport. 2273 Defaults to 'default' (tcp). 2274 type: string 2275 default: default 2276 lun: 2277 description: lun represents iSCSI Target Lun number. 2278 type: integer 2279 format: int32 2280 portals: 2281 description: |- 2282 portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port 2283 is other than default (typically TCP ports 860 and 3260). 2284 type: array 2285 items: 2286 type: string 2287 x-kubernetes-list-type: atomic 2288 readOnly: 2289 description: |- 2290 readOnly here will force the ReadOnly setting in VolumeMounts. 2291 Defaults to false. 2292 type: boolean 2293 secretRef: 2294 description: secretRef is the CHAP Secret for iSCSI target and initiator authentication 2295 type: object 2296 properties: 2297 name: 2298 description: |- 2299 Name of the referent. 2300 This field is effectively required, but due to backwards compatibility is 2301 allowed to be empty. Instances of this type with an empty value here are 2302 almost certainly wrong. 2303 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names 2304 type: string 2305 default: "" 2306 x-kubernetes-map-type: atomic 2307 targetPortal: 2308 description: |- 2309 targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port 2310 is other than default (typically TCP ports 860 and 3260). 2311 type: string 2312 name: 2313 description: |- 2314 name of the volume. 2315 Must be a DNS_LABEL and unique within the pod. 2316 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names 2317 type: string 2318 nfs: 2319 description: |- 2320 nfs represents an NFS mount on the host that shares a pod's lifetime 2321 More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs 2322 type: object 2323 required: 2324 - path 2325 - server 2326 properties: 2327 path: 2328 description: |- 2329 path that is exported by the NFS server. 2330 More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs 2331 type: string 2332 readOnly: 2333 description: |- 2334 readOnly here will force the NFS export to be mounted with read-only permissions. 2335 Defaults to false. 2336 More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs 2337 type: boolean 2338 server: 2339 description: |- 2340 server is the hostname or IP address of the NFS server. 2341 More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs 2342 type: string 2343 persistentVolumeClaim: 2344 description: |- 2345 persistentVolumeClaimVolumeSource represents a reference to a 2346 PersistentVolumeClaim in the same namespace. 2347 More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims 2348 type: object 2349 required: 2350 - claimName 2351 properties: 2352 claimName: 2353 description: |- 2354 claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. 2355 More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims 2356 type: string 2357 readOnly: 2358 description: |- 2359 readOnly Will force the ReadOnly setting in VolumeMounts. 2360 Default false. 2361 type: boolean 2362 photonPersistentDisk: 2363 description: photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine 2364 type: object 2365 required: 2366 - pdID 2367 properties: 2368 fsType: 2369 description: |- 2370 fsType is the filesystem type to mount. 2371 Must be a filesystem type supported by the host operating system. 2372 Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. 2373 type: string 2374 pdID: 2375 description: pdID is the ID that identifies Photon Controller persistent disk 2376 type: string 2377 portworxVolume: 2378 description: portworxVolume represents a portworx volume attached and mounted on kubelets host machine 2379 type: object 2380 required: 2381 - volumeID 2382 properties: 2383 fsType: 2384 description: |- 2385 fSType represents the filesystem type to mount 2386 Must be a filesystem type supported by the host operating system. 2387 Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified. 2388 type: string 2389 readOnly: 2390 description: |- 2391 readOnly defaults to false (read/write). ReadOnly here will force 2392 the ReadOnly setting in VolumeMounts. 2393 type: boolean 2394 volumeID: 2395 description: volumeID uniquely identifies a Portworx volume 2396 type: string 2397 projected: 2398 description: projected items for all in one resources secrets, configmaps, and downward API 2399 type: object 2400 properties: 2401 defaultMode: 2402 description: |- 2403 defaultMode are the mode bits used to set permissions on created files by default. 2404 Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. 2405 YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. 2406 Directories within the path are not affected by this setting. 2407 This might be in conflict with other options that affect the file 2408 mode, like fsGroup, and the result can be other mode bits set. 2409 type: integer 2410 format: int32 2411 sources: 2412 description: |- 2413 sources is the list of volume projections. Each entry in this list 2414 handles one source. 2415 type: array 2416 items: 2417 description: |- 2418 Projection that may be projected along with other supported volume types. 2419 Exactly one of these fields must be set. 2420 type: object 2421 properties: 2422 clusterTrustBundle: 2423 description: |- 2424 ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field 2425 of ClusterTrustBundle objects in an auto-updating file. 2426 2427 Alpha, gated by the ClusterTrustBundleProjection feature gate. 2428 2429 ClusterTrustBundle objects can either be selected by name, or by the 2430 combination of signer name and a label selector. 2431 2432 Kubelet performs aggressive normalization of the PEM contents written 2433 into the pod filesystem. Esoteric PEM features such as inter-block 2434 comments and block headers are stripped. Certificates are deduplicated. 2435 The ordering of certificates within the file is arbitrary, and Kubelet 2436 may change the order over time. 2437 type: object 2438 required: 2439 - path 2440 properties: 2441 labelSelector: 2442 description: |- 2443 Select all ClusterTrustBundles that match this label selector. Only has 2444 effect if signerName is set. Mutually-exclusive with name. If unset, 2445 interpreted as "match nothing". If set but empty, interpreted as "match 2446 everything". 2447 type: object 2448 properties: 2449 matchExpressions: 2450 description: matchExpressions is a list of label selector requirements. The requirements are ANDed. 2451 type: array 2452 items: 2453 description: |- 2454 A label selector requirement is a selector that contains values, a key, and an operator that 2455 relates the key and values. 2456 type: object 2457 required: 2458 - key 2459 - operator 2460 properties: 2461 key: 2462 description: key is the label key that the selector applies to. 2463 type: string 2464 operator: 2465 description: |- 2466 operator represents a key's relationship to a set of values. 2467 Valid operators are In, NotIn, Exists and DoesNotExist. 2468 type: string 2469 values: 2470 description: |- 2471 values is an array of string values. If the operator is In or NotIn, 2472 the values array must be non-empty. If the operator is Exists or DoesNotExist, 2473 the values array must be empty. This array is replaced during a strategic 2474 merge patch. 2475 type: array 2476 items: 2477 type: string 2478 x-kubernetes-list-type: atomic 2479 x-kubernetes-list-type: atomic 2480 matchLabels: 2481 description: |- 2482 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels 2483 map is equivalent to an element of matchExpressions, whose key field is "key", the 2484 operator is "In", and the values array contains only "value". The requirements are ANDed. 2485 type: object 2486 additionalProperties: 2487 type: string 2488 x-kubernetes-map-type: atomic 2489 name: 2490 description: |- 2491 Select a single ClusterTrustBundle by object name. Mutually-exclusive 2492 with signerName and labelSelector. 2493 type: string 2494 optional: 2495 description: |- 2496 If true, don't block pod startup if the referenced ClusterTrustBundle(s) 2497 aren't available. If using name, then the named ClusterTrustBundle is 2498 allowed not to exist. If using signerName, then the combination of 2499 signerName and labelSelector is allowed to match zero 2500 ClusterTrustBundles. 2501 type: boolean 2502 path: 2503 description: Relative path from the volume root to write the bundle. 2504 type: string 2505 signerName: 2506 description: |- 2507 Select all ClusterTrustBundles that match this signer name. 2508 Mutually-exclusive with name. The contents of all selected 2509 ClusterTrustBundles will be unified and deduplicated. 2510 type: string 2511 configMap: 2512 description: configMap information about the configMap data to project 2513 type: object 2514 properties: 2515 items: 2516 description: |- 2517 items if unspecified, each key-value pair in the Data field of the referenced 2518 ConfigMap will be projected into the volume as a file whose name is the 2519 key and content is the value. If specified, the listed keys will be 2520 projected into the specified paths, and unlisted keys will not be 2521 present. If a key is specified which is not present in the ConfigMap, 2522 the volume setup will error unless it is marked optional. Paths must be 2523 relative and may not contain the '..' path or start with '..'. 2524 type: array 2525 items: 2526 description: Maps a string key to a path within a volume. 2527 type: object 2528 required: 2529 - key 2530 - path 2531 properties: 2532 key: 2533 description: key is the key to project. 2534 type: string 2535 mode: 2536 description: |- 2537 mode is Optional: mode bits used to set permissions on this file. 2538 Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. 2539 YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. 2540 If not specified, the volume defaultMode will be used. 2541 This might be in conflict with other options that affect the file 2542 mode, like fsGroup, and the result can be other mode bits set. 2543 type: integer 2544 format: int32 2545 path: 2546 description: |- 2547 path is the relative path of the file to map the key to. 2548 May not be an absolute path. 2549 May not contain the path element '..'. 2550 May not start with the string '..'. 2551 type: string 2552 x-kubernetes-list-type: atomic 2553 name: 2554 description: |- 2555 Name of the referent. 2556 This field is effectively required, but due to backwards compatibility is 2557 allowed to be empty. Instances of this type with an empty value here are 2558 almost certainly wrong. 2559 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names 2560 type: string 2561 default: "" 2562 optional: 2563 description: optional specify whether the ConfigMap or its keys must be defined 2564 type: boolean 2565 x-kubernetes-map-type: atomic 2566 downwardAPI: 2567 description: downwardAPI information about the downwardAPI data to project 2568 type: object 2569 properties: 2570 items: 2571 description: Items is a list of DownwardAPIVolume file 2572 type: array 2573 items: 2574 description: DownwardAPIVolumeFile represents information to create the file containing the pod field 2575 type: object 2576 required: 2577 - path 2578 properties: 2579 fieldRef: 2580 description: 'Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.' 2581 type: object 2582 required: 2583 - fieldPath 2584 properties: 2585 apiVersion: 2586 description: Version of the schema the FieldPath is written in terms of, defaults to "v1". 2587 type: string 2588 fieldPath: 2589 description: Path of the field to select in the specified API version. 2590 type: string 2591 x-kubernetes-map-type: atomic 2592 mode: 2593 description: |- 2594 Optional: mode bits used to set permissions on this file, must be an octal value 2595 between 0000 and 0777 or a decimal value between 0 and 511. 2596 YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. 2597 If not specified, the volume defaultMode will be used. 2598 This might be in conflict with other options that affect the file 2599 mode, like fsGroup, and the result can be other mode bits set. 2600 type: integer 2601 format: int32 2602 path: 2603 description: 'Required: Path is the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..''' 2604 type: string 2605 resourceFieldRef: 2606 description: |- 2607 Selects a resource of the container: only resources limits and requests 2608 (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported. 2609 type: object 2610 required: 2611 - resource 2612 properties: 2613 containerName: 2614 description: 'Container name: required for volumes, optional for env vars' 2615 type: string 2616 divisor: 2617 description: Specifies the output format of the exposed resources, defaults to "1" 2618 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 2619 anyOf: 2620 - type: integer 2621 - type: string 2622 x-kubernetes-int-or-string: true 2623 resource: 2624 description: 'Required: resource to select' 2625 type: string 2626 x-kubernetes-map-type: atomic 2627 x-kubernetes-list-type: atomic 2628 secret: 2629 description: secret information about the secret data to project 2630 type: object 2631 properties: 2632 items: 2633 description: |- 2634 items if unspecified, each key-value pair in the Data field of the referenced 2635 Secret will be projected into the volume as a file whose name is the 2636 key and content is the value. If specified, the listed keys will be 2637 projected into the specified paths, and unlisted keys will not be 2638 present. If a key is specified which is not present in the Secret, 2639 the volume setup will error unless it is marked optional. Paths must be 2640 relative and may not contain the '..' path or start with '..'. 2641 type: array 2642 items: 2643 description: Maps a string key to a path within a volume. 2644 type: object 2645 required: 2646 - key 2647 - path 2648 properties: 2649 key: 2650 description: key is the key to project. 2651 type: string 2652 mode: 2653 description: |- 2654 mode is Optional: mode bits used to set permissions on this file. 2655 Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. 2656 YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. 2657 If not specified, the volume defaultMode will be used. 2658 This might be in conflict with other options that affect the file 2659 mode, like fsGroup, and the result can be other mode bits set. 2660 type: integer 2661 format: int32 2662 path: 2663 description: |- 2664 path is the relative path of the file to map the key to. 2665 May not be an absolute path. 2666 May not contain the path element '..'. 2667 May not start with the string '..'. 2668 type: string 2669 x-kubernetes-list-type: atomic 2670 name: 2671 description: |- 2672 Name of the referent. 2673 This field is effectively required, but due to backwards compatibility is 2674 allowed to be empty. Instances of this type with an empty value here are 2675 almost certainly wrong. 2676 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names 2677 type: string 2678 default: "" 2679 optional: 2680 description: optional field specify whether the Secret or its key must be defined 2681 type: boolean 2682 x-kubernetes-map-type: atomic 2683 serviceAccountToken: 2684 description: serviceAccountToken is information about the serviceAccountToken data to project 2685 type: object 2686 required: 2687 - path 2688 properties: 2689 audience: 2690 description: |- 2691 audience is the intended audience of the token. A recipient of a token 2692 must identify itself with an identifier specified in the audience of the 2693 token, and otherwise should reject the token. The audience defaults to the 2694 identifier of the apiserver. 2695 type: string 2696 expirationSeconds: 2697 description: |- 2698 expirationSeconds is the requested duration of validity of the service 2699 account token. As the token approaches expiration, the kubelet volume 2700 plugin will proactively rotate the service account token. The kubelet will 2701 start trying to rotate the token if the token is older than 80 percent of 2702 its time to live or if the token is older than 24 hours.Defaults to 1 hour 2703 and must be at least 10 minutes. 2704 type: integer 2705 format: int64 2706 path: 2707 description: |- 2708 path is the path relative to the mount point of the file to project the 2709 token into. 2710 type: string 2711 x-kubernetes-list-type: atomic 2712 quobyte: 2713 description: quobyte represents a Quobyte mount on the host that shares a pod's lifetime 2714 type: object 2715 required: 2716 - registry 2717 - volume 2718 properties: 2719 group: 2720 description: |- 2721 group to map volume access to 2722 Default is no group 2723 type: string 2724 readOnly: 2725 description: |- 2726 readOnly here will force the Quobyte volume to be mounted with read-only permissions. 2727 Defaults to false. 2728 type: boolean 2729 registry: 2730 description: |- 2731 registry represents a single or multiple Quobyte Registry services 2732 specified as a string as host:port pair (multiple entries are separated with commas) 2733 which acts as the central registry for volumes 2734 type: string 2735 tenant: 2736 description: |- 2737 tenant owning the given Quobyte volume in the Backend 2738 Used with dynamically provisioned Quobyte volumes, value is set by the plugin 2739 type: string 2740 user: 2741 description: |- 2742 user to map volume access to 2743 Defaults to serivceaccount user 2744 type: string 2745 volume: 2746 description: volume is a string that references an already created Quobyte volume by name. 2747 type: string 2748 rbd: 2749 description: |- 2750 rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. 2751 More info: https://examples.k8s.io/volumes/rbd/README.md 2752 type: object 2753 required: 2754 - image 2755 - monitors 2756 properties: 2757 fsType: 2758 description: |- 2759 fsType is the filesystem type of the volume that you want to mount. 2760 Tip: Ensure that the filesystem type is supported by the host operating system. 2761 Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. 2762 More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd 2763 type: string 2764 image: 2765 description: |- 2766 image is the rados image name. 2767 More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it 2768 type: string 2769 keyring: 2770 description: |- 2771 keyring is the path to key ring for RBDUser. 2772 Default is /etc/ceph/keyring. 2773 More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it 2774 type: string 2775 default: /etc/ceph/keyring 2776 monitors: 2777 description: |- 2778 monitors is a collection of Ceph monitors. 2779 More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it 2780 type: array 2781 items: 2782 type: string 2783 x-kubernetes-list-type: atomic 2784 pool: 2785 description: |- 2786 pool is the rados pool name. 2787 Default is rbd. 2788 More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it 2789 type: string 2790 default: rbd 2791 readOnly: 2792 description: |- 2793 readOnly here will force the ReadOnly setting in VolumeMounts. 2794 Defaults to false. 2795 More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it 2796 type: boolean 2797 secretRef: 2798 description: |- 2799 secretRef is name of the authentication secret for RBDUser. If provided 2800 overrides keyring. 2801 Default is nil. 2802 More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it 2803 type: object 2804 properties: 2805 name: 2806 description: |- 2807 Name of the referent. 2808 This field is effectively required, but due to backwards compatibility is 2809 allowed to be empty. Instances of this type with an empty value here are 2810 almost certainly wrong. 2811 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names 2812 type: string 2813 default: "" 2814 x-kubernetes-map-type: atomic 2815 user: 2816 description: |- 2817 user is the rados user name. 2818 Default is admin. 2819 More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it 2820 type: string 2821 default: admin 2822 scaleIO: 2823 description: scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. 2824 type: object 2825 required: 2826 - gateway 2827 - secretRef 2828 - system 2829 properties: 2830 fsType: 2831 description: |- 2832 fsType is the filesystem type to mount. 2833 Must be a filesystem type supported by the host operating system. 2834 Ex. "ext4", "xfs", "ntfs". 2835 Default is "xfs". 2836 type: string 2837 default: xfs 2838 gateway: 2839 description: gateway is the host address of the ScaleIO API Gateway. 2840 type: string 2841 protectionDomain: 2842 description: protectionDomain is the name of the ScaleIO Protection Domain for the configured storage. 2843 type: string 2844 readOnly: 2845 description: |- 2846 readOnly Defaults to false (read/write). ReadOnly here will force 2847 the ReadOnly setting in VolumeMounts. 2848 type: boolean 2849 secretRef: 2850 description: |- 2851 secretRef references to the secret for ScaleIO user and other 2852 sensitive information. If this is not provided, Login operation will fail. 2853 type: object 2854 properties: 2855 name: 2856 description: |- 2857 Name of the referent. 2858 This field is effectively required, but due to backwards compatibility is 2859 allowed to be empty. Instances of this type with an empty value here are 2860 almost certainly wrong. 2861 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names 2862 type: string 2863 default: "" 2864 x-kubernetes-map-type: atomic 2865 sslEnabled: 2866 description: sslEnabled Flag enable/disable SSL communication with Gateway, default false 2867 type: boolean 2868 storageMode: 2869 description: |- 2870 storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. 2871 Default is ThinProvisioned. 2872 type: string 2873 default: ThinProvisioned 2874 storagePool: 2875 description: storagePool is the ScaleIO Storage Pool associated with the protection domain. 2876 type: string 2877 system: 2878 description: system is the name of the storage system as configured in ScaleIO. 2879 type: string 2880 volumeName: 2881 description: |- 2882 volumeName is the name of a volume already created in the ScaleIO system 2883 that is associated with this volume source. 2884 type: string 2885 secret: 2886 description: |- 2887 secret represents a secret that should populate this volume. 2888 More info: https://kubernetes.io/docs/concepts/storage/volumes#secret 2889 type: object 2890 properties: 2891 defaultMode: 2892 description: |- 2893 defaultMode is Optional: mode bits used to set permissions on created files by default. 2894 Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. 2895 YAML accepts both octal and decimal values, JSON requires decimal values 2896 for mode bits. Defaults to 0644. 2897 Directories within the path are not affected by this setting. 2898 This might be in conflict with other options that affect the file 2899 mode, like fsGroup, and the result can be other mode bits set. 2900 type: integer 2901 format: int32 2902 items: 2903 description: |- 2904 items If unspecified, each key-value pair in the Data field of the referenced 2905 Secret will be projected into the volume as a file whose name is the 2906 key and content is the value. If specified, the listed keys will be 2907 projected into the specified paths, and unlisted keys will not be 2908 present. If a key is specified which is not present in the Secret, 2909 the volume setup will error unless it is marked optional. Paths must be 2910 relative and may not contain the '..' path or start with '..'. 2911 type: array 2912 items: 2913 description: Maps a string key to a path within a volume. 2914 type: object 2915 required: 2916 - key 2917 - path 2918 properties: 2919 key: 2920 description: key is the key to project. 2921 type: string 2922 mode: 2923 description: |- 2924 mode is Optional: mode bits used to set permissions on this file. 2925 Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. 2926 YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. 2927 If not specified, the volume defaultMode will be used. 2928 This might be in conflict with other options that affect the file 2929 mode, like fsGroup, and the result can be other mode bits set. 2930 type: integer 2931 format: int32 2932 path: 2933 description: |- 2934 path is the relative path of the file to map the key to. 2935 May not be an absolute path. 2936 May not contain the path element '..'. 2937 May not start with the string '..'. 2938 type: string 2939 x-kubernetes-list-type: atomic 2940 optional: 2941 description: optional field specify whether the Secret or its keys must be defined 2942 type: boolean 2943 secretName: 2944 description: |- 2945 secretName is the name of the secret in the pod's namespace to use. 2946 More info: https://kubernetes.io/docs/concepts/storage/volumes#secret 2947 type: string 2948 storageos: 2949 description: storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. 2950 type: object 2951 properties: 2952 fsType: 2953 description: |- 2954 fsType is the filesystem type to mount. 2955 Must be a filesystem type supported by the host operating system. 2956 Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. 2957 type: string 2958 readOnly: 2959 description: |- 2960 readOnly defaults to false (read/write). ReadOnly here will force 2961 the ReadOnly setting in VolumeMounts. 2962 type: boolean 2963 secretRef: 2964 description: |- 2965 secretRef specifies the secret to use for obtaining the StorageOS API 2966 credentials. If not specified, default values will be attempted. 2967 type: object 2968 properties: 2969 name: 2970 description: |- 2971 Name of the referent. 2972 This field is effectively required, but due to backwards compatibility is 2973 allowed to be empty. Instances of this type with an empty value here are 2974 almost certainly wrong. 2975 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names 2976 type: string 2977 default: "" 2978 x-kubernetes-map-type: atomic 2979 volumeName: 2980 description: |- 2981 volumeName is the human-readable name of the StorageOS volume. Volume 2982 names are only unique within a namespace. 2983 type: string 2984 volumeNamespace: 2985 description: |- 2986 volumeNamespace specifies the scope of the volume within StorageOS. If no 2987 namespace is specified then the Pod's namespace will be used. This allows the 2988 Kubernetes name scoping to be mirrored within StorageOS for tighter integration. 2989 Set VolumeName to any name to override the default behaviour. 2990 Set to "default" if you are not using namespaces within StorageOS. 2991 Namespaces that do not pre-exist within StorageOS will be created. 2992 type: string 2993 vsphereVolume: 2994 description: vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine 2995 type: object 2996 required: 2997 - volumePath 2998 properties: 2999 fsType: 3000 description: |- 3001 fsType is filesystem type to mount. 3002 Must be a filesystem type supported by the host operating system. 3003 Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. 3004 type: string 3005 storagePolicyID: 3006 description: storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName. 3007 type: string 3008 storagePolicyName: 3009 description: storagePolicyName is the storage Policy Based Management (SPBM) profile name. 3010 type: string 3011 volumePath: 3012 description: volumePath is the path that identifies vSphere volume vmdk 3013 type: string 3014 installPlanApproval: 3015 description: |- 3016 Approval is the user approval policy for an InstallPlan. 3017 It must be one of "Automatic" or "Manual". 3018 type: string 3019 name: 3020 type: string 3021 source: 3022 type: string 3023 sourceNamespace: 3024 type: string 3025 startingCSV: 3026 type: string 3027 status: 3028 type: object 3029 required: 3030 - lastUpdated 3031 properties: 3032 catalogHealth: 3033 description: |- 3034 CatalogHealth contains the Subscription's view of its relevant CatalogSources' status. 3035 It is used to determine SubscriptionStatusConditions related to CatalogSources. 3036 type: array 3037 items: 3038 description: SubscriptionCatalogHealth describes the health of a CatalogSource the Subscription knows about. 3039 type: object 3040 required: 3041 - catalogSourceRef 3042 - healthy 3043 - lastUpdated 3044 properties: 3045 catalogSourceRef: 3046 description: CatalogSourceRef is a reference to a CatalogSource. 3047 type: object 3048 properties: 3049 apiVersion: 3050 description: API version of the referent. 3051 type: string 3052 fieldPath: 3053 description: |- 3054 If referring to a piece of an object instead of an entire object, this string 3055 should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. 3056 For example, if the object reference is to a container within a pod, this would take on a value like: 3057 "spec.containers{name}" (where "name" refers to the name of the container that triggered 3058 the event) or if no container name is specified "spec.containers[2]" (container with 3059 index 2 in this pod). This syntax is chosen only to have some well-defined way of 3060 referencing a part of an object. 3061 type: string 3062 kind: 3063 description: |- 3064 Kind of the referent. 3065 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 3066 type: string 3067 name: 3068 description: |- 3069 Name of the referent. 3070 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names 3071 type: string 3072 namespace: 3073 description: |- 3074 Namespace of the referent. 3075 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ 3076 type: string 3077 resourceVersion: 3078 description: |- 3079 Specific resourceVersion to which this reference is made, if any. 3080 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency 3081 type: string 3082 uid: 3083 description: |- 3084 UID of the referent. 3085 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids 3086 type: string 3087 x-kubernetes-map-type: atomic 3088 healthy: 3089 description: Healthy is true if the CatalogSource is healthy; false otherwise. 3090 type: boolean 3091 lastUpdated: 3092 description: LastUpdated represents the last time that the CatalogSourceHealth changed 3093 type: string 3094 format: date-time 3095 conditions: 3096 description: Conditions is a list of the latest available observations about a Subscription's current state. 3097 type: array 3098 items: 3099 description: SubscriptionCondition represents the latest available observations of a Subscription's state. 3100 type: object 3101 required: 3102 - status 3103 - type 3104 properties: 3105 lastHeartbeatTime: 3106 description: LastHeartbeatTime is the last time we got an update on a given condition 3107 type: string 3108 format: date-time 3109 lastTransitionTime: 3110 description: LastTransitionTime is the last time the condition transit from one status to another 3111 type: string 3112 format: date-time 3113 message: 3114 description: Message is a human-readable message indicating details about last transition. 3115 type: string 3116 reason: 3117 description: Reason is a one-word CamelCase reason for the condition's last transition. 3118 type: string 3119 status: 3120 description: Status is the status of the condition, one of True, False, Unknown. 3121 type: string 3122 type: 3123 description: Type is the type of Subscription condition. 3124 type: string 3125 currentCSV: 3126 description: CurrentCSV is the CSV the Subscription is progressing to. 3127 type: string 3128 installPlanGeneration: 3129 description: InstallPlanGeneration is the current generation of the installplan 3130 type: integer 3131 installPlanRef: 3132 description: InstallPlanRef is a reference to the latest InstallPlan that contains the Subscription's current CSV. 3133 type: object 3134 properties: 3135 apiVersion: 3136 description: API version of the referent. 3137 type: string 3138 fieldPath: 3139 description: |- 3140 If referring to a piece of an object instead of an entire object, this string 3141 should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. 3142 For example, if the object reference is to a container within a pod, this would take on a value like: 3143 "spec.containers{name}" (where "name" refers to the name of the container that triggered 3144 the event) or if no container name is specified "spec.containers[2]" (container with 3145 index 2 in this pod). This syntax is chosen only to have some well-defined way of 3146 referencing a part of an object. 3147 type: string 3148 kind: 3149 description: |- 3150 Kind of the referent. 3151 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds 3152 type: string 3153 name: 3154 description: |- 3155 Name of the referent. 3156 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names 3157 type: string 3158 namespace: 3159 description: |- 3160 Namespace of the referent. 3161 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ 3162 type: string 3163 resourceVersion: 3164 description: |- 3165 Specific resourceVersion to which this reference is made, if any. 3166 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency 3167 type: string 3168 uid: 3169 description: |- 3170 UID of the referent. 3171 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids 3172 type: string 3173 x-kubernetes-map-type: atomic 3174 installedCSV: 3175 description: InstalledCSV is the CSV currently installed by the Subscription. 3176 type: string 3177 installplan: 3178 description: |- 3179 Install is a reference to the latest InstallPlan generated for the Subscription. 3180 DEPRECATED: InstallPlanRef 3181 type: object 3182 required: 3183 - apiVersion 3184 - kind 3185 - name 3186 - uuid 3187 properties: 3188 apiVersion: 3189 type: string 3190 kind: 3191 type: string 3192 name: 3193 type: string 3194 uuid: 3195 description: |- 3196 UID is a type that holds unique ID values, including UUIDs. Because we 3197 don't ONLY use UUIDs, this is an alias to string. Being a type captures 3198 intent and helps make sure that UIDs and names do not get conflated. 3199 type: string 3200 lastUpdated: 3201 description: LastUpdated represents the last time that the Subscription status was updated. 3202 type: string 3203 format: date-time 3204 reason: 3205 description: Reason is the reason the Subscription was transitioned to its current state. 3206 type: string 3207 state: 3208 description: State represents the current state of the Subscription 3209 type: string 3210 served: true 3211 storage: true 3212 subresources: 3213 status: {}