github.com/alibaba/sealer@v0.8.6-0.20220430115802-37a2bdaa8173/applications/openebs/jiva/jiva-operator.yaml (about) 1 --- 2 # Create the OpenEBS namespace 3 apiVersion: v1 4 kind: Namespace 5 metadata: 6 name: openebs 7 --- 8 # Create Maya Service Account 9 apiVersion: v1 10 kind: ServiceAccount 11 metadata: 12 name: openebs-maya-operator 13 namespace: openebs 14 --- 15 # Define Role that allows operations on K8s pods/deployments 16 kind: ClusterRole 17 apiVersion: rbac.authorization.k8s.io/v1 18 metadata: 19 name: openebs-maya-operator 20 rules: 21 - apiGroups: [ "*" ] 22 resources: [ "nodes", "nodes/proxy" ] 23 verbs: [ "*" ] 24 - apiGroups: [ "*" ] 25 resources: [ "namespaces", "services", "pods", "deployments", "events", "endpoints", "configmaps", "jobs" ] 26 verbs: [ "*" ] 27 - apiGroups: [ "*" ] 28 resources: [ "storageclasses", "persistentvolumeclaims", "persistentvolumes" ] 29 verbs: [ "*" ] 30 --- 31 # Bind the Service Account with the Role Privileges. 32 kind: ClusterRoleBinding 33 apiVersion: rbac.authorization.k8s.io/v1 34 metadata: 35 name: openebs-maya-operator 36 subjects: 37 - kind: ServiceAccount 38 name: openebs-maya-operator 39 namespace: openebs 40 roleRef: 41 kind: ClusterRole 42 name: openebs-maya-operator 43 apiGroup: rbac.authorization.k8s.io 44 --- 45 apiVersion: apps/v1 46 kind: Deployment 47 metadata: 48 name: openebs-localpv-provisioner 49 namespace: openebs 50 labels: 51 name: openebs-localpv-provisioner 52 openebs.io/component-name: openebs-localpv-provisioner 53 openebs.io/version: 2.11.0 54 spec: 55 selector: 56 matchLabels: 57 name: openebs-localpv-provisioner 58 openebs.io/component-name: openebs-localpv-provisioner 59 replicas: 1 60 strategy: 61 type: Recreate 62 template: 63 metadata: 64 labels: 65 name: openebs-localpv-provisioner 66 openebs.io/component-name: openebs-localpv-provisioner 67 openebs.io/version: 2.11.0 68 spec: 69 serviceAccountName: openebs-maya-operator 70 containers: 71 - name: openebs-provisioner-hostpath 72 imagePullPolicy: IfNotPresent 73 image: openebs/provisioner-localpv:2.11.1 74 env: 75 # OPENEBS_IO_K8S_MASTER enables openebs provisioner to connect to K8s 76 # based on this address. This is ignored if empty. 77 # This is supported for openebs provisioner version 0.5.2 onwards 78 #- name: OPENEBS_IO_K8S_MASTER 79 # value: "http://10.128.0.12:8080" 80 # OPENEBS_IO_KUBE_CONFIG enables openebs provisioner to connect to K8s 81 # based on this config. This is ignored if empty. 82 # This is supported for openebs provisioner version 0.5.2 onwards 83 #- name: OPENEBS_IO_KUBE_CONFIG 84 # value: "/home/ubuntu/.kube/config" 85 - name: NODE_NAME 86 valueFrom: 87 fieldRef: 88 fieldPath: spec.nodeName 89 - name: OPENEBS_NAMESPACE 90 valueFrom: 91 fieldRef: 92 fieldPath: metadata.namespace 93 # OPENEBS_SERVICE_ACCOUNT provides the service account of this pod as 94 # environment variable 95 - name: OPENEBS_SERVICE_ACCOUNT 96 valueFrom: 97 fieldRef: 98 fieldPath: spec.serviceAccountName 99 - name: OPENEBS_IO_ENABLE_ANALYTICS 100 value: "true" 101 - name: OPENEBS_IO_INSTALLER_TYPE 102 value: "openebs-operator-hostpath" 103 - name: OPENEBS_IO_HELPER_IMAGE 104 value: "openebs/linux-utils:2.11.0" 105 # LEADER_ELECTION_ENABLED is used to enable/disable leader election. By default 106 # leader election is enabled. 107 #- name: LEADER_ELECTION_ENABLED 108 # value: "true" 109 # OPENEBS_IO_IMAGE_PULL_SECRETS environment variable is used to pass the image pull secrets 110 # to the helper pod launched by local-pv hostpath provisioner 111 #- name: OPENEBS_IO_IMAGE_PULL_SECRETS 112 # value: "" 113 # Process name used for matching is limited to the 15 characters 114 # present in the pgrep output. 115 # So fullname can't be used here with pgrep (>15 chars).A regular expression 116 # that matches the entire command name has to specified. 117 # Anchor `^` : matches any string that starts with `provisioner-loc` 118 # `.*`: matches any string that has `provisioner-loc` followed by zero or more char 119 livenessProbe: 120 exec: 121 command: 122 - sh 123 - -c 124 - test `pgrep -c "^provisioner-loc.*"` = 1 125 initialDelaySeconds: 30 126 periodSeconds: 60 127 --- 128 apiVersion: storage.k8s.io/v1 129 kind: StorageClass 130 metadata: 131 name: openebs-hostpath 132 annotations: 133 openebs.io/cas-type: local 134 cas.openebs.io/config: | 135 # hostpath type will create a PV by 136 # creating a sub-directory under the 137 # BASEPATH provided below. 138 - name: StorageType 139 value: "hostpath" 140 # Specify the location (directory) where 141 # where PV(volume) data will be saved. 142 # A sub-directory with pv-name will be 143 # created. When the volume is deleted, 144 # the PV sub-directory will be deleted. 145 #Default value is /var/openebs/local 146 - name: BasePath 147 value: "/var/openebs/local/" 148 provisioner: openebs.io/local 149 volumeBindingMode: WaitForFirstConsumer 150 reclaimPolicy: Delete 151 152 --- 153 apiVersion: apiextensions.k8s.io/v1 154 kind: CustomResourceDefinition 155 metadata: 156 annotations: 157 controller-gen.kubebuilder.io/version: v0.4.1 158 creationTimestamp: null 159 name: jivavolumepolicies.openebs.io 160 spec: 161 group: openebs.io 162 names: 163 kind: JivaVolumePolicy 164 listKind: JivaVolumePolicyList 165 plural: jivavolumepolicies 166 shortNames: 167 - jvp 168 singular: jivavolumepolicy 169 scope: Namespaced 170 versions: 171 - name: v1alpha1 172 schema: 173 openAPIV3Schema: 174 description: 'JivaVolumePolicy is the Schema for the jivavolumes API Important: 175 Run "operator-sdk generate k8s" to regenerate code after modifying this 176 file' 177 properties: 178 apiVersion: 179 description: 'APIVersion defines the versioned schema of this representation 180 of an object. Servers should convert recognized schemas to the latest 181 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 182 type: string 183 kind: 184 description: 'Kind is a string value representing the REST resource this 185 object represents. Servers may infer this from the endpoint the client 186 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 187 type: string 188 metadata: 189 type: object 190 spec: 191 description: JivaVolumePolicySpec defines the desired state of JivaVolumePolicy 192 properties: 193 autoScaling: 194 description: AutoScaling ... 195 type: boolean 196 enableBufio: 197 description: EnableBufio ... 198 type: boolean 199 priorityClassName: 200 description: PriorityClassName if specified applies to the pod If 201 left empty, no priority class is applied. 202 type: string 203 replica: 204 description: ReplicaSpec represents configuration related to replicas 205 resources 206 nullable: true 207 properties: 208 affinity: 209 description: Affinity if specified, are the pod's affinities 210 properties: 211 nodeAffinity: 212 description: Describes node affinity scheduling rules for 213 the pod. 214 properties: 215 preferredDuringSchedulingIgnoredDuringExecution: 216 description: The scheduler will prefer to schedule pods 217 to nodes that satisfy the affinity expressions specified 218 by this field, but it may choose a node that violates 219 one or more of the expressions. The node that is most 220 preferred is the one with the greatest sum of weights, 221 i.e. for each node that meets all of the scheduling 222 requirements (resource request, requiredDuringScheduling 223 affinity expressions, etc.), compute a sum by iterating 224 through the elements of this field and adding "weight" 225 to the sum if the node matches the corresponding matchExpressions; 226 the node(s) with the highest sum are the most preferred. 227 items: 228 description: An empty preferred scheduling term matches 229 all objects with implicit weight 0 (i.e. it's a no-op). 230 A null preferred scheduling term matches no objects 231 (i.e. is also a no-op). 232 properties: 233 preference: 234 description: A node selector term, associated with 235 the corresponding weight. 236 properties: 237 matchExpressions: 238 description: A list of node selector requirements 239 by node's labels. 240 items: 241 description: A node selector requirement is 242 a selector that contains values, a key, 243 and an operator that relates the key and 244 values. 245 properties: 246 key: 247 description: The label key that the selector 248 applies to. 249 type: string 250 operator: 251 description: Represents a key's relationship 252 to a set of values. Valid operators 253 are In, NotIn, Exists, DoesNotExist. 254 Gt, and Lt. 255 type: string 256 values: 257 description: An array of string values. 258 If the operator is In or NotIn, the 259 values array must be non-empty. If the 260 operator is Exists or DoesNotExist, 261 the values array must be empty. If the 262 operator is Gt or Lt, the values array 263 must have a single element, which will 264 be interpreted as an integer. This array 265 is replaced during a strategic merge 266 patch. 267 items: 268 type: string 269 type: array 270 required: 271 - key 272 - operator 273 type: object 274 type: array 275 matchFields: 276 description: A list of node selector requirements 277 by node's fields. 278 items: 279 description: A node selector requirement is 280 a selector that contains values, a key, 281 and an operator that relates the key and 282 values. 283 properties: 284 key: 285 description: The label key that the selector 286 applies to. 287 type: string 288 operator: 289 description: Represents a key's relationship 290 to a set of values. Valid operators 291 are In, NotIn, Exists, DoesNotExist. 292 Gt, and Lt. 293 type: string 294 values: 295 description: An array of string values. 296 If the operator is In or NotIn, the 297 values array must be non-empty. If the 298 operator is Exists or DoesNotExist, 299 the values array must be empty. If the 300 operator is Gt or Lt, the values array 301 must have a single element, which will 302 be interpreted as an integer. This array 303 is replaced during a strategic merge 304 patch. 305 items: 306 type: string 307 type: array 308 required: 309 - key 310 - operator 311 type: object 312 type: array 313 type: object 314 weight: 315 description: Weight associated with matching the 316 corresponding nodeSelectorTerm, in the range 1-100. 317 format: int32 318 type: integer 319 required: 320 - preference 321 - weight 322 type: object 323 type: array 324 requiredDuringSchedulingIgnoredDuringExecution: 325 description: If the affinity requirements specified by 326 this field are not met at scheduling time, the pod will 327 not be scheduled onto the node. If the affinity requirements 328 specified by this field cease to be met at some point 329 during pod execution (e.g. due to an update), the system 330 may or may not try to eventually evict the pod from 331 its node. 332 properties: 333 nodeSelectorTerms: 334 description: Required. A list of node selector terms. 335 The terms are ORed. 336 items: 337 description: A null or empty node selector term 338 matches no objects. The requirements of them are 339 ANDed. The TopologySelectorTerm type implements 340 a subset of the NodeSelectorTerm. 341 properties: 342 matchExpressions: 343 description: A list of node selector requirements 344 by node's labels. 345 items: 346 description: A node selector requirement is 347 a selector that contains values, a key, 348 and an operator that relates the key and 349 values. 350 properties: 351 key: 352 description: The label key that the selector 353 applies to. 354 type: string 355 operator: 356 description: Represents a key's relationship 357 to a set of values. Valid operators 358 are In, NotIn, Exists, DoesNotExist. 359 Gt, and Lt. 360 type: string 361 values: 362 description: An array of string values. 363 If the operator is In or NotIn, the 364 values array must be non-empty. If the 365 operator is Exists or DoesNotExist, 366 the values array must be empty. If the 367 operator is Gt or Lt, the values array 368 must have a single element, which will 369 be interpreted as an integer. This array 370 is replaced during a strategic merge 371 patch. 372 items: 373 type: string 374 type: array 375 required: 376 - key 377 - operator 378 type: object 379 type: array 380 matchFields: 381 description: A list of node selector requirements 382 by node's fields. 383 items: 384 description: A node selector requirement is 385 a selector that contains values, a key, 386 and an operator that relates the key and 387 values. 388 properties: 389 key: 390 description: The label key that the selector 391 applies to. 392 type: string 393 operator: 394 description: Represents a key's relationship 395 to a set of values. Valid operators 396 are In, NotIn, Exists, DoesNotExist. 397 Gt, and Lt. 398 type: string 399 values: 400 description: An array of string values. 401 If the operator is In or NotIn, the 402 values array must be non-empty. If the 403 operator is Exists or DoesNotExist, 404 the values array must be empty. If the 405 operator is Gt or Lt, the values array 406 must have a single element, which will 407 be interpreted as an integer. This array 408 is replaced during a strategic merge 409 patch. 410 items: 411 type: string 412 type: array 413 required: 414 - key 415 - operator 416 type: object 417 type: array 418 type: object 419 type: array 420 required: 421 - nodeSelectorTerms 422 type: object 423 type: object 424 podAffinity: 425 description: Describes pod affinity scheduling rules (e.g. 426 co-locate this pod in the same node, zone, etc. as some 427 other pod(s)). 428 properties: 429 preferredDuringSchedulingIgnoredDuringExecution: 430 description: The scheduler will prefer to schedule pods 431 to nodes that satisfy the affinity expressions specified 432 by this field, but it may choose a node that violates 433 one or more of the expressions. The node that is most 434 preferred is the one with the greatest sum of weights, 435 i.e. for each node that meets all of the scheduling 436 requirements (resource request, requiredDuringScheduling 437 affinity expressions, etc.), compute a sum by iterating 438 through the elements of this field and adding "weight" 439 to the sum if the node has pods which matches the corresponding 440 podAffinityTerm; the node(s) with the highest sum are 441 the most preferred. 442 items: 443 description: The weights of all of the matched WeightedPodAffinityTerm 444 fields are added per-node to find the most preferred 445 node(s) 446 properties: 447 podAffinityTerm: 448 description: Required. A pod affinity term, associated 449 with the corresponding weight. 450 properties: 451 labelSelector: 452 description: A label query over a set of resources, 453 in this case pods. 454 properties: 455 matchExpressions: 456 description: matchExpressions is a list 457 of label selector requirements. The requirements 458 are ANDed. 459 items: 460 description: A label selector requirement 461 is a selector that contains values, 462 a key, and an operator that relates 463 the key and values. 464 properties: 465 key: 466 description: key is the label key 467 that the selector applies to. 468 type: string 469 operator: 470 description: operator represents a 471 key's relationship to a set of values. 472 Valid operators are In, NotIn, Exists 473 and DoesNotExist. 474 type: string 475 values: 476 description: values is an array of 477 string values. If the operator is 478 In or NotIn, the values array must 479 be non-empty. If the operator is 480 Exists or DoesNotExist, the values 481 array must be empty. This array 482 is replaced during a strategic merge 483 patch. 484 items: 485 type: string 486 type: array 487 required: 488 - key 489 - operator 490 type: object 491 type: array 492 matchLabels: 493 additionalProperties: 494 type: string 495 description: matchLabels is a map of {key,value} 496 pairs. A single {key,value} in the matchLabels 497 map is equivalent to an element of matchExpressions, 498 whose key field is "key", the operator 499 is "In", and the values array contains 500 only "value". The requirements are ANDed. 501 type: object 502 type: object 503 namespaces: 504 description: namespaces specifies which namespaces 505 the labelSelector applies to (matches against); 506 null or empty list means "this pod's namespace" 507 items: 508 type: string 509 type: array 510 topologyKey: 511 description: This pod should be co-located (affinity) 512 or not co-located (anti-affinity) with the 513 pods matching the labelSelector in the specified 514 namespaces, where co-located is defined as 515 running on a node whose value of the label 516 with key topologyKey matches that of any node 517 on which any of the selected pods is running. 518 Empty topologyKey is not allowed. 519 type: string 520 required: 521 - topologyKey 522 type: object 523 weight: 524 description: weight associated with matching the 525 corresponding podAffinityTerm, in the range 1-100. 526 format: int32 527 type: integer 528 required: 529 - podAffinityTerm 530 - weight 531 type: object 532 type: array 533 requiredDuringSchedulingIgnoredDuringExecution: 534 description: If the affinity requirements specified by 535 this field are not met at scheduling time, the pod will 536 not be scheduled onto the node. If the affinity requirements 537 specified by this field cease to be met at some point 538 during pod execution (e.g. due to a pod label update), 539 the system may or may not try to eventually evict the 540 pod from its node. When there are multiple elements, 541 the lists of nodes corresponding to each podAffinityTerm 542 are intersected, i.e. all terms must be satisfied. 543 items: 544 description: Defines a set of pods (namely those matching 545 the labelSelector relative to the given namespace(s)) 546 that this pod should be co-located (affinity) or not 547 co-located (anti-affinity) with, where co-located 548 is defined as running on a node whose value of the 549 label with key <topologyKey> matches that of any node 550 on which a pod of the set of pods is running 551 properties: 552 labelSelector: 553 description: A label query over a set of resources, 554 in this case pods. 555 properties: 556 matchExpressions: 557 description: matchExpressions is a list of label 558 selector requirements. The requirements are 559 ANDed. 560 items: 561 description: A label selector requirement 562 is a selector that contains values, a key, 563 and an operator that relates the key and 564 values. 565 properties: 566 key: 567 description: key is the label key that 568 the selector applies to. 569 type: string 570 operator: 571 description: operator represents a key's 572 relationship to a set of values. Valid 573 operators are In, NotIn, Exists and 574 DoesNotExist. 575 type: string 576 values: 577 description: values is an array of string 578 values. If the operator is In or NotIn, 579 the values array must be non-empty. 580 If the operator is Exists or DoesNotExist, 581 the values array must be empty. This 582 array is replaced during a strategic 583 merge patch. 584 items: 585 type: string 586 type: array 587 required: 588 - key 589 - operator 590 type: object 591 type: array 592 matchLabels: 593 additionalProperties: 594 type: string 595 description: matchLabels is a map of {key,value} 596 pairs. A single {key,value} in the matchLabels 597 map is equivalent to an element of matchExpressions, 598 whose key field is "key", the operator is 599 "In", and the values array contains only "value". 600 The requirements are ANDed. 601 type: object 602 type: object 603 namespaces: 604 description: namespaces specifies which namespaces 605 the labelSelector applies to (matches against); 606 null or empty list means "this pod's namespace" 607 items: 608 type: string 609 type: array 610 topologyKey: 611 description: This pod should be co-located (affinity) 612 or not co-located (anti-affinity) with the pods 613 matching the labelSelector in the specified namespaces, 614 where co-located is defined as running on a node 615 whose value of the label with key topologyKey 616 matches that of any node on which any of the selected 617 pods is running. Empty topologyKey is not allowed. 618 type: string 619 required: 620 - topologyKey 621 type: object 622 type: array 623 type: object 624 podAntiAffinity: 625 description: Describes pod anti-affinity scheduling rules 626 (e.g. avoid putting this pod in the same node, zone, etc. 627 as some other pod(s)). 628 properties: 629 preferredDuringSchedulingIgnoredDuringExecution: 630 description: The scheduler will prefer to schedule pods 631 to nodes that satisfy the anti-affinity expressions 632 specified by this field, but it may choose a node that 633 violates one or more of the expressions. The node that 634 is most preferred is the one with the greatest sum of 635 weights, i.e. for each node that meets all of the scheduling 636 requirements (resource request, requiredDuringScheduling 637 anti-affinity expressions, etc.), compute a sum by iterating 638 through the elements of this field and adding "weight" 639 to the sum if the node has pods which matches the corresponding 640 podAffinityTerm; the node(s) with the highest sum are 641 the most preferred. 642 items: 643 description: The weights of all of the matched WeightedPodAffinityTerm 644 fields are added per-node to find the most preferred 645 node(s) 646 properties: 647 podAffinityTerm: 648 description: Required. A pod affinity term, associated 649 with the corresponding weight. 650 properties: 651 labelSelector: 652 description: A label query over a set of resources, 653 in this case pods. 654 properties: 655 matchExpressions: 656 description: matchExpressions is a list 657 of label selector requirements. The requirements 658 are ANDed. 659 items: 660 description: A label selector requirement 661 is a selector that contains values, 662 a key, and an operator that relates 663 the key and values. 664 properties: 665 key: 666 description: key is the label key 667 that the selector applies to. 668 type: string 669 operator: 670 description: operator represents a 671 key's relationship to a set of values. 672 Valid operators are In, NotIn, Exists 673 and DoesNotExist. 674 type: string 675 values: 676 description: values is an array of 677 string values. If the operator is 678 In or NotIn, the values array must 679 be non-empty. If the operator is 680 Exists or DoesNotExist, the values 681 array must be empty. This array 682 is replaced during a strategic merge 683 patch. 684 items: 685 type: string 686 type: array 687 required: 688 - key 689 - operator 690 type: object 691 type: array 692 matchLabels: 693 additionalProperties: 694 type: string 695 description: matchLabels is a map of {key,value} 696 pairs. A single {key,value} in the matchLabels 697 map is equivalent to an element of matchExpressions, 698 whose key field is "key", the operator 699 is "In", and the values array contains 700 only "value". The requirements are ANDed. 701 type: object 702 type: object 703 namespaces: 704 description: namespaces specifies which namespaces 705 the labelSelector applies to (matches against); 706 null or empty list means "this pod's namespace" 707 items: 708 type: string 709 type: array 710 topologyKey: 711 description: This pod should be co-located (affinity) 712 or not co-located (anti-affinity) with the 713 pods matching the labelSelector in the specified 714 namespaces, where co-located is defined as 715 running on a node whose value of the label 716 with key topologyKey matches that of any node 717 on which any of the selected pods is running. 718 Empty topologyKey is not allowed. 719 type: string 720 required: 721 - topologyKey 722 type: object 723 weight: 724 description: weight associated with matching the 725 corresponding podAffinityTerm, in the range 1-100. 726 format: int32 727 type: integer 728 required: 729 - podAffinityTerm 730 - weight 731 type: object 732 type: array 733 requiredDuringSchedulingIgnoredDuringExecution: 734 description: If the anti-affinity requirements specified 735 by this field are not met at scheduling time, the pod 736 will not be scheduled onto the node. If the anti-affinity 737 requirements specified by this field cease to be met 738 at some point during pod execution (e.g. due to a pod 739 label update), the system may or may not try to eventually 740 evict the pod from its node. When there are multiple 741 elements, the lists of nodes corresponding to each podAffinityTerm 742 are intersected, i.e. all terms must be satisfied. 743 items: 744 description: Defines a set of pods (namely those matching 745 the labelSelector relative to the given namespace(s)) 746 that this pod should be co-located (affinity) or not 747 co-located (anti-affinity) with, where co-located 748 is defined as running on a node whose value of the 749 label with key <topologyKey> matches that of any node 750 on which a pod of the set of pods is running 751 properties: 752 labelSelector: 753 description: A label query over a set of resources, 754 in this case pods. 755 properties: 756 matchExpressions: 757 description: matchExpressions is a list of label 758 selector requirements. The requirements are 759 ANDed. 760 items: 761 description: A label selector requirement 762 is a selector that contains values, a key, 763 and an operator that relates the key and 764 values. 765 properties: 766 key: 767 description: key is the label key that 768 the selector applies to. 769 type: string 770 operator: 771 description: operator represents a key's 772 relationship to a set of values. Valid 773 operators are In, NotIn, Exists and 774 DoesNotExist. 775 type: string 776 values: 777 description: values is an array of string 778 values. If the operator is In or NotIn, 779 the values array must be non-empty. 780 If the operator is Exists or DoesNotExist, 781 the values array must be empty. This 782 array is replaced during a strategic 783 merge patch. 784 items: 785 type: string 786 type: array 787 required: 788 - key 789 - operator 790 type: object 791 type: array 792 matchLabels: 793 additionalProperties: 794 type: string 795 description: matchLabels is a map of {key,value} 796 pairs. A single {key,value} in the matchLabels 797 map is equivalent to an element of matchExpressions, 798 whose key field is "key", the operator is 799 "In", and the values array contains only "value". 800 The requirements are ANDed. 801 type: object 802 type: object 803 namespaces: 804 description: namespaces specifies which namespaces 805 the labelSelector applies to (matches against); 806 null or empty list means "this pod's namespace" 807 items: 808 type: string 809 type: array 810 topologyKey: 811 description: This pod should be co-located (affinity) 812 or not co-located (anti-affinity) with the pods 813 matching the labelSelector in the specified namespaces, 814 where co-located is defined as running on a node 815 whose value of the label with key topologyKey 816 matches that of any node on which any of the selected 817 pods is running. Empty topologyKey is not allowed. 818 type: string 819 required: 820 - topologyKey 821 type: object 822 type: array 823 type: object 824 type: object 825 nodeSelector: 826 additionalProperties: 827 type: string 828 description: NodeSelector is the labels that will be used to select 829 a node for pod scheduling 830 type: object 831 resources: 832 description: Resources are the compute resources required by the 833 jiva container. 834 properties: 835 limits: 836 additionalProperties: 837 anyOf: 838 - type: integer 839 - type: string 840 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 841 x-kubernetes-int-or-string: true 842 description: 'Limits describes the maximum amount of compute 843 resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' 844 type: object 845 requests: 846 additionalProperties: 847 anyOf: 848 - type: integer 849 - type: string 850 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 851 x-kubernetes-int-or-string: true 852 description: 'Requests describes the minimum amount of compute 853 resources required. If Requests is omitted for a container, 854 it defaults to Limits if that is explicitly specified, otherwise 855 to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' 856 type: object 857 type: object 858 tolerations: 859 description: Tolerations, if specified, are the pod's tolerations 860 items: 861 description: The pod this Toleration is attached to tolerates 862 any taint that matches the triple <key,value,effect> using 863 the matching operator <operator>. 864 properties: 865 effect: 866 description: Effect indicates the taint effect to match. 867 Empty means match all taint effects. When specified, allowed 868 values are NoSchedule, PreferNoSchedule and NoExecute. 869 type: string 870 key: 871 description: Key is the taint key that the toleration applies 872 to. Empty means match all taint keys. If the key is empty, 873 operator must be Exists; this combination means to match 874 all values and all keys. 875 type: string 876 operator: 877 description: Operator represents a key's relationship to 878 the value. Valid operators are Exists and Equal. Defaults 879 to Equal. Exists is equivalent to wildcard for value, 880 so that a pod can tolerate all taints of a particular 881 category. 882 type: string 883 tolerationSeconds: 884 description: TolerationSeconds represents the period of 885 time the toleration (which must be of effect NoExecute, 886 otherwise this field is ignored) tolerates the taint. 887 By default, it is not set, which means tolerate the taint 888 forever (do not evict). Zero and negative values will 889 be treated as 0 (evict immediately) by the system. 890 format: int64 891 type: integer 892 value: 893 description: Value is the taint value the toleration matches 894 to. If the operator is Exists, the value should be empty, 895 otherwise just a regular string. 896 type: string 897 type: object 898 type: array 899 type: object 900 replicaSC: 901 description: ReplicaSC represents the storage class used for creating 902 the pvc for the replicas (provisioned by localpv provisioner) 903 type: string 904 serviceAccountName: 905 description: ServiceAccountName can be provided to enable PSP 906 type: string 907 target: 908 description: TargetSpec represents configuration related to jiva target 909 and its resources 910 nullable: true 911 properties: 912 affinity: 913 description: Affinity if specified, are the pod's affinities 914 properties: 915 nodeAffinity: 916 description: Describes node affinity scheduling rules for 917 the pod. 918 properties: 919 preferredDuringSchedulingIgnoredDuringExecution: 920 description: The scheduler will prefer to schedule pods 921 to nodes that satisfy the affinity expressions specified 922 by this field, but it may choose a node that violates 923 one or more of the expressions. The node that is most 924 preferred is the one with the greatest sum of weights, 925 i.e. for each node that meets all of the scheduling 926 requirements (resource request, requiredDuringScheduling 927 affinity expressions, etc.), compute a sum by iterating 928 through the elements of this field and adding "weight" 929 to the sum if the node matches the corresponding matchExpressions; 930 the node(s) with the highest sum are the most preferred. 931 items: 932 description: An empty preferred scheduling term matches 933 all objects with implicit weight 0 (i.e. it's a no-op). 934 A null preferred scheduling term matches no objects 935 (i.e. is also a no-op). 936 properties: 937 preference: 938 description: A node selector term, associated with 939 the corresponding weight. 940 properties: 941 matchExpressions: 942 description: A list of node selector requirements 943 by node's labels. 944 items: 945 description: A node selector requirement is 946 a selector that contains values, a key, 947 and an operator that relates the key and 948 values. 949 properties: 950 key: 951 description: The label key that the selector 952 applies to. 953 type: string 954 operator: 955 description: Represents a key's relationship 956 to a set of values. Valid operators 957 are In, NotIn, Exists, DoesNotExist. 958 Gt, and Lt. 959 type: string 960 values: 961 description: An array of string values. 962 If the operator is In or NotIn, the 963 values array must be non-empty. If the 964 operator is Exists or DoesNotExist, 965 the values array must be empty. If the 966 operator is Gt or Lt, the values array 967 must have a single element, which will 968 be interpreted as an integer. This array 969 is replaced during a strategic merge 970 patch. 971 items: 972 type: string 973 type: array 974 required: 975 - key 976 - operator 977 type: object 978 type: array 979 matchFields: 980 description: A list of node selector requirements 981 by node's fields. 982 items: 983 description: A node selector requirement is 984 a selector that contains values, a key, 985 and an operator that relates the key and 986 values. 987 properties: 988 key: 989 description: The label key that the selector 990 applies to. 991 type: string 992 operator: 993 description: Represents a key's relationship 994 to a set of values. Valid operators 995 are In, NotIn, Exists, DoesNotExist. 996 Gt, and Lt. 997 type: string 998 values: 999 description: An array of string values. 1000 If the operator is In or NotIn, the 1001 values array must be non-empty. If the 1002 operator is Exists or DoesNotExist, 1003 the values array must be empty. If the 1004 operator is Gt or Lt, the values array 1005 must have a single element, which will 1006 be interpreted as an integer. This array 1007 is replaced during a strategic merge 1008 patch. 1009 items: 1010 type: string 1011 type: array 1012 required: 1013 - key 1014 - operator 1015 type: object 1016 type: array 1017 type: object 1018 weight: 1019 description: Weight associated with matching the 1020 corresponding nodeSelectorTerm, in the range 1-100. 1021 format: int32 1022 type: integer 1023 required: 1024 - preference 1025 - weight 1026 type: object 1027 type: array 1028 requiredDuringSchedulingIgnoredDuringExecution: 1029 description: If the affinity requirements specified by 1030 this field are not met at scheduling time, the pod will 1031 not be scheduled onto the node. If the affinity requirements 1032 specified by this field cease to be met at some point 1033 during pod execution (e.g. due to an update), the system 1034 may or may not try to eventually evict the pod from 1035 its node. 1036 properties: 1037 nodeSelectorTerms: 1038 description: Required. A list of node selector terms. 1039 The terms are ORed. 1040 items: 1041 description: A null or empty node selector term 1042 matches no objects. The requirements of them are 1043 ANDed. The TopologySelectorTerm type implements 1044 a subset of the NodeSelectorTerm. 1045 properties: 1046 matchExpressions: 1047 description: A list of node selector requirements 1048 by node's labels. 1049 items: 1050 description: A node selector requirement is 1051 a selector that contains values, a key, 1052 and an operator that relates the key and 1053 values. 1054 properties: 1055 key: 1056 description: The label key that the selector 1057 applies to. 1058 type: string 1059 operator: 1060 description: Represents a key's relationship 1061 to a set of values. Valid operators 1062 are In, NotIn, Exists, DoesNotExist. 1063 Gt, and Lt. 1064 type: string 1065 values: 1066 description: An array of string values. 1067 If the operator is In or NotIn, the 1068 values array must be non-empty. If the 1069 operator is Exists or DoesNotExist, 1070 the values array must be empty. If the 1071 operator is Gt or Lt, the values array 1072 must have a single element, which will 1073 be interpreted as an integer. This array 1074 is replaced during a strategic merge 1075 patch. 1076 items: 1077 type: string 1078 type: array 1079 required: 1080 - key 1081 - operator 1082 type: object 1083 type: array 1084 matchFields: 1085 description: A list of node selector requirements 1086 by node's fields. 1087 items: 1088 description: A node selector requirement is 1089 a selector that contains values, a key, 1090 and an operator that relates the key and 1091 values. 1092 properties: 1093 key: 1094 description: The label key that the selector 1095 applies to. 1096 type: string 1097 operator: 1098 description: Represents a key's relationship 1099 to a set of values. Valid operators 1100 are In, NotIn, Exists, DoesNotExist. 1101 Gt, and Lt. 1102 type: string 1103 values: 1104 description: An array of string values. 1105 If the operator is In or NotIn, the 1106 values array must be non-empty. If the 1107 operator is Exists or DoesNotExist, 1108 the values array must be empty. If the 1109 operator is Gt or Lt, the values array 1110 must have a single element, which will 1111 be interpreted as an integer. This array 1112 is replaced during a strategic merge 1113 patch. 1114 items: 1115 type: string 1116 type: array 1117 required: 1118 - key 1119 - operator 1120 type: object 1121 type: array 1122 type: object 1123 type: array 1124 required: 1125 - nodeSelectorTerms 1126 type: object 1127 type: object 1128 podAffinity: 1129 description: Describes pod affinity scheduling rules (e.g. 1130 co-locate this pod in the same node, zone, etc. as some 1131 other pod(s)). 1132 properties: 1133 preferredDuringSchedulingIgnoredDuringExecution: 1134 description: The scheduler will prefer to schedule pods 1135 to nodes that satisfy the affinity expressions specified 1136 by this field, but it may choose a node that violates 1137 one or more of the expressions. The node that is most 1138 preferred is the one with the greatest sum of weights, 1139 i.e. for each node that meets all of the scheduling 1140 requirements (resource request, requiredDuringScheduling 1141 affinity expressions, etc.), compute a sum by iterating 1142 through the elements of this field and adding "weight" 1143 to the sum if the node has pods which matches the corresponding 1144 podAffinityTerm; the node(s) with the highest sum are 1145 the most preferred. 1146 items: 1147 description: The weights of all of the matched WeightedPodAffinityTerm 1148 fields are added per-node to find the most preferred 1149 node(s) 1150 properties: 1151 podAffinityTerm: 1152 description: Required. A pod affinity term, associated 1153 with the corresponding weight. 1154 properties: 1155 labelSelector: 1156 description: A label query over a set of resources, 1157 in this case pods. 1158 properties: 1159 matchExpressions: 1160 description: matchExpressions is a list 1161 of label selector requirements. The requirements 1162 are ANDed. 1163 items: 1164 description: A label selector requirement 1165 is a selector that contains values, 1166 a key, and an operator that relates 1167 the key and values. 1168 properties: 1169 key: 1170 description: key is the label key 1171 that the selector applies to. 1172 type: string 1173 operator: 1174 description: operator represents a 1175 key's relationship to a set of values. 1176 Valid operators are In, NotIn, Exists 1177 and DoesNotExist. 1178 type: string 1179 values: 1180 description: values is an array of 1181 string values. If the operator is 1182 In or NotIn, the values array must 1183 be non-empty. If the operator is 1184 Exists or DoesNotExist, the values 1185 array must be empty. This array 1186 is replaced during a strategic merge 1187 patch. 1188 items: 1189 type: string 1190 type: array 1191 required: 1192 - key 1193 - operator 1194 type: object 1195 type: array 1196 matchLabels: 1197 additionalProperties: 1198 type: string 1199 description: matchLabels is a map of {key,value} 1200 pairs. A single {key,value} in the matchLabels 1201 map is equivalent to an element of matchExpressions, 1202 whose key field is "key", the operator 1203 is "In", and the values array contains 1204 only "value". The requirements are ANDed. 1205 type: object 1206 type: object 1207 namespaces: 1208 description: namespaces specifies which namespaces 1209 the labelSelector applies to (matches against); 1210 null or empty list means "this pod's namespace" 1211 items: 1212 type: string 1213 type: array 1214 topologyKey: 1215 description: This pod should be co-located (affinity) 1216 or not co-located (anti-affinity) with the 1217 pods matching the labelSelector in the specified 1218 namespaces, where co-located is defined as 1219 running on a node whose value of the label 1220 with key topologyKey matches that of any node 1221 on which any of the selected pods is running. 1222 Empty topologyKey is not allowed. 1223 type: string 1224 required: 1225 - topologyKey 1226 type: object 1227 weight: 1228 description: weight associated with matching the 1229 corresponding podAffinityTerm, in the range 1-100. 1230 format: int32 1231 type: integer 1232 required: 1233 - podAffinityTerm 1234 - weight 1235 type: object 1236 type: array 1237 requiredDuringSchedulingIgnoredDuringExecution: 1238 description: If the affinity requirements specified by 1239 this field are not met at scheduling time, the pod will 1240 not be scheduled onto the node. If the affinity requirements 1241 specified by this field cease to be met at some point 1242 during pod execution (e.g. due to a pod label update), 1243 the system may or may not try to eventually evict the 1244 pod from its node. When there are multiple elements, 1245 the lists of nodes corresponding to each podAffinityTerm 1246 are intersected, i.e. all terms must be satisfied. 1247 items: 1248 description: Defines a set of pods (namely those matching 1249 the labelSelector relative to the given namespace(s)) 1250 that this pod should be co-located (affinity) or not 1251 co-located (anti-affinity) with, where co-located 1252 is defined as running on a node whose value of the 1253 label with key <topologyKey> matches that of any node 1254 on which a pod of the set of pods is running 1255 properties: 1256 labelSelector: 1257 description: A label query over a set of resources, 1258 in this case pods. 1259 properties: 1260 matchExpressions: 1261 description: matchExpressions is a list of label 1262 selector requirements. The requirements are 1263 ANDed. 1264 items: 1265 description: A label selector requirement 1266 is a selector that contains values, a key, 1267 and an operator that relates the key and 1268 values. 1269 properties: 1270 key: 1271 description: key is the label key that 1272 the selector applies to. 1273 type: string 1274 operator: 1275 description: operator represents a key's 1276 relationship to a set of values. Valid 1277 operators are In, NotIn, Exists and 1278 DoesNotExist. 1279 type: string 1280 values: 1281 description: values is an array of string 1282 values. If the operator is In or NotIn, 1283 the values array must be non-empty. 1284 If the operator is Exists or DoesNotExist, 1285 the values array must be empty. This 1286 array is replaced during a strategic 1287 merge patch. 1288 items: 1289 type: string 1290 type: array 1291 required: 1292 - key 1293 - operator 1294 type: object 1295 type: array 1296 matchLabels: 1297 additionalProperties: 1298 type: string 1299 description: matchLabels is a map of {key,value} 1300 pairs. A single {key,value} in the matchLabels 1301 map is equivalent to an element of matchExpressions, 1302 whose key field is "key", the operator is 1303 "In", and the values array contains only "value". 1304 The requirements are ANDed. 1305 type: object 1306 type: object 1307 namespaces: 1308 description: namespaces specifies which namespaces 1309 the labelSelector applies to (matches against); 1310 null or empty list means "this pod's namespace" 1311 items: 1312 type: string 1313 type: array 1314 topologyKey: 1315 description: This pod should be co-located (affinity) 1316 or not co-located (anti-affinity) with the pods 1317 matching the labelSelector in the specified namespaces, 1318 where co-located is defined as running on a node 1319 whose value of the label with key topologyKey 1320 matches that of any node on which any of the selected 1321 pods is running. Empty topologyKey is not allowed. 1322 type: string 1323 required: 1324 - topologyKey 1325 type: object 1326 type: array 1327 type: object 1328 podAntiAffinity: 1329 description: Describes pod anti-affinity scheduling rules 1330 (e.g. avoid putting this pod in the same node, zone, etc. 1331 as some other pod(s)). 1332 properties: 1333 preferredDuringSchedulingIgnoredDuringExecution: 1334 description: The scheduler will prefer to schedule pods 1335 to nodes that satisfy the anti-affinity expressions 1336 specified by this field, but it may choose a node that 1337 violates one or more of the expressions. The node that 1338 is most preferred is the one with the greatest sum of 1339 weights, i.e. for each node that meets all of the scheduling 1340 requirements (resource request, requiredDuringScheduling 1341 anti-affinity expressions, etc.), compute a sum by iterating 1342 through the elements of this field and adding "weight" 1343 to the sum if the node has pods which matches the corresponding 1344 podAffinityTerm; the node(s) with the highest sum are 1345 the most preferred. 1346 items: 1347 description: The weights of all of the matched WeightedPodAffinityTerm 1348 fields are added per-node to find the most preferred 1349 node(s) 1350 properties: 1351 podAffinityTerm: 1352 description: Required. A pod affinity term, associated 1353 with the corresponding weight. 1354 properties: 1355 labelSelector: 1356 description: A label query over a set of resources, 1357 in this case pods. 1358 properties: 1359 matchExpressions: 1360 description: matchExpressions is a list 1361 of label selector requirements. The requirements 1362 are ANDed. 1363 items: 1364 description: A label selector requirement 1365 is a selector that contains values, 1366 a key, and an operator that relates 1367 the key and values. 1368 properties: 1369 key: 1370 description: key is the label key 1371 that the selector applies to. 1372 type: string 1373 operator: 1374 description: operator represents a 1375 key's relationship to a set of values. 1376 Valid operators are In, NotIn, Exists 1377 and DoesNotExist. 1378 type: string 1379 values: 1380 description: values is an array of 1381 string values. If the operator is 1382 In or NotIn, the values array must 1383 be non-empty. If the operator is 1384 Exists or DoesNotExist, the values 1385 array must be empty. This array 1386 is replaced during a strategic merge 1387 patch. 1388 items: 1389 type: string 1390 type: array 1391 required: 1392 - key 1393 - operator 1394 type: object 1395 type: array 1396 matchLabels: 1397 additionalProperties: 1398 type: string 1399 description: matchLabels is a map of {key,value} 1400 pairs. A single {key,value} in the matchLabels 1401 map is equivalent to an element of matchExpressions, 1402 whose key field is "key", the operator 1403 is "In", and the values array contains 1404 only "value". The requirements are ANDed. 1405 type: object 1406 type: object 1407 namespaces: 1408 description: namespaces specifies which namespaces 1409 the labelSelector applies to (matches against); 1410 null or empty list means "this pod's namespace" 1411 items: 1412 type: string 1413 type: array 1414 topologyKey: 1415 description: This pod should be co-located (affinity) 1416 or not co-located (anti-affinity) with the 1417 pods matching the labelSelector in the specified 1418 namespaces, where co-located is defined as 1419 running on a node whose value of the label 1420 with key topologyKey matches that of any node 1421 on which any of the selected pods is running. 1422 Empty topologyKey is not allowed. 1423 type: string 1424 required: 1425 - topologyKey 1426 type: object 1427 weight: 1428 description: weight associated with matching the 1429 corresponding podAffinityTerm, in the range 1-100. 1430 format: int32 1431 type: integer 1432 required: 1433 - podAffinityTerm 1434 - weight 1435 type: object 1436 type: array 1437 requiredDuringSchedulingIgnoredDuringExecution: 1438 description: If the anti-affinity requirements specified 1439 by this field are not met at scheduling time, the pod 1440 will not be scheduled onto the node. If the anti-affinity 1441 requirements specified by this field cease to be met 1442 at some point during pod execution (e.g. due to a pod 1443 label update), the system may or may not try to eventually 1444 evict the pod from its node. When there are multiple 1445 elements, the lists of nodes corresponding to each podAffinityTerm 1446 are intersected, i.e. all terms must be satisfied. 1447 items: 1448 description: Defines a set of pods (namely those matching 1449 the labelSelector relative to the given namespace(s)) 1450 that this pod should be co-located (affinity) or not 1451 co-located (anti-affinity) with, where co-located 1452 is defined as running on a node whose value of the 1453 label with key <topologyKey> matches that of any node 1454 on which a pod of the set of pods is running 1455 properties: 1456 labelSelector: 1457 description: A label query over a set of resources, 1458 in this case pods. 1459 properties: 1460 matchExpressions: 1461 description: matchExpressions is a list of label 1462 selector requirements. The requirements are 1463 ANDed. 1464 items: 1465 description: A label selector requirement 1466 is a selector that contains values, a key, 1467 and an operator that relates the key and 1468 values. 1469 properties: 1470 key: 1471 description: key is the label key that 1472 the selector applies to. 1473 type: string 1474 operator: 1475 description: operator represents a key's 1476 relationship to a set of values. Valid 1477 operators are In, NotIn, Exists and 1478 DoesNotExist. 1479 type: string 1480 values: 1481 description: values is an array of string 1482 values. If the operator is In or NotIn, 1483 the values array must be non-empty. 1484 If the operator is Exists or DoesNotExist, 1485 the values array must be empty. This 1486 array is replaced during a strategic 1487 merge patch. 1488 items: 1489 type: string 1490 type: array 1491 required: 1492 - key 1493 - operator 1494 type: object 1495 type: array 1496 matchLabels: 1497 additionalProperties: 1498 type: string 1499 description: matchLabels is a map of {key,value} 1500 pairs. A single {key,value} in the matchLabels 1501 map is equivalent to an element of matchExpressions, 1502 whose key field is "key", the operator is 1503 "In", and the values array contains only "value". 1504 The requirements are ANDed. 1505 type: object 1506 type: object 1507 namespaces: 1508 description: namespaces specifies which namespaces 1509 the labelSelector applies to (matches against); 1510 null or empty list means "this pod's namespace" 1511 items: 1512 type: string 1513 type: array 1514 topologyKey: 1515 description: This pod should be co-located (affinity) 1516 or not co-located (anti-affinity) with the pods 1517 matching the labelSelector in the specified namespaces, 1518 where co-located is defined as running on a node 1519 whose value of the label with key topologyKey 1520 matches that of any node on which any of the selected 1521 pods is running. Empty topologyKey is not allowed. 1522 type: string 1523 required: 1524 - topologyKey 1525 type: object 1526 type: array 1527 type: object 1528 type: object 1529 auxResources: 1530 description: AuxResources are the compute resources required by 1531 the jiva-target pod side car containers. 1532 properties: 1533 limits: 1534 additionalProperties: 1535 anyOf: 1536 - type: integer 1537 - type: string 1538 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 1539 x-kubernetes-int-or-string: true 1540 description: 'Limits describes the maximum amount of compute 1541 resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' 1542 type: object 1543 requests: 1544 additionalProperties: 1545 anyOf: 1546 - type: integer 1547 - type: string 1548 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 1549 x-kubernetes-int-or-string: true 1550 description: 'Requests describes the minimum amount of compute 1551 resources required. If Requests is omitted for a container, 1552 it defaults to Limits if that is explicitly specified, otherwise 1553 to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' 1554 type: object 1555 type: object 1556 monitor: 1557 description: Monitor enables or disables the target exporter sidecar 1558 type: boolean 1559 nodeSelector: 1560 additionalProperties: 1561 type: string 1562 description: NodeSelector is the labels that will be used to select 1563 a node for pod scheduling 1564 type: object 1565 replicationFactor: 1566 description: ReplicationFactor represents maximum number of replicas 1567 that are allowed to connect to the target 1568 type: integer 1569 resources: 1570 description: Resources are the compute resources required by the 1571 jiva container. 1572 properties: 1573 limits: 1574 additionalProperties: 1575 anyOf: 1576 - type: integer 1577 - type: string 1578 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 1579 x-kubernetes-int-or-string: true 1580 description: 'Limits describes the maximum amount of compute 1581 resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' 1582 type: object 1583 requests: 1584 additionalProperties: 1585 anyOf: 1586 - type: integer 1587 - type: string 1588 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 1589 x-kubernetes-int-or-string: true 1590 description: 'Requests describes the minimum amount of compute 1591 resources required. If Requests is omitted for a container, 1592 it defaults to Limits if that is explicitly specified, otherwise 1593 to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' 1594 type: object 1595 type: object 1596 tolerations: 1597 description: Tolerations, if specified, are the pod's tolerations 1598 items: 1599 description: The pod this Toleration is attached to tolerates 1600 any taint that matches the triple <key,value,effect> using 1601 the matching operator <operator>. 1602 properties: 1603 effect: 1604 description: Effect indicates the taint effect to match. 1605 Empty means match all taint effects. When specified, allowed 1606 values are NoSchedule, PreferNoSchedule and NoExecute. 1607 type: string 1608 key: 1609 description: Key is the taint key that the toleration applies 1610 to. Empty means match all taint keys. If the key is empty, 1611 operator must be Exists; this combination means to match 1612 all values and all keys. 1613 type: string 1614 operator: 1615 description: Operator represents a key's relationship to 1616 the value. Valid operators are Exists and Equal. Defaults 1617 to Equal. Exists is equivalent to wildcard for value, 1618 so that a pod can tolerate all taints of a particular 1619 category. 1620 type: string 1621 tolerationSeconds: 1622 description: TolerationSeconds represents the period of 1623 time the toleration (which must be of effect NoExecute, 1624 otherwise this field is ignored) tolerates the taint. 1625 By default, it is not set, which means tolerate the taint 1626 forever (do not evict). Zero and negative values will 1627 be treated as 0 (evict immediately) by the system. 1628 format: int64 1629 type: integer 1630 value: 1631 description: Value is the taint value the toleration matches 1632 to. If the operator is Exists, the value should be empty, 1633 otherwise just a regular string. 1634 type: string 1635 type: object 1636 type: array 1637 type: object 1638 required: 1639 - autoScaling 1640 - enableBufio 1641 type: object 1642 status: 1643 description: JivaVolumePolicyStatus is for handling status of JivaVolumePolicy 1644 properties: 1645 phase: 1646 type: string 1647 required: 1648 - phase 1649 type: object 1650 type: object 1651 served: true 1652 storage: true 1653 status: 1654 acceptedNames: 1655 kind: "" 1656 plural: "" 1657 conditions: [ ] 1658 storedVersions: [ ] 1659 --- 1660 apiVersion: apiextensions.k8s.io/v1 1661 kind: CustomResourceDefinition 1662 metadata: 1663 annotations: 1664 controller-gen.kubebuilder.io/version: v0.4.1 1665 creationTimestamp: null 1666 name: jivavolumes.openebs.io 1667 spec: 1668 group: openebs.io 1669 names: 1670 kind: JivaVolume 1671 listKind: JivaVolumeList 1672 plural: jivavolumes 1673 shortNames: 1674 - jv 1675 singular: jivavolume 1676 scope: Namespaced 1677 versions: 1678 - additionalPrinterColumns: 1679 - jsonPath: .status.replicaCount 1680 name: ReplicaCount 1681 type: string 1682 - jsonPath: .status.phase 1683 name: Phase 1684 type: string 1685 - jsonPath: .status.status 1686 name: Status 1687 type: string 1688 name: v1alpha1 1689 schema: 1690 openAPIV3Schema: 1691 description: 'JivaVolume is the Schema for the jivavolumes API Important: 1692 Run "operator-sdk generate k8s" to regenerate code after modifying this 1693 file' 1694 properties: 1695 apiVersion: 1696 description: 'APIVersion defines the versioned schema of this representation 1697 of an object. Servers should convert recognized schemas to the latest 1698 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 1699 type: string 1700 kind: 1701 description: 'Kind is a string value representing the REST resource this 1702 object represents. Servers may infer this from the endpoint the client 1703 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 1704 type: string 1705 metadata: 1706 type: object 1707 spec: 1708 description: JivaVolumeSpec defines the desired state of JivaVolume 1709 properties: 1710 accessType: 1711 description: AccessType can be specified as Block or Mount type 1712 type: string 1713 capacity: 1714 type: string 1715 desiredReplicationFactor: 1716 type: integer 1717 iscsiSpec: 1718 nullable: true 1719 properties: 1720 iqn: 1721 type: string 1722 targetIP: 1723 type: string 1724 targetPort: 1725 format: int32 1726 type: integer 1727 type: object 1728 mountInfo: 1729 nullable: true 1730 properties: 1731 devicePath: 1732 type: string 1733 fsType: 1734 type: string 1735 stagingPath: 1736 description: StagingPath is the path provided by K8s during NodeStageVolume 1737 rpc call, where volume is mounted globally. 1738 type: string 1739 targetPath: 1740 description: TargetPath is the path provided by K8s during NodePublishVolume 1741 rpc call where bind mount happens. 1742 type: string 1743 type: object 1744 policy: 1745 description: Policy is the configuration used for creating target 1746 and replica pods during volume provisioning 1747 nullable: true 1748 properties: 1749 autoScaling: 1750 description: AutoScaling ... 1751 type: boolean 1752 enableBufio: 1753 description: EnableBufio ... 1754 type: boolean 1755 priorityClassName: 1756 description: PriorityClassName if specified applies to the pod 1757 If left empty, no priority class is applied. 1758 type: string 1759 replica: 1760 description: ReplicaSpec represents configuration related to replicas 1761 resources 1762 nullable: true 1763 properties: 1764 affinity: 1765 description: Affinity if specified, are the pod's affinities 1766 properties: 1767 nodeAffinity: 1768 description: Describes node affinity scheduling rules 1769 for the pod. 1770 properties: 1771 preferredDuringSchedulingIgnoredDuringExecution: 1772 description: The scheduler will prefer to schedule 1773 pods to nodes that satisfy the affinity expressions 1774 specified by this field, but it may choose a node 1775 that violates one or more of the expressions. The 1776 node that is most preferred is the one with the 1777 greatest sum of weights, i.e. for each node that 1778 meets all of the scheduling requirements (resource 1779 request, requiredDuringScheduling affinity expressions, 1780 etc.), compute a sum by iterating through the elements 1781 of this field and adding "weight" to the sum if 1782 the node matches the corresponding matchExpressions; 1783 the node(s) with the highest sum are the most preferred. 1784 items: 1785 description: An empty preferred scheduling term 1786 matches all objects with implicit weight 0 (i.e. 1787 it's a no-op). A null preferred scheduling term 1788 matches no objects (i.e. is also a no-op). 1789 properties: 1790 preference: 1791 description: A node selector term, associated 1792 with the corresponding weight. 1793 properties: 1794 matchExpressions: 1795 description: A list of node selector requirements 1796 by node's labels. 1797 items: 1798 description: A node selector requirement 1799 is a selector that contains values, 1800 a key, and an operator that relates 1801 the key and values. 1802 properties: 1803 key: 1804 description: The label key that the 1805 selector applies to. 1806 type: string 1807 operator: 1808 description: Represents a key's relationship 1809 to a set of values. Valid operators 1810 are In, NotIn, Exists, DoesNotExist. 1811 Gt, and Lt. 1812 type: string 1813 values: 1814 description: An array of string values. 1815 If the operator is In or NotIn, 1816 the values array must be non-empty. 1817 If the operator is Exists or DoesNotExist, 1818 the values array must be empty. 1819 If the operator is Gt or Lt, the 1820 values array must have a single 1821 element, which will be interpreted 1822 as an integer. This array is replaced 1823 during a strategic merge patch. 1824 items: 1825 type: string 1826 type: array 1827 required: 1828 - key 1829 - operator 1830 type: object 1831 type: array 1832 matchFields: 1833 description: A list of node selector requirements 1834 by node's fields. 1835 items: 1836 description: A node selector requirement 1837 is a selector that contains values, 1838 a key, and an operator that relates 1839 the key and values. 1840 properties: 1841 key: 1842 description: The label key that the 1843 selector applies to. 1844 type: string 1845 operator: 1846 description: Represents a key's relationship 1847 to a set of values. Valid operators 1848 are In, NotIn, Exists, DoesNotExist. 1849 Gt, and Lt. 1850 type: string 1851 values: 1852 description: An array of string values. 1853 If the operator is In or NotIn, 1854 the values array must be non-empty. 1855 If the operator is Exists or DoesNotExist, 1856 the values array must be empty. 1857 If the operator is Gt or Lt, the 1858 values array must have a single 1859 element, which will be interpreted 1860 as an integer. This array is replaced 1861 during a strategic merge patch. 1862 items: 1863 type: string 1864 type: array 1865 required: 1866 - key 1867 - operator 1868 type: object 1869 type: array 1870 type: object 1871 weight: 1872 description: Weight associated with matching 1873 the corresponding nodeSelectorTerm, in the 1874 range 1-100. 1875 format: int32 1876 type: integer 1877 required: 1878 - preference 1879 - weight 1880 type: object 1881 type: array 1882 requiredDuringSchedulingIgnoredDuringExecution: 1883 description: If the affinity requirements specified 1884 by this field are not met at scheduling time, the 1885 pod will not be scheduled onto the node. If the 1886 affinity requirements specified by this field cease 1887 to be met at some point during pod execution (e.g. 1888 due to an update), the system may or may not try 1889 to eventually evict the pod from its node. 1890 properties: 1891 nodeSelectorTerms: 1892 description: Required. A list of node selector 1893 terms. The terms are ORed. 1894 items: 1895 description: A null or empty node selector term 1896 matches no objects. The requirements of them 1897 are ANDed. The TopologySelectorTerm type implements 1898 a subset of the NodeSelectorTerm. 1899 properties: 1900 matchExpressions: 1901 description: A list of node selector requirements 1902 by node's labels. 1903 items: 1904 description: A node selector requirement 1905 is a selector that contains values, 1906 a key, and an operator that relates 1907 the key and values. 1908 properties: 1909 key: 1910 description: The label key that the 1911 selector applies to. 1912 type: string 1913 operator: 1914 description: Represents a key's relationship 1915 to a set of values. Valid operators 1916 are In, NotIn, Exists, DoesNotExist. 1917 Gt, and Lt. 1918 type: string 1919 values: 1920 description: An array of string values. 1921 If the operator is In or NotIn, 1922 the values array must be non-empty. 1923 If the operator is Exists or DoesNotExist, 1924 the values array must be empty. 1925 If the operator is Gt or Lt, the 1926 values array must have a single 1927 element, which will be interpreted 1928 as an integer. This array is replaced 1929 during a strategic merge patch. 1930 items: 1931 type: string 1932 type: array 1933 required: 1934 - key 1935 - operator 1936 type: object 1937 type: array 1938 matchFields: 1939 description: A list of node selector requirements 1940 by node's fields. 1941 items: 1942 description: A node selector requirement 1943 is a selector that contains values, 1944 a key, and an operator that relates 1945 the key and values. 1946 properties: 1947 key: 1948 description: The label key that the 1949 selector applies to. 1950 type: string 1951 operator: 1952 description: Represents a key's relationship 1953 to a set of values. Valid operators 1954 are In, NotIn, Exists, DoesNotExist. 1955 Gt, and Lt. 1956 type: string 1957 values: 1958 description: An array of string values. 1959 If the operator is In or NotIn, 1960 the values array must be non-empty. 1961 If the operator is Exists or DoesNotExist, 1962 the values array must be empty. 1963 If the operator is Gt or Lt, the 1964 values array must have a single 1965 element, which will be interpreted 1966 as an integer. This array is replaced 1967 during a strategic merge patch. 1968 items: 1969 type: string 1970 type: array 1971 required: 1972 - key 1973 - operator 1974 type: object 1975 type: array 1976 type: object 1977 type: array 1978 required: 1979 - nodeSelectorTerms 1980 type: object 1981 type: object 1982 podAffinity: 1983 description: Describes pod affinity scheduling rules (e.g. 1984 co-locate this pod in the same node, zone, etc. as some 1985 other pod(s)). 1986 properties: 1987 preferredDuringSchedulingIgnoredDuringExecution: 1988 description: The scheduler will prefer to schedule 1989 pods to nodes that satisfy the affinity expressions 1990 specified by this field, but it may choose a node 1991 that violates one or more of the expressions. The 1992 node that is most preferred is the one with the 1993 greatest sum of weights, i.e. for each node that 1994 meets all of the scheduling requirements (resource 1995 request, requiredDuringScheduling affinity expressions, 1996 etc.), compute a sum by iterating through the elements 1997 of this field and adding "weight" to the sum if 1998 the node has pods which matches the corresponding 1999 podAffinityTerm; the node(s) with the highest sum 2000 are the most preferred. 2001 items: 2002 description: The weights of all of the matched WeightedPodAffinityTerm 2003 fields are added per-node to find the most preferred 2004 node(s) 2005 properties: 2006 podAffinityTerm: 2007 description: Required. A pod affinity term, 2008 associated with the corresponding weight. 2009 properties: 2010 labelSelector: 2011 description: A label query over a set of 2012 resources, in this case pods. 2013 properties: 2014 matchExpressions: 2015 description: matchExpressions is a list 2016 of label selector requirements. The 2017 requirements are ANDed. 2018 items: 2019 description: A label selector requirement 2020 is a selector that contains values, 2021 a key, and an operator that relates 2022 the key and values. 2023 properties: 2024 key: 2025 description: key is the label 2026 key that the selector applies 2027 to. 2028 type: string 2029 operator: 2030 description: operator represents 2031 a key's relationship to a set 2032 of values. Valid operators are 2033 In, NotIn, Exists and DoesNotExist. 2034 type: string 2035 values: 2036 description: values is an array 2037 of string values. If the operator 2038 is In or NotIn, the values array 2039 must be non-empty. If the operator 2040 is Exists or DoesNotExist, the 2041 values array must be empty. 2042 This array is replaced during 2043 a strategic merge patch. 2044 items: 2045 type: string 2046 type: array 2047 required: 2048 - key 2049 - operator 2050 type: object 2051 type: array 2052 matchLabels: 2053 additionalProperties: 2054 type: string 2055 description: matchLabels is a map of 2056 {key,value} pairs. A single {key,value} 2057 in the matchLabels map is equivalent 2058 to an element of matchExpressions, 2059 whose key field is "key", the operator 2060 is "In", and the values array contains 2061 only "value". The requirements are 2062 ANDed. 2063 type: object 2064 type: object 2065 namespaces: 2066 description: namespaces specifies which 2067 namespaces the labelSelector applies to 2068 (matches against); null or empty list 2069 means "this pod's namespace" 2070 items: 2071 type: string 2072 type: array 2073 topologyKey: 2074 description: This pod should be co-located 2075 (affinity) or not co-located (anti-affinity) 2076 with the pods matching the labelSelector 2077 in the specified namespaces, where co-located 2078 is defined as running on a node whose 2079 value of the label with key topologyKey 2080 matches that of any node on which any 2081 of the selected pods is running. Empty 2082 topologyKey is not allowed. 2083 type: string 2084 required: 2085 - topologyKey 2086 type: object 2087 weight: 2088 description: weight associated with matching 2089 the corresponding podAffinityTerm, in the 2090 range 1-100. 2091 format: int32 2092 type: integer 2093 required: 2094 - podAffinityTerm 2095 - weight 2096 type: object 2097 type: array 2098 requiredDuringSchedulingIgnoredDuringExecution: 2099 description: If the affinity requirements specified 2100 by this field are not met at scheduling time, the 2101 pod will not be scheduled onto the node. If the 2102 affinity requirements specified by this field cease 2103 to be met at some point during pod execution (e.g. 2104 due to a pod label update), the system may or may 2105 not try to eventually evict the pod from its node. 2106 When there are multiple elements, the lists of nodes 2107 corresponding to each podAffinityTerm are intersected, 2108 i.e. all terms must be satisfied. 2109 items: 2110 description: Defines a set of pods (namely those 2111 matching the labelSelector relative to the given 2112 namespace(s)) that this pod should be co-located 2113 (affinity) or not co-located (anti-affinity) with, 2114 where co-located is defined as running on a node 2115 whose value of the label with key <topologyKey> 2116 matches that of any node on which a pod of the 2117 set of pods is running 2118 properties: 2119 labelSelector: 2120 description: A label query over a set of resources, 2121 in this case pods. 2122 properties: 2123 matchExpressions: 2124 description: matchExpressions is a list 2125 of label selector requirements. The requirements 2126 are ANDed. 2127 items: 2128 description: A label selector requirement 2129 is a selector that contains values, 2130 a key, and an operator that relates 2131 the key and values. 2132 properties: 2133 key: 2134 description: key is the label key 2135 that the selector applies to. 2136 type: string 2137 operator: 2138 description: operator represents a 2139 key's relationship to a set of values. 2140 Valid operators are In, NotIn, Exists 2141 and DoesNotExist. 2142 type: string 2143 values: 2144 description: values is an array of 2145 string values. If the operator is 2146 In or NotIn, the values array must 2147 be non-empty. If the operator is 2148 Exists or DoesNotExist, the values 2149 array must be empty. This array 2150 is replaced during a strategic merge 2151 patch. 2152 items: 2153 type: string 2154 type: array 2155 required: 2156 - key 2157 - operator 2158 type: object 2159 type: array 2160 matchLabels: 2161 additionalProperties: 2162 type: string 2163 description: matchLabels is a map of {key,value} 2164 pairs. A single {key,value} in the matchLabels 2165 map is equivalent to an element of matchExpressions, 2166 whose key field is "key", the operator 2167 is "In", and the values array contains 2168 only "value". The requirements are ANDed. 2169 type: object 2170 type: object 2171 namespaces: 2172 description: namespaces specifies which namespaces 2173 the labelSelector applies to (matches against); 2174 null or empty list means "this pod's namespace" 2175 items: 2176 type: string 2177 type: array 2178 topologyKey: 2179 description: This pod should be co-located (affinity) 2180 or not co-located (anti-affinity) with the 2181 pods matching the labelSelector in the specified 2182 namespaces, where co-located is defined as 2183 running on a node whose value of the label 2184 with key topologyKey matches that of any node 2185 on which any of the selected pods is running. 2186 Empty topologyKey is not allowed. 2187 type: string 2188 required: 2189 - topologyKey 2190 type: object 2191 type: array 2192 type: object 2193 podAntiAffinity: 2194 description: Describes pod anti-affinity scheduling rules 2195 (e.g. avoid putting this pod in the same node, zone, 2196 etc. as some other pod(s)). 2197 properties: 2198 preferredDuringSchedulingIgnoredDuringExecution: 2199 description: The scheduler will prefer to schedule 2200 pods to nodes that satisfy the anti-affinity expressions 2201 specified by this field, but it may choose a node 2202 that violates one or more of the expressions. The 2203 node that is most preferred is the one with the 2204 greatest sum of weights, i.e. for each node that 2205 meets all of the scheduling requirements (resource 2206 request, requiredDuringScheduling anti-affinity 2207 expressions, etc.), compute a sum by iterating through 2208 the elements of this field and adding "weight" to 2209 the sum if the node has pods which matches the corresponding 2210 podAffinityTerm; the node(s) with the highest sum 2211 are the most preferred. 2212 items: 2213 description: The weights of all of the matched WeightedPodAffinityTerm 2214 fields are added per-node to find the most preferred 2215 node(s) 2216 properties: 2217 podAffinityTerm: 2218 description: Required. A pod affinity term, 2219 associated with the corresponding weight. 2220 properties: 2221 labelSelector: 2222 description: A label query over a set of 2223 resources, in this case pods. 2224 properties: 2225 matchExpressions: 2226 description: matchExpressions is a list 2227 of label selector requirements. The 2228 requirements are ANDed. 2229 items: 2230 description: A label selector requirement 2231 is a selector that contains values, 2232 a key, and an operator that relates 2233 the key and values. 2234 properties: 2235 key: 2236 description: key is the label 2237 key that the selector applies 2238 to. 2239 type: string 2240 operator: 2241 description: operator represents 2242 a key's relationship to a set 2243 of values. Valid operators are 2244 In, NotIn, Exists and DoesNotExist. 2245 type: string 2246 values: 2247 description: values is an array 2248 of string values. If the operator 2249 is In or NotIn, the values array 2250 must be non-empty. If the operator 2251 is Exists or DoesNotExist, the 2252 values array must be empty. 2253 This array is replaced during 2254 a strategic merge patch. 2255 items: 2256 type: string 2257 type: array 2258 required: 2259 - key 2260 - operator 2261 type: object 2262 type: array 2263 matchLabels: 2264 additionalProperties: 2265 type: string 2266 description: matchLabels is a map of 2267 {key,value} pairs. A single {key,value} 2268 in the matchLabels map is equivalent 2269 to an element of matchExpressions, 2270 whose key field is "key", the operator 2271 is "In", and the values array contains 2272 only "value". The requirements are 2273 ANDed. 2274 type: object 2275 type: object 2276 namespaces: 2277 description: namespaces specifies which 2278 namespaces the labelSelector applies to 2279 (matches against); null or empty list 2280 means "this pod's namespace" 2281 items: 2282 type: string 2283 type: array 2284 topologyKey: 2285 description: This pod should be co-located 2286 (affinity) or not co-located (anti-affinity) 2287 with the pods matching the labelSelector 2288 in the specified namespaces, where co-located 2289 is defined as running on a node whose 2290 value of the label with key topologyKey 2291 matches that of any node on which any 2292 of the selected pods is running. Empty 2293 topologyKey is not allowed. 2294 type: string 2295 required: 2296 - topologyKey 2297 type: object 2298 weight: 2299 description: weight associated with matching 2300 the corresponding podAffinityTerm, in the 2301 range 1-100. 2302 format: int32 2303 type: integer 2304 required: 2305 - podAffinityTerm 2306 - weight 2307 type: object 2308 type: array 2309 requiredDuringSchedulingIgnoredDuringExecution: 2310 description: If the anti-affinity requirements specified 2311 by this field are not met at scheduling time, the 2312 pod will not be scheduled onto the node. If the 2313 anti-affinity requirements specified by this field 2314 cease to be met at some point during pod execution 2315 (e.g. due to a pod label update), the system may 2316 or may not try to eventually evict the pod from 2317 its node. When there are multiple elements, the 2318 lists of nodes corresponding to each podAffinityTerm 2319 are intersected, i.e. all terms must be satisfied. 2320 items: 2321 description: Defines a set of pods (namely those 2322 matching the labelSelector relative to the given 2323 namespace(s)) that this pod should be co-located 2324 (affinity) or not co-located (anti-affinity) with, 2325 where co-located is defined as running on a node 2326 whose value of the label with key <topologyKey> 2327 matches that of any node on which a pod of the 2328 set of pods is running 2329 properties: 2330 labelSelector: 2331 description: A label query over a set of resources, 2332 in this case pods. 2333 properties: 2334 matchExpressions: 2335 description: matchExpressions is a list 2336 of label selector requirements. The requirements 2337 are ANDed. 2338 items: 2339 description: A label selector requirement 2340 is a selector that contains values, 2341 a key, and an operator that relates 2342 the key and values. 2343 properties: 2344 key: 2345 description: key is the label key 2346 that the selector applies to. 2347 type: string 2348 operator: 2349 description: operator represents a 2350 key's relationship to a set of values. 2351 Valid operators are In, NotIn, Exists 2352 and DoesNotExist. 2353 type: string 2354 values: 2355 description: values is an array of 2356 string values. If the operator is 2357 In or NotIn, the values array must 2358 be non-empty. If the operator is 2359 Exists or DoesNotExist, the values 2360 array must be empty. This array 2361 is replaced during a strategic merge 2362 patch. 2363 items: 2364 type: string 2365 type: array 2366 required: 2367 - key 2368 - operator 2369 type: object 2370 type: array 2371 matchLabels: 2372 additionalProperties: 2373 type: string 2374 description: matchLabels is a map of {key,value} 2375 pairs. A single {key,value} in the matchLabels 2376 map is equivalent to an element of matchExpressions, 2377 whose key field is "key", the operator 2378 is "In", and the values array contains 2379 only "value". The requirements are ANDed. 2380 type: object 2381 type: object 2382 namespaces: 2383 description: namespaces specifies which namespaces 2384 the labelSelector applies to (matches against); 2385 null or empty list means "this pod's namespace" 2386 items: 2387 type: string 2388 type: array 2389 topologyKey: 2390 description: This pod should be co-located (affinity) 2391 or not co-located (anti-affinity) with the 2392 pods matching the labelSelector in the specified 2393 namespaces, where co-located is defined as 2394 running on a node whose value of the label 2395 with key topologyKey matches that of any node 2396 on which any of the selected pods is running. 2397 Empty topologyKey is not allowed. 2398 type: string 2399 required: 2400 - topologyKey 2401 type: object 2402 type: array 2403 type: object 2404 type: object 2405 nodeSelector: 2406 additionalProperties: 2407 type: string 2408 description: NodeSelector is the labels that will be used 2409 to select a node for pod scheduling 2410 type: object 2411 resources: 2412 description: Resources are the compute resources required 2413 by the jiva container. 2414 properties: 2415 limits: 2416 additionalProperties: 2417 anyOf: 2418 - type: integer 2419 - type: string 2420 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 2421 x-kubernetes-int-or-string: true 2422 description: 'Limits describes the maximum amount of compute 2423 resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' 2424 type: object 2425 requests: 2426 additionalProperties: 2427 anyOf: 2428 - type: integer 2429 - type: string 2430 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 2431 x-kubernetes-int-or-string: true 2432 description: 'Requests describes the minimum amount of 2433 compute resources required. If Requests is omitted for 2434 a container, it defaults to Limits if that is explicitly 2435 specified, otherwise to an implementation-defined value. 2436 More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' 2437 type: object 2438 type: object 2439 tolerations: 2440 description: Tolerations, if specified, are the pod's tolerations 2441 items: 2442 description: The pod this Toleration is attached to tolerates 2443 any taint that matches the triple <key,value,effect> using 2444 the matching operator <operator>. 2445 properties: 2446 effect: 2447 description: Effect indicates the taint effect to match. 2448 Empty means match all taint effects. When specified, 2449 allowed values are NoSchedule, PreferNoSchedule and 2450 NoExecute. 2451 type: string 2452 key: 2453 description: Key is the taint key that the toleration 2454 applies to. Empty means match all taint keys. If the 2455 key is empty, operator must be Exists; this combination 2456 means to match all values and all keys. 2457 type: string 2458 operator: 2459 description: Operator represents a key's relationship 2460 to the value. Valid operators are Exists and Equal. 2461 Defaults to Equal. Exists is equivalent to wildcard 2462 for value, so that a pod can tolerate all taints of 2463 a particular category. 2464 type: string 2465 tolerationSeconds: 2466 description: TolerationSeconds represents the period 2467 of time the toleration (which must be of effect NoExecute, 2468 otherwise this field is ignored) tolerates the taint. 2469 By default, it is not set, which means tolerate the 2470 taint forever (do not evict). Zero and negative values 2471 will be treated as 0 (evict immediately) by the system. 2472 format: int64 2473 type: integer 2474 value: 2475 description: Value is the taint value the toleration 2476 matches to. If the operator is Exists, the value should 2477 be empty, otherwise just a regular string. 2478 type: string 2479 type: object 2480 type: array 2481 type: object 2482 replicaSC: 2483 description: ReplicaSC represents the storage class used for creating 2484 the pvc for the replicas (provisioned by localpv provisioner) 2485 type: string 2486 serviceAccountName: 2487 description: ServiceAccountName can be provided to enable PSP 2488 type: string 2489 target: 2490 description: TargetSpec represents configuration related to jiva 2491 target and its resources 2492 nullable: true 2493 properties: 2494 affinity: 2495 description: Affinity if specified, are the pod's affinities 2496 properties: 2497 nodeAffinity: 2498 description: Describes node affinity scheduling rules 2499 for the pod. 2500 properties: 2501 preferredDuringSchedulingIgnoredDuringExecution: 2502 description: The scheduler will prefer to schedule 2503 pods to nodes that satisfy the affinity expressions 2504 specified by this field, but it may choose a node 2505 that violates one or more of the expressions. The 2506 node that is most preferred is the one with the 2507 greatest sum of weights, i.e. for each node that 2508 meets all of the scheduling requirements (resource 2509 request, requiredDuringScheduling affinity expressions, 2510 etc.), compute a sum by iterating through the elements 2511 of this field and adding "weight" to the sum if 2512 the node matches the corresponding matchExpressions; 2513 the node(s) with the highest sum are the most preferred. 2514 items: 2515 description: An empty preferred scheduling term 2516 matches all objects with implicit weight 0 (i.e. 2517 it's a no-op). A null preferred scheduling term 2518 matches no objects (i.e. is also a no-op). 2519 properties: 2520 preference: 2521 description: A node selector term, associated 2522 with the corresponding weight. 2523 properties: 2524 matchExpressions: 2525 description: A list of node selector requirements 2526 by node's labels. 2527 items: 2528 description: A node selector requirement 2529 is a selector that contains values, 2530 a key, and an operator that relates 2531 the key and values. 2532 properties: 2533 key: 2534 description: The label key that the 2535 selector applies to. 2536 type: string 2537 operator: 2538 description: Represents a key's relationship 2539 to a set of values. Valid operators 2540 are In, NotIn, Exists, DoesNotExist. 2541 Gt, and Lt. 2542 type: string 2543 values: 2544 description: An array of string values. 2545 If the operator is In or NotIn, 2546 the values array must be non-empty. 2547 If the operator is Exists or DoesNotExist, 2548 the values array must be empty. 2549 If the operator is Gt or Lt, the 2550 values array must have a single 2551 element, which will be interpreted 2552 as an integer. This array is replaced 2553 during a strategic merge patch. 2554 items: 2555 type: string 2556 type: array 2557 required: 2558 - key 2559 - operator 2560 type: object 2561 type: array 2562 matchFields: 2563 description: A list of node selector requirements 2564 by node's fields. 2565 items: 2566 description: A node selector requirement 2567 is a selector that contains values, 2568 a key, and an operator that relates 2569 the key and values. 2570 properties: 2571 key: 2572 description: The label key that the 2573 selector applies to. 2574 type: string 2575 operator: 2576 description: Represents a key's relationship 2577 to a set of values. Valid operators 2578 are In, NotIn, Exists, DoesNotExist. 2579 Gt, and Lt. 2580 type: string 2581 values: 2582 description: An array of string values. 2583 If the operator is In or NotIn, 2584 the values array must be non-empty. 2585 If the operator is Exists or DoesNotExist, 2586 the values array must be empty. 2587 If the operator is Gt or Lt, the 2588 values array must have a single 2589 element, which will be interpreted 2590 as an integer. This array is replaced 2591 during a strategic merge patch. 2592 items: 2593 type: string 2594 type: array 2595 required: 2596 - key 2597 - operator 2598 type: object 2599 type: array 2600 type: object 2601 weight: 2602 description: Weight associated with matching 2603 the corresponding nodeSelectorTerm, in the 2604 range 1-100. 2605 format: int32 2606 type: integer 2607 required: 2608 - preference 2609 - weight 2610 type: object 2611 type: array 2612 requiredDuringSchedulingIgnoredDuringExecution: 2613 description: If the affinity requirements specified 2614 by this field are not met at scheduling time, the 2615 pod will not be scheduled onto the node. If the 2616 affinity requirements specified by this field cease 2617 to be met at some point during pod execution (e.g. 2618 due to an update), the system may or may not try 2619 to eventually evict the pod from its node. 2620 properties: 2621 nodeSelectorTerms: 2622 description: Required. A list of node selector 2623 terms. The terms are ORed. 2624 items: 2625 description: A null or empty node selector term 2626 matches no objects. The requirements of them 2627 are ANDed. The TopologySelectorTerm type implements 2628 a subset of the NodeSelectorTerm. 2629 properties: 2630 matchExpressions: 2631 description: A list of node selector requirements 2632 by node's labels. 2633 items: 2634 description: A node selector requirement 2635 is a selector that contains values, 2636 a key, and an operator that relates 2637 the key and values. 2638 properties: 2639 key: 2640 description: The label key that the 2641 selector applies to. 2642 type: string 2643 operator: 2644 description: Represents a key's relationship 2645 to a set of values. Valid operators 2646 are In, NotIn, Exists, DoesNotExist. 2647 Gt, and Lt. 2648 type: string 2649 values: 2650 description: An array of string values. 2651 If the operator is In or NotIn, 2652 the values array must be non-empty. 2653 If the operator is Exists or DoesNotExist, 2654 the values array must be empty. 2655 If the operator is Gt or Lt, the 2656 values array must have a single 2657 element, which will be interpreted 2658 as an integer. This array is replaced 2659 during a strategic merge patch. 2660 items: 2661 type: string 2662 type: array 2663 required: 2664 - key 2665 - operator 2666 type: object 2667 type: array 2668 matchFields: 2669 description: A list of node selector requirements 2670 by node's fields. 2671 items: 2672 description: A node selector requirement 2673 is a selector that contains values, 2674 a key, and an operator that relates 2675 the key and values. 2676 properties: 2677 key: 2678 description: The label key that the 2679 selector applies to. 2680 type: string 2681 operator: 2682 description: Represents a key's relationship 2683 to a set of values. Valid operators 2684 are In, NotIn, Exists, DoesNotExist. 2685 Gt, and Lt. 2686 type: string 2687 values: 2688 description: An array of string values. 2689 If the operator is In or NotIn, 2690 the values array must be non-empty. 2691 If the operator is Exists or DoesNotExist, 2692 the values array must be empty. 2693 If the operator is Gt or Lt, the 2694 values array must have a single 2695 element, which will be interpreted 2696 as an integer. This array is replaced 2697 during a strategic merge patch. 2698 items: 2699 type: string 2700 type: array 2701 required: 2702 - key 2703 - operator 2704 type: object 2705 type: array 2706 type: object 2707 type: array 2708 required: 2709 - nodeSelectorTerms 2710 type: object 2711 type: object 2712 podAffinity: 2713 description: Describes pod affinity scheduling rules (e.g. 2714 co-locate this pod in the same node, zone, etc. as some 2715 other pod(s)). 2716 properties: 2717 preferredDuringSchedulingIgnoredDuringExecution: 2718 description: The scheduler will prefer to schedule 2719 pods to nodes that satisfy the affinity expressions 2720 specified by this field, but it may choose a node 2721 that violates one or more of the expressions. The 2722 node that is most preferred is the one with the 2723 greatest sum of weights, i.e. for each node that 2724 meets all of the scheduling requirements (resource 2725 request, requiredDuringScheduling affinity expressions, 2726 etc.), compute a sum by iterating through the elements 2727 of this field and adding "weight" to the sum if 2728 the node has pods which matches the corresponding 2729 podAffinityTerm; the node(s) with the highest sum 2730 are the most preferred. 2731 items: 2732 description: The weights of all of the matched WeightedPodAffinityTerm 2733 fields are added per-node to find the most preferred 2734 node(s) 2735 properties: 2736 podAffinityTerm: 2737 description: Required. A pod affinity term, 2738 associated with the corresponding weight. 2739 properties: 2740 labelSelector: 2741 description: A label query over a set of 2742 resources, in this case pods. 2743 properties: 2744 matchExpressions: 2745 description: matchExpressions is a list 2746 of label selector requirements. The 2747 requirements are ANDed. 2748 items: 2749 description: A label selector requirement 2750 is a selector that contains values, 2751 a key, and an operator that relates 2752 the key and values. 2753 properties: 2754 key: 2755 description: key is the label 2756 key that the selector applies 2757 to. 2758 type: string 2759 operator: 2760 description: operator represents 2761 a key's relationship to a set 2762 of values. Valid operators are 2763 In, NotIn, Exists and DoesNotExist. 2764 type: string 2765 values: 2766 description: values is an array 2767 of string values. If the operator 2768 is In or NotIn, the values array 2769 must be non-empty. If the operator 2770 is Exists or DoesNotExist, the 2771 values array must be empty. 2772 This array is replaced during 2773 a strategic merge patch. 2774 items: 2775 type: string 2776 type: array 2777 required: 2778 - key 2779 - operator 2780 type: object 2781 type: array 2782 matchLabels: 2783 additionalProperties: 2784 type: string 2785 description: matchLabels is a map of 2786 {key,value} pairs. A single {key,value} 2787 in the matchLabels map is equivalent 2788 to an element of matchExpressions, 2789 whose key field is "key", the operator 2790 is "In", and the values array contains 2791 only "value". The requirements are 2792 ANDed. 2793 type: object 2794 type: object 2795 namespaces: 2796 description: namespaces specifies which 2797 namespaces the labelSelector applies to 2798 (matches against); null or empty list 2799 means "this pod's namespace" 2800 items: 2801 type: string 2802 type: array 2803 topologyKey: 2804 description: This pod should be co-located 2805 (affinity) or not co-located (anti-affinity) 2806 with the pods matching the labelSelector 2807 in the specified namespaces, where co-located 2808 is defined as running on a node whose 2809 value of the label with key topologyKey 2810 matches that of any node on which any 2811 of the selected pods is running. Empty 2812 topologyKey is not allowed. 2813 type: string 2814 required: 2815 - topologyKey 2816 type: object 2817 weight: 2818 description: weight associated with matching 2819 the corresponding podAffinityTerm, in the 2820 range 1-100. 2821 format: int32 2822 type: integer 2823 required: 2824 - podAffinityTerm 2825 - weight 2826 type: object 2827 type: array 2828 requiredDuringSchedulingIgnoredDuringExecution: 2829 description: If the affinity requirements specified 2830 by this field are not met at scheduling time, the 2831 pod will not be scheduled onto the node. If the 2832 affinity requirements specified by this field cease 2833 to be met at some point during pod execution (e.g. 2834 due to a pod label update), the system may or may 2835 not try to eventually evict the pod from its node. 2836 When there are multiple elements, the lists of nodes 2837 corresponding to each podAffinityTerm are intersected, 2838 i.e. all terms must be satisfied. 2839 items: 2840 description: Defines a set of pods (namely those 2841 matching the labelSelector relative to the given 2842 namespace(s)) that this pod should be co-located 2843 (affinity) or not co-located (anti-affinity) with, 2844 where co-located is defined as running on a node 2845 whose value of the label with key <topologyKey> 2846 matches that of any node on which a pod of the 2847 set of pods is running 2848 properties: 2849 labelSelector: 2850 description: A label query over a set of resources, 2851 in this case pods. 2852 properties: 2853 matchExpressions: 2854 description: matchExpressions is a list 2855 of label selector requirements. The requirements 2856 are ANDed. 2857 items: 2858 description: A label selector requirement 2859 is a selector that contains values, 2860 a key, and an operator that relates 2861 the key and values. 2862 properties: 2863 key: 2864 description: key is the label key 2865 that the selector applies to. 2866 type: string 2867 operator: 2868 description: operator represents a 2869 key's relationship to a set of values. 2870 Valid operators are In, NotIn, Exists 2871 and DoesNotExist. 2872 type: string 2873 values: 2874 description: values is an array of 2875 string values. If the operator is 2876 In or NotIn, the values array must 2877 be non-empty. If the operator is 2878 Exists or DoesNotExist, the values 2879 array must be empty. This array 2880 is replaced during a strategic merge 2881 patch. 2882 items: 2883 type: string 2884 type: array 2885 required: 2886 - key 2887 - operator 2888 type: object 2889 type: array 2890 matchLabels: 2891 additionalProperties: 2892 type: string 2893 description: matchLabels is a map of {key,value} 2894 pairs. A single {key,value} in the matchLabels 2895 map is equivalent to an element of matchExpressions, 2896 whose key field is "key", the operator 2897 is "In", and the values array contains 2898 only "value". The requirements are ANDed. 2899 type: object 2900 type: object 2901 namespaces: 2902 description: namespaces specifies which namespaces 2903 the labelSelector applies to (matches against); 2904 null or empty list means "this pod's namespace" 2905 items: 2906 type: string 2907 type: array 2908 topologyKey: 2909 description: This pod should be co-located (affinity) 2910 or not co-located (anti-affinity) with the 2911 pods matching the labelSelector in the specified 2912 namespaces, where co-located is defined as 2913 running on a node whose value of the label 2914 with key topologyKey matches that of any node 2915 on which any of the selected pods is running. 2916 Empty topologyKey is not allowed. 2917 type: string 2918 required: 2919 - topologyKey 2920 type: object 2921 type: array 2922 type: object 2923 podAntiAffinity: 2924 description: Describes pod anti-affinity scheduling rules 2925 (e.g. avoid putting this pod in the same node, zone, 2926 etc. as some other pod(s)). 2927 properties: 2928 preferredDuringSchedulingIgnoredDuringExecution: 2929 description: The scheduler will prefer to schedule 2930 pods to nodes that satisfy the anti-affinity expressions 2931 specified by this field, but it may choose a node 2932 that violates one or more of the expressions. The 2933 node that is most preferred is the one with the 2934 greatest sum of weights, i.e. for each node that 2935 meets all of the scheduling requirements (resource 2936 request, requiredDuringScheduling anti-affinity 2937 expressions, etc.), compute a sum by iterating through 2938 the elements of this field and adding "weight" to 2939 the sum if the node has pods which matches the corresponding 2940 podAffinityTerm; the node(s) with the highest sum 2941 are the most preferred. 2942 items: 2943 description: The weights of all of the matched WeightedPodAffinityTerm 2944 fields are added per-node to find the most preferred 2945 node(s) 2946 properties: 2947 podAffinityTerm: 2948 description: Required. A pod affinity term, 2949 associated with the corresponding weight. 2950 properties: 2951 labelSelector: 2952 description: A label query over a set of 2953 resources, in this case pods. 2954 properties: 2955 matchExpressions: 2956 description: matchExpressions is a list 2957 of label selector requirements. The 2958 requirements are ANDed. 2959 items: 2960 description: A label selector requirement 2961 is a selector that contains values, 2962 a key, and an operator that relates 2963 the key and values. 2964 properties: 2965 key: 2966 description: key is the label 2967 key that the selector applies 2968 to. 2969 type: string 2970 operator: 2971 description: operator represents 2972 a key's relationship to a set 2973 of values. Valid operators are 2974 In, NotIn, Exists and DoesNotExist. 2975 type: string 2976 values: 2977 description: values is an array 2978 of string values. If the operator 2979 is In or NotIn, the values array 2980 must be non-empty. If the operator 2981 is Exists or DoesNotExist, the 2982 values array must be empty. 2983 This array is replaced during 2984 a strategic merge patch. 2985 items: 2986 type: string 2987 type: array 2988 required: 2989 - key 2990 - operator 2991 type: object 2992 type: array 2993 matchLabels: 2994 additionalProperties: 2995 type: string 2996 description: matchLabels is a map of 2997 {key,value} pairs. A single {key,value} 2998 in the matchLabels map is equivalent 2999 to an element of matchExpressions, 3000 whose key field is "key", the operator 3001 is "In", and the values array contains 3002 only "value". The requirements are 3003 ANDed. 3004 type: object 3005 type: object 3006 namespaces: 3007 description: namespaces specifies which 3008 namespaces the labelSelector applies to 3009 (matches against); null or empty list 3010 means "this pod's namespace" 3011 items: 3012 type: string 3013 type: array 3014 topologyKey: 3015 description: This pod should be co-located 3016 (affinity) or not co-located (anti-affinity) 3017 with the pods matching the labelSelector 3018 in the specified namespaces, where co-located 3019 is defined as running on a node whose 3020 value of the label with key topologyKey 3021 matches that of any node on which any 3022 of the selected pods is running. Empty 3023 topologyKey is not allowed. 3024 type: string 3025 required: 3026 - topologyKey 3027 type: object 3028 weight: 3029 description: weight associated with matching 3030 the corresponding podAffinityTerm, in the 3031 range 1-100. 3032 format: int32 3033 type: integer 3034 required: 3035 - podAffinityTerm 3036 - weight 3037 type: object 3038 type: array 3039 requiredDuringSchedulingIgnoredDuringExecution: 3040 description: If the anti-affinity requirements specified 3041 by this field are not met at scheduling time, the 3042 pod will not be scheduled onto the node. If the 3043 anti-affinity requirements specified by this field 3044 cease to be met at some point during pod execution 3045 (e.g. due to a pod label update), the system may 3046 or may not try to eventually evict the pod from 3047 its node. When there are multiple elements, the 3048 lists of nodes corresponding to each podAffinityTerm 3049 are intersected, i.e. all terms must be satisfied. 3050 items: 3051 description: Defines a set of pods (namely those 3052 matching the labelSelector relative to the given 3053 namespace(s)) that this pod should be co-located 3054 (affinity) or not co-located (anti-affinity) with, 3055 where co-located is defined as running on a node 3056 whose value of the label with key <topologyKey> 3057 matches that of any node on which a pod of the 3058 set of pods is running 3059 properties: 3060 labelSelector: 3061 description: A label query over a set of resources, 3062 in this case pods. 3063 properties: 3064 matchExpressions: 3065 description: matchExpressions is a list 3066 of label selector requirements. The requirements 3067 are ANDed. 3068 items: 3069 description: A label selector requirement 3070 is a selector that contains values, 3071 a key, and an operator that relates 3072 the key and values. 3073 properties: 3074 key: 3075 description: key is the label key 3076 that the selector applies to. 3077 type: string 3078 operator: 3079 description: operator represents a 3080 key's relationship to a set of values. 3081 Valid operators are In, NotIn, Exists 3082 and DoesNotExist. 3083 type: string 3084 values: 3085 description: values is an array of 3086 string values. If the operator is 3087 In or NotIn, the values array must 3088 be non-empty. If the operator is 3089 Exists or DoesNotExist, the values 3090 array must be empty. This array 3091 is replaced during a strategic merge 3092 patch. 3093 items: 3094 type: string 3095 type: array 3096 required: 3097 - key 3098 - operator 3099 type: object 3100 type: array 3101 matchLabels: 3102 additionalProperties: 3103 type: string 3104 description: matchLabels is a map of {key,value} 3105 pairs. A single {key,value} in the matchLabels 3106 map is equivalent to an element of matchExpressions, 3107 whose key field is "key", the operator 3108 is "In", and the values array contains 3109 only "value". The requirements are ANDed. 3110 type: object 3111 type: object 3112 namespaces: 3113 description: namespaces specifies which namespaces 3114 the labelSelector applies to (matches against); 3115 null or empty list means "this pod's namespace" 3116 items: 3117 type: string 3118 type: array 3119 topologyKey: 3120 description: This pod should be co-located (affinity) 3121 or not co-located (anti-affinity) with the 3122 pods matching the labelSelector in the specified 3123 namespaces, where co-located is defined as 3124 running on a node whose value of the label 3125 with key topologyKey matches that of any node 3126 on which any of the selected pods is running. 3127 Empty topologyKey is not allowed. 3128 type: string 3129 required: 3130 - topologyKey 3131 type: object 3132 type: array 3133 type: object 3134 type: object 3135 auxResources: 3136 description: AuxResources are the compute resources required 3137 by the jiva-target pod side car containers. 3138 properties: 3139 limits: 3140 additionalProperties: 3141 anyOf: 3142 - type: integer 3143 - type: string 3144 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 3145 x-kubernetes-int-or-string: true 3146 description: 'Limits describes the maximum amount of compute 3147 resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' 3148 type: object 3149 requests: 3150 additionalProperties: 3151 anyOf: 3152 - type: integer 3153 - type: string 3154 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 3155 x-kubernetes-int-or-string: true 3156 description: 'Requests describes the minimum amount of 3157 compute resources required. If Requests is omitted for 3158 a container, it defaults to Limits if that is explicitly 3159 specified, otherwise to an implementation-defined value. 3160 More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' 3161 type: object 3162 type: object 3163 monitor: 3164 description: Monitor enables or disables the target exporter 3165 sidecar 3166 type: boolean 3167 nodeSelector: 3168 additionalProperties: 3169 type: string 3170 description: NodeSelector is the labels that will be used 3171 to select a node for pod scheduling 3172 type: object 3173 replicationFactor: 3174 description: ReplicationFactor represents maximum number of 3175 replicas that are allowed to connect to the target 3176 type: integer 3177 resources: 3178 description: Resources are the compute resources required 3179 by the jiva container. 3180 properties: 3181 limits: 3182 additionalProperties: 3183 anyOf: 3184 - type: integer 3185 - type: string 3186 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 3187 x-kubernetes-int-or-string: true 3188 description: 'Limits describes the maximum amount of compute 3189 resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' 3190 type: object 3191 requests: 3192 additionalProperties: 3193 anyOf: 3194 - type: integer 3195 - type: string 3196 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 3197 x-kubernetes-int-or-string: true 3198 description: 'Requests describes the minimum amount of 3199 compute resources required. If Requests is omitted for 3200 a container, it defaults to Limits if that is explicitly 3201 specified, otherwise to an implementation-defined value. 3202 More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' 3203 type: object 3204 type: object 3205 tolerations: 3206 description: Tolerations, if specified, are the pod's tolerations 3207 items: 3208 description: The pod this Toleration is attached to tolerates 3209 any taint that matches the triple <key,value,effect> using 3210 the matching operator <operator>. 3211 properties: 3212 effect: 3213 description: Effect indicates the taint effect to match. 3214 Empty means match all taint effects. When specified, 3215 allowed values are NoSchedule, PreferNoSchedule and 3216 NoExecute. 3217 type: string 3218 key: 3219 description: Key is the taint key that the toleration 3220 applies to. Empty means match all taint keys. If the 3221 key is empty, operator must be Exists; this combination 3222 means to match all values and all keys. 3223 type: string 3224 operator: 3225 description: Operator represents a key's relationship 3226 to the value. Valid operators are Exists and Equal. 3227 Defaults to Equal. Exists is equivalent to wildcard 3228 for value, so that a pod can tolerate all taints of 3229 a particular category. 3230 type: string 3231 tolerationSeconds: 3232 description: TolerationSeconds represents the period 3233 of time the toleration (which must be of effect NoExecute, 3234 otherwise this field is ignored) tolerates the taint. 3235 By default, it is not set, which means tolerate the 3236 taint forever (do not evict). Zero and negative values 3237 will be treated as 0 (evict immediately) by the system. 3238 format: int64 3239 type: integer 3240 value: 3241 description: Value is the taint value the toleration 3242 matches to. If the operator is Exists, the value should 3243 be empty, otherwise just a regular string. 3244 type: string 3245 type: object 3246 type: array 3247 type: object 3248 required: 3249 - autoScaling 3250 - enableBufio 3251 type: object 3252 pv: 3253 type: string 3254 required: 3255 - accessType 3256 - capacity 3257 - pv 3258 type: object 3259 status: 3260 description: JivaVolumeStatus defines the observed state of JivaVolume 3261 properties: 3262 phase: 3263 description: Phase represents the current phase of JivaVolume. 3264 type: string 3265 replicaCount: 3266 type: integer 3267 replicaStatus: 3268 items: 3269 description: ReplicaStatus stores the status of replicas 3270 properties: 3271 address: 3272 type: string 3273 mode: 3274 type: string 3275 type: object 3276 nullable: true 3277 type: array 3278 status: 3279 type: string 3280 type: object 3281 versionDetails: 3282 description: VersionDetails provides the details for upgrade 3283 properties: 3284 autoUpgrade: 3285 description: If AutoUpgrade is set to true then the resource is upgraded 3286 automatically without any manual steps 3287 type: boolean 3288 desired: 3289 description: Desired is the version that we want to upgrade or the 3290 control plane version 3291 type: string 3292 status: 3293 description: Status gives the status of reconciliation triggered when 3294 the desired and current version are not same 3295 properties: 3296 current: 3297 description: Current is the version of resource 3298 type: string 3299 dependentsUpgraded: 3300 description: DependentsUpgraded gives the details whether all 3301 children of a resource are upgraded to desired version or not 3302 type: boolean 3303 lastUpdateTime: 3304 description: LastUpdateTime is the time the status was last updated 3305 format: date-time 3306 nullable: true 3307 type: string 3308 message: 3309 description: Message is a human readable message if some error 3310 occurs 3311 type: string 3312 reason: 3313 description: Reason is the actual reason for the error state 3314 type: string 3315 state: 3316 description: State is the state of reconciliation 3317 type: string 3318 type: object 3319 type: object 3320 type: object 3321 served: true 3322 storage: true 3323 subresources: { } 3324 status: 3325 acceptedNames: 3326 kind: "" 3327 plural: "" 3328 conditions: [ ] 3329 storedVersions: [ ] 3330 --- 3331 apiVersion: apiextensions.k8s.io/v1 3332 kind: CustomResourceDefinition 3333 metadata: 3334 annotations: 3335 controller-gen.kubebuilder.io/version: v0.4.0 3336 creationTimestamp: null 3337 name: upgradetasks.openebs.io 3338 spec: 3339 group: openebs.io 3340 names: 3341 kind: UpgradeTask 3342 listKind: UpgradeTaskList 3343 plural: upgradetasks 3344 singular: upgradetask 3345 scope: Namespaced 3346 versions: 3347 - name: v1alpha1 3348 schema: 3349 openAPIV3Schema: 3350 description: UpgradeTask represents an upgrade task 3351 properties: 3352 apiVersion: 3353 description: 'APIVersion defines the versioned schema of this representation 3354 of an object. Servers should convert recognized schemas to the latest 3355 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 3356 type: string 3357 kind: 3358 description: 'Kind is a string value representing the REST resource this 3359 object represents. Servers may infer this from the endpoint the client 3360 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 3361 type: string 3362 metadata: 3363 type: object 3364 spec: 3365 description: Spec i.e. specifications of the UpgradeTask 3366 properties: 3367 cstorPool: 3368 description: CStorPool contains the details of the cstor pool to be 3369 upgraded 3370 properties: 3371 options: 3372 description: Options can be used to change the default behaviour 3373 of upgrade 3374 properties: 3375 ignoreStepsOnError: 3376 description: IgnoreStepsOnError allows to ignore steps which 3377 failed 3378 items: 3379 type: string 3380 type: array 3381 type: object 3382 poolName: 3383 description: PoolName contains the name of the cstor pool to be 3384 upgraded 3385 type: string 3386 type: object 3387 cstorPoolCluster: 3388 description: CStorPoolCluster contains the details of the storage 3389 pool claim to be upgraded 3390 properties: 3391 cspcName: 3392 description: CSPCName contains the name of the storage pool claim 3393 to be upgraded 3394 type: string 3395 options: 3396 description: Options can be used to change the default behaviour 3397 of upgrade 3398 properties: 3399 ignoreStepsOnError: 3400 description: IgnoreStepsOnError allows to ignore steps which 3401 failed 3402 items: 3403 type: string 3404 type: array 3405 type: object 3406 type: object 3407 cstorPoolInstance: 3408 description: CStorPoolInstance contains the details of the cstor pool 3409 to be upgraded 3410 properties: 3411 cspiName: 3412 description: CSPCName contains the name of the storage pool claim 3413 to be upgraded 3414 type: string 3415 options: 3416 description: Options can be used to change the default behaviour 3417 of upgrade 3418 properties: 3419 ignoreStepsOnError: 3420 description: IgnoreStepsOnError allows to ignore steps which 3421 failed 3422 items: 3423 type: string 3424 type: array 3425 type: object 3426 type: object 3427 cstorVolume: 3428 description: CStorVolume contains the details of the cstor volume 3429 to be upgraded 3430 properties: 3431 options: 3432 description: Options can be used to change the default behaviour 3433 of upgrade 3434 properties: 3435 ignoreStepsOnError: 3436 description: IgnoreStepsOnError allows to ignore steps which 3437 failed 3438 items: 3439 type: string 3440 type: array 3441 type: object 3442 pvName: 3443 description: PVName contains the name of the pv associated with 3444 the cstor volume 3445 type: string 3446 type: object 3447 fromVersion: 3448 description: FromVersion is the current version of the resource. 3449 type: string 3450 imagePrefix: 3451 description: ImagePrefix contains the url prefix of the image url. 3452 This field is optional. If not present upgrade takes the previously 3453 present ImagePrefix. 3454 type: string 3455 imageTag: 3456 description: ImageTag contains the customized tag for ToVersion if 3457 any. This field is optional. If not present upgrade takes the ToVersion 3458 as the ImageTag 3459 type: string 3460 jivaVolume: 3461 description: JivaVolume contains the details of the jiva volume to 3462 be upgraded 3463 properties: 3464 options: 3465 description: Options can be used to change the default behaviour 3466 of upgrade 3467 properties: 3468 ignoreStepsOnError: 3469 description: IgnoreStepsOnError allows to ignore steps which 3470 failed 3471 items: 3472 type: string 3473 type: array 3474 type: object 3475 pvName: 3476 description: PVName contains the name of the pv associated with 3477 the jiva volume 3478 type: string 3479 type: object 3480 options: 3481 description: Options contains the optional flags that can be passed 3482 during upgrade. 3483 properties: 3484 timeout: 3485 description: Timeout is maximum seconds to wait at any given step 3486 in the upgrade 3487 type: integer 3488 type: object 3489 storagePoolClaim: 3490 description: StoragePoolClaim contains the details of the storage 3491 pool claim to be upgraded 3492 properties: 3493 options: 3494 description: Options can be used to change the default behaviour 3495 of upgrade 3496 properties: 3497 ignoreStepsOnError: 3498 description: IgnoreStepsOnError allows to ignore steps which 3499 failed 3500 items: 3501 type: string 3502 type: array 3503 type: object 3504 spcName: 3505 description: SPCName contains the name of the storage pool claim 3506 to be upgraded 3507 type: string 3508 type: object 3509 toVersion: 3510 description: ToVersion is the upgraded version of the resource. It 3511 should be same as the version of control plane components version. 3512 type: string 3513 required: 3514 - fromVersion 3515 - toVersion 3516 type: object 3517 status: 3518 description: Status of UpgradeTask 3519 properties: 3520 completedTime: 3521 description: CompletedTime of Upgrade 3522 format: date-time 3523 nullable: true 3524 type: string 3525 phase: 3526 description: Phase indicates if a upgradeTask is started, success 3527 or errored 3528 type: string 3529 retries: 3530 description: Retries is the number of times the job attempted to upgrade 3531 the resource 3532 type: integer 3533 startTime: 3534 description: StartTime of Upgrade 3535 format: date-time 3536 nullable: true 3537 type: string 3538 upgradeDetailedStatuses: 3539 description: UpgradeDetailedStatuses contains the list of statuses 3540 of each step 3541 items: 3542 description: UpgradeDetailedStatuses represents the latest available 3543 observations of a UpgradeTask current state. 3544 properties: 3545 lastUpdatedAt: 3546 description: LastUpdatedTime of a UpgradeStep 3547 format: date-time 3548 nullable: true 3549 type: string 3550 message: 3551 description: A human-readable message indicating details about 3552 why the upgradeStep is in this state 3553 type: string 3554 phase: 3555 description: Phase indicates if the UpgradeStep is waiting, 3556 errored or completed. 3557 type: string 3558 reason: 3559 description: Reason is a brief CamelCase string that describes 3560 any failure and is meant for machine parsing and tidy display 3561 in the CLI 3562 type: string 3563 startTime: 3564 description: StartTime of a UpgradeStep 3565 format: date-time 3566 nullable: true 3567 type: string 3568 step: 3569 description: UpgradeStep is the current step being performed 3570 for a particular resource upgrade 3571 type: string 3572 type: object 3573 type: array 3574 type: object 3575 required: 3576 - spec 3577 type: object 3578 served: true 3579 storage: true 3580 status: 3581 acceptedNames: 3582 kind: "" 3583 plural: "" 3584 conditions: [ ] 3585 storedVersions: [ ] 3586 --- 3587 apiVersion: v1 3588 kind: ServiceAccount 3589 metadata: 3590 name: jiva-operator 3591 namespace: openebs 3592 --- 3593 apiVersion: rbac.authorization.k8s.io/v1 3594 kind: ClusterRole 3595 metadata: 3596 creationTimestamp: null 3597 name: jiva-operator 3598 namespace: openebs 3599 rules: 3600 - apiGroups: 3601 - "" 3602 resources: 3603 - pods 3604 - services 3605 - services/finalizers 3606 - endpoints 3607 - persistentvolumes 3608 - persistentvolumeclaims 3609 - events 3610 - configmaps 3611 - secrets 3612 verbs: 3613 - '*' 3614 - apiGroups: 3615 - apps 3616 resources: 3617 - deployments 3618 - daemonsets 3619 - replicasets 3620 - statefulsets 3621 verbs: 3622 - '*' 3623 - apiGroups: 3624 - monitoring.coreos.com 3625 resources: 3626 - servicemonitors 3627 verbs: 3628 - get 3629 - create 3630 - apiGroups: 3631 - apps 3632 resourceNames: 3633 - jiva-operator 3634 resources: 3635 - deployments/finalizers 3636 verbs: 3637 - update 3638 - apiGroups: 3639 - "" 3640 resources: 3641 - nodes 3642 verbs: 3643 - get 3644 - list 3645 - watch 3646 - apiGroups: 3647 - apps 3648 resources: 3649 - replicasets 3650 verbs: 3651 - get 3652 - apiGroups: 3653 - policy 3654 resources: 3655 - poddisruptionbudgets 3656 verbs: 3657 - '*' 3658 - apiGroups: 3659 - openebs.io 3660 resources: 3661 - '*' 3662 verbs: 3663 - '*' 3664 --- 3665 kind: ClusterRoleBinding 3666 apiVersion: rbac.authorization.k8s.io/v1 3667 metadata: 3668 name: jiva-operator 3669 namespace: openebs 3670 subjects: 3671 - kind: ServiceAccount 3672 name: jiva-operator 3673 namespace: openebs 3674 roleRef: 3675 kind: ClusterRole 3676 name: jiva-operator 3677 apiGroup: rbac.authorization.k8s.io 3678 --- 3679 apiVersion: apps/v1 3680 kind: Deployment 3681 metadata: 3682 name: jiva-operator 3683 namespace: openebs 3684 labels: 3685 openebs.io/component-name: jiva-operator 3686 openebs.io/version: 2.11.0 3687 name: jiva-operator 3688 spec: 3689 replicas: 1 3690 selector: 3691 matchLabels: 3692 name: jiva-operator 3693 template: 3694 metadata: 3695 labels: 3696 name: jiva-operator 3697 openebs.io/component-name: jiva-operator 3698 openebs.io/version: 2.11.0 3699 spec: 3700 serviceAccountName: jiva-operator 3701 containers: 3702 - name: jiva-operator 3703 # Replace this with the built image name 3704 image: openebs/jiva-operator:2.11.0 3705 command: 3706 - jiva-operator 3707 imagePullPolicy: IfNotPresent 3708 env: 3709 - name: OPENEBS_NAMESPACE 3710 valueFrom: 3711 fieldRef: 3712 fieldPath: metadata.namespace 3713 - name: POD_NAME 3714 valueFrom: 3715 fieldRef: 3716 fieldPath: metadata.name 3717 - name: OPENEBS_SERVICEACCOUNT_NAME 3718 valueFrom: 3719 fieldRef: 3720 fieldPath: spec.serviceAccountName 3721 - name: OPERATOR_NAME 3722 value: "jiva-operator" 3723 - name: OPENEBS_IO_JIVA_CONTROLLER_IMAGE 3724 value: "openebs/jiva:2.11.0" 3725 - name: OPENEBS_IO_JIVA_REPLICA_IMAGE 3726 value: "openebs/jiva:2.11.0" 3727 livenessProbe: 3728 httpGet: 3729 path: /healthz 3730 port: 8282 3731 initialDelaySeconds: 15 3732 periodSeconds: 20 3733 readinessProbe: 3734 httpGet: 3735 path: /readyz 3736 port: 8282 3737 initialDelaySeconds: 5 3738 periodSeconds: 10 3739 terminationGracePeriodSeconds: 10 3740 --- 3741 3742 apiVersion: storage.k8s.io/v1 3743 kind: CSIDriver 3744 metadata: 3745 name: jiva.csi.openebs.io 3746 spec: 3747 attachRequired: false 3748 podInfoOnMount: true 3749 3750 --- 3751 3752 ############################################## 3753 ########### ############ 3754 ########### Controller plugin ############ 3755 ########### ############ 3756 ############################################## 3757 3758 kind: ServiceAccount 3759 apiVersion: v1 3760 metadata: 3761 name: openebs-jiva-csi-controller-sa 3762 namespace: openebs 3763 3764 --- 3765 3766 kind: ClusterRole 3767 apiVersion: rbac.authorization.k8s.io/v1 3768 metadata: 3769 name: openebs-jiva-csi-role 3770 rules: 3771 - apiGroups: [ "" ] 3772 resources: [ "secrets","namespaces" ] 3773 verbs: [ "get", "list" ] 3774 - apiGroups: [ "" ] 3775 resources: [ "pods" ] 3776 verbs: [ "get", "list", "watch" ] 3777 - apiGroups: [ "" ] 3778 resources: [ "persistentvolumes", "services" ] 3779 verbs: [ "get", "list", "watch", "create", "delete", "update", "patch" ] 3780 - apiGroups: [ "" ] 3781 resources: [ "persistentvolumeclaims" ] 3782 verbs: [ "get", "list", "watch", "update" ] 3783 - apiGroups: [ "" ] 3784 resources: [ "persistentvolumeclaims/status" ] 3785 verbs: [ "update", "patch" ] 3786 - apiGroups: [ "storage.k8s.io" ] 3787 resources: [ "storageclasses", "csinodes" ] 3788 verbs: [ "get", "list", "watch" ] 3789 - apiGroups: [ "" ] 3790 resources: [ "events" ] 3791 verbs: [ "list", "watch", "create", "update", "patch" ] 3792 - apiGroups: [ "coordination.k8s.io" ] 3793 resources: [ "leases" ] 3794 verbs: [ "*" ] 3795 - apiGroups: [ "storage.k8s.io" ] 3796 resources: [ "volumeattachments" ] 3797 verbs: [ "get", "list", "watch", "create", "delete", "update", "patch" ] 3798 - apiGroups: [ "*" ] 3799 resources: [ "jivavolumes", "jivavolumepolicies" ] 3800 verbs: [ "*" ] 3801 3802 --- 3803 3804 kind: ClusterRoleBinding 3805 apiVersion: rbac.authorization.k8s.io/v1 3806 metadata: 3807 name: openebs-jiva-csi-binding 3808 subjects: 3809 - kind: ServiceAccount 3810 name: openebs-jiva-csi-controller-sa 3811 namespace: openebs 3812 roleRef: 3813 kind: ClusterRole 3814 name: openebs-jiva-csi-role 3815 apiGroup: rbac.authorization.k8s.io 3816 3817 --- 3818 3819 kind: StatefulSet 3820 apiVersion: apps/v1 3821 metadata: 3822 name: openebs-jiva-csi-controller 3823 namespace: openebs 3824 labels: 3825 name: openebs-jiva-csi-controller 3826 openebs.io/component-name: openebs-jiva-csi-controller 3827 openebs.io/version: 2.11.0 3828 spec: 3829 selector: 3830 matchLabels: 3831 app: openebs-jiva-csi-controller 3832 role: openebs-jiva-csi 3833 name: openebs-jiva-csi-controller 3834 openebs.io/component-name: openebs-jiva-csi-controller 3835 serviceName: "openebs-jiva-csi" 3836 replicas: 1 3837 template: 3838 metadata: 3839 labels: 3840 app: openebs-jiva-csi-controller 3841 role: openebs-jiva-csi 3842 name: openebs-jiva-csi-controller 3843 openebs.io/component-name: openebs-jiva-csi-controller 3844 openebs.io/version: 2.11.0 3845 spec: 3846 priorityClassName: system-cluster-critical 3847 serviceAccount: openebs-jiva-csi-controller-sa 3848 containers: 3849 - name: csi-provisioner 3850 image: k8s.gcr.io/sig-storage/csi-provisioner:v2.1.0 3851 args: 3852 - "--csi-address=$(ADDRESS)" 3853 - "--v=5" 3854 - "--feature-gates=Topology=true" 3855 - "--extra-create-metadata=true" 3856 - "--metrics-address=:22011" 3857 - "--timeout=250s" 3858 - "--default-fstype=ext4" 3859 env: 3860 - name: MY_NAME 3861 valueFrom: 3862 fieldRef: 3863 fieldPath: metadata.name 3864 - name: ADDRESS 3865 value: /var/lib/csi/sockets/pluginproxy/csi.sock 3866 volumeMounts: 3867 - name: socket-dir 3868 mountPath: /var/lib/csi/sockets/pluginproxy/ 3869 - name: csi-attacher 3870 image: k8s.gcr.io/sig-storage/csi-attacher:v3.1.0 3871 args: 3872 - "--v=5" 3873 - "--csi-address=$(ADDRESS)" 3874 env: 3875 - name: ADDRESS 3876 value: /var/lib/csi/sockets/pluginproxy/csi.sock 3877 volumeMounts: 3878 - name: socket-dir 3879 mountPath: /var/lib/csi/sockets/pluginproxy/ 3880 - name: jiva-csi-plugin 3881 image: openebs/jiva-csi:2.11.0 3882 env: 3883 - name: OPENEBS_JIVA_CSI_CONTROLLER 3884 value: controller 3885 - name: OPENEBS_JIVA_CSI_ENDPOINT 3886 value: unix:///var/lib/csi/sockets/pluginproxy/csi.sock 3887 - name: OPENEBS_NAMESPACE 3888 valueFrom: 3889 fieldRef: 3890 fieldPath: metadata.namespace 3891 - name: OPENEBS_NODEID 3892 valueFrom: 3893 fieldRef: 3894 apiVersion: v1 3895 fieldPath: spec.nodeName 3896 - name: OPENEBS_IO_INSTALLER_TYPE 3897 value: "jiva-operator" 3898 - name: OPENEBS_IO_ENABLE_ANALYTICS 3899 value: "true" 3900 args: 3901 - "--endpoint=$(OPENEBS_JIVA_CSI_ENDPOINT)" 3902 - "--plugin=$(OPENEBS_JIVA_CSI_CONTROLLER)" 3903 - "--name=jiva.csi.openebs.io" 3904 - "--nodeid=$(OPENEBS_NODEID)" 3905 # logging level for klog library used in k8s packages 3906 # - "--v=5" 3907 # retry count to check if volume is ready in volume expand call 3908 - "--retrycount=20" 3909 volumeMounts: 3910 - name: socket-dir 3911 mountPath: /var/lib/csi/sockets/pluginproxy/ 3912 - name: csi-resizer 3913 image: k8s.gcr.io/sig-storage/csi-resizer:v1.1.0 3914 args: 3915 - "--v=5" 3916 - "--csi-address=$(ADDRESS)" 3917 - "--leader-election" 3918 env: 3919 - name: ADDRESS 3920 value: /var/lib/csi/sockets/pluginproxy/csi.sock 3921 volumeMounts: 3922 - name: socket-dir 3923 mountPath: /var/lib/csi/sockets/pluginproxy/ 3924 - name: liveness-probe 3925 volumeMounts: 3926 - mountPath: /csi 3927 name: socket-dir 3928 image: k8s.gcr.io/sig-storage/livenessprobe:v2.2.0 3929 args: 3930 - "--csi-address=/csi/csi.sock" 3931 volumes: 3932 - name: socket-dir 3933 emptyDir: { } 3934 3935 --- 3936 3937 ############################## CSI- Attacher ####################### 3938 # Attacher must be able to work with PVs, nodes and VolumeAttachments 3939 3940 kind: ClusterRole 3941 apiVersion: rbac.authorization.k8s.io/v1 3942 metadata: 3943 name: openebs-jiva-csi-attacher-role 3944 rules: 3945 - apiGroups: [ "" ] 3946 resources: [ "persistentvolumes" ] 3947 verbs: [ "get", "list", "watch", "update" ] 3948 - apiGroups: [ "" ] 3949 resources: [ "nodes" ] 3950 verbs: [ "get", "list", "watch" ] 3951 - apiGroups: [ "csi.storage.k8s.io" ] 3952 resources: [ "csinodeinfos" ] 3953 verbs: [ "get", "list", "watch" ] 3954 - apiGroups: [ "storage.k8s.io" ] 3955 resources: [ "volumeattachments", "csinodes" ] 3956 verbs: [ "get", "list", "watch", "update" ] 3957 - apiGroups: [ "storage.k8s.io" ] 3958 resources: [ "volumeattachments/status" ] 3959 verbs: [ "patch" ] 3960 3961 --- 3962 3963 kind: ClusterRoleBinding 3964 apiVersion: rbac.authorization.k8s.io/v1 3965 metadata: 3966 name: openebs-jiva-csi-attacher-binding 3967 subjects: 3968 - kind: ServiceAccount 3969 name: openebs-jiva-csi-controller-sa 3970 namespace: openebs 3971 roleRef: 3972 kind: ClusterRole 3973 name: openebs-jiva-csi-attacher-role 3974 apiGroup: rbac.authorization.k8s.io 3975 3976 --- 3977 3978 ######################################## 3979 ########### ############ 3980 ########### Node plugin ############ 3981 ########### ############ 3982 ######################################## 3983 3984 apiVersion: v1 3985 kind: ServiceAccount 3986 metadata: 3987 name: openebs-jiva-csi-node-sa 3988 namespace: openebs 3989 3990 --- 3991 3992 kind: ClusterRole 3993 apiVersion: rbac.authorization.k8s.io/v1 3994 metadata: 3995 name: openebs-jiva-csi-registrar-role 3996 rules: 3997 - apiGroups: [ "" ] 3998 resources: [ "events" ] 3999 verbs: [ "get", "list", "watch", "create", "update", "patch" ] 4000 - apiGroups: [ "" ] 4001 resources: [ "persistentvolumes", "nodes", "services" ] 4002 verbs: [ "get", "list", "patch" ] 4003 - apiGroups: [ "*" ] 4004 resources: [ "jivavolumes" ] 4005 verbs: [ "get", "list", "watch", "create", "update", "patch" ] 4006 4007 --- 4008 4009 kind: ClusterRoleBinding 4010 apiVersion: rbac.authorization.k8s.io/v1 4011 metadata: 4012 name: openebs-jiva-csi-registrar-binding 4013 subjects: 4014 - kind: ServiceAccount 4015 name: openebs-jiva-csi-node-sa 4016 namespace: openebs 4017 roleRef: 4018 kind: ClusterRole 4019 name: openebs-jiva-csi-registrar-role 4020 apiGroup: rbac.authorization.k8s.io 4021 4022 --- 4023 4024 kind: ConfigMap 4025 apiVersion: v1 4026 metadata: 4027 name: openebs-jiva-csi-iscsiadm 4028 namespace: openebs 4029 data: 4030 iscsiadm: | 4031 #!/bin/sh 4032 if [ -x /host/sbin/iscsiadm ]; then 4033 chroot /host /sbin/iscsiadm "$@" 4034 elif [ -x /host/usr/local/sbin/iscsiadm ]; then 4035 chroot /host /usr/local/sbin/iscsiadm "$@" 4036 elif [ -x /host/bin/iscsiadm ]; then 4037 chroot /host /bin/iscsiadm "$@" 4038 elif [ -x /host/usr/local/bin/iscsiadm ]; then 4039 chroot /host /usr/local/bin/iscsiadm "$@" 4040 else 4041 chroot /host iscsiadm "$@" 4042 fi 4043 4044 --- 4045 kind: DaemonSet 4046 apiVersion: apps/v1 4047 metadata: 4048 name: openebs-jiva-csi-node 4049 namespace: openebs 4050 labels: 4051 app: openebs-jiva-csi-node 4052 name: openebs-jiva-csi-node 4053 openebs.io/component-name: openebs-jiva-csi-node 4054 openebs.io/version: 2.11.0 4055 spec: 4056 selector: 4057 matchLabels: 4058 app: openebs-jiva-csi-node 4059 role: openebs-jiva-csi 4060 name: openebs-jiva-csi-node 4061 openebs.io/component-name: openebs-jiva-csi-node 4062 template: 4063 metadata: 4064 labels: 4065 app: openebs-jiva-csi-node 4066 role: openebs-jiva-csi 4067 name: openebs-jiva-csi-node 4068 openebs.io/component-name: openebs-jiva-csi-node 4069 openebs.io/version: 2.11.0 4070 spec: 4071 priorityClassName: system-node-critical 4072 serviceAccount: openebs-jiva-csi-node-sa 4073 hostNetwork: true 4074 containers: 4075 - name: csi-node-driver-registrar 4076 image: k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.1.0 4077 args: 4078 - "--v=5" 4079 - "--csi-address=$(ADDRESS)" 4080 - "--kubelet-registration-path=$(DRIVER_REG_SOCK_PATH)" 4081 lifecycle: 4082 preStop: 4083 exec: 4084 command: [ "/bin/sh", "-c", "rm -rf /registration/jiva.csi.openebs.io /registration/jiva.csi.openebs.io-reg.sock" ] 4085 env: 4086 - name: ADDRESS 4087 value: /plugin/csi.sock 4088 - name: DRIVER_REG_SOCK_PATH 4089 value: /var/lib/kubelet/plugins/jiva.csi.openebs.io/csi.sock 4090 - name: KUBE_NODE_NAME 4091 valueFrom: 4092 fieldRef: 4093 fieldPath: spec.nodeName 4094 - name: NODE_DRIVER 4095 value: openebs-jiva-csi 4096 volumeMounts: 4097 - name: plugin-dir 4098 mountPath: /plugin 4099 - name: registration-dir 4100 mountPath: /registration 4101 - name: jiva-csi-plugin 4102 securityContext: 4103 privileged: true 4104 allowPrivilegeEscalation: true 4105 image: openebs/jiva-csi:2.11.0 4106 args: 4107 - "--name=jiva.csi.openebs.io" 4108 - "--nodeid=$(OPENEBS_NODE_ID)" 4109 - "--endpoint=$(OPENEBS_CSI_ENDPOINT)" 4110 - "--plugin=$(OPENEBS_NODE_DRIVER)" 4111 # logging level for klog library used in k8s packages 4112 #- "--v=5" 4113 # retrycount is the max number of retries per nodeStaging rpc 4114 # request on a timeout of 5 sec 4115 # This count has been set to 20 for sanity test cases as it takes 4116 # time in minikube 4117 - "--retrycount=20" 4118 # metricsBindAddress is the TCP address that the controller should bind to 4119 # for serving prometheus metrics. By default the address is set to localhost:9505. 4120 # The address can be configured to any desired address. 4121 # Remove the flag to disable prometheus metrics. 4122 - "--metricsBindAddress=:9505" 4123 env: 4124 - name: OPENEBS_NODE_ID 4125 valueFrom: 4126 fieldRef: 4127 fieldPath: spec.nodeName 4128 - name: OPENEBS_CSI_ENDPOINT 4129 value: unix:///plugin/csi.sock 4130 - name: OPENEBS_NODE_DRIVER 4131 value: node 4132 - name: OPENEBS_NAMESPACE 4133 valueFrom: 4134 fieldRef: 4135 fieldPath: metadata.namespace 4136 # REMOUNT: if set true/True volume will be automatically remounted 4137 # in case if the mountpoint goes to ro state 4138 - name: REMOUNT 4139 value: "True" 4140 volumeMounts: 4141 - name: plugin-dir 4142 mountPath: /plugin 4143 - name: device-dir 4144 mountPath: /dev 4145 - name: pods-mount-dir 4146 mountPath: /var/lib/kubelet/ 4147 # needed so that any mounts setup inside this container are 4148 # propagated back to the host machine. 4149 mountPropagation: "Bidirectional" 4150 - name: host-root 4151 mountPath: /host 4152 mountPropagation: "HostToContainer" 4153 - name: chroot-iscsiadm 4154 mountPath: /sbin/iscsiadm 4155 subPath: iscsiadm 4156 - name: liveness-probe 4157 image: k8s.gcr.io/sig-storage/livenessprobe:v2.2.0 4158 args: 4159 - "--csi-address=/plugin/csi.sock" 4160 volumeMounts: 4161 - mountPath: /plugin 4162 name: plugin-dir 4163 volumes: 4164 - name: device-dir 4165 hostPath: 4166 path: /dev 4167 type: Directory 4168 - name: registration-dir 4169 hostPath: 4170 path: /var/lib/kubelet/plugins_registry/ 4171 type: DirectoryOrCreate 4172 - name: plugin-dir 4173 hostPath: 4174 path: /var/lib/kubelet/plugins/jiva.csi.openebs.io/ 4175 type: DirectoryOrCreate 4176 - name: pods-mount-dir 4177 hostPath: 4178 path: /var/lib/kubelet/ 4179 type: Directory 4180 - name: chroot-iscsiadm 4181 configMap: 4182 defaultMode: 0555 4183 name: openebs-jiva-csi-iscsiadm 4184 - name: host-root 4185 hostPath: 4186 path: / 4187 type: Directory