From 62f42500f996806d794ddaf4406a77d0ffb8abf3 Mon Sep 17 00:00:00 2001 From: Anusha Y Date: Fri, 2 Aug 2024 12:58:23 +0530 Subject: [PATCH] operator hpe-csi-operator (2.5.1) --- operators/hpe-csi-operator/2.5.1/Dockerfile | 26 + ...er-manager-metrics-service_v1_service.yaml | 23 + ...c.authorization.k8s.io_v1_clusterrole.yaml | 17 + ...operator.v2.5.1.clusterserviceversion.yaml | 949 +++++++ .../storage.hpe.com_hpecsidrivers.yaml | 2205 +++++++++++++++++ .../2.5.1/metadata/annotations.yaml | 14 + .../2.5.1/tests/scorecard/config.yaml | 70 + 7 files changed, 3304 insertions(+) create mode 100644 operators/hpe-csi-operator/2.5.1/Dockerfile create mode 100644 operators/hpe-csi-operator/2.5.1/manifests/hpe-csi-operator-controller-manager-metrics-service_v1_service.yaml create mode 100644 operators/hpe-csi-operator/2.5.1/manifests/hpe-csi-operator-metrics-reader_rbac.authorization.k8s.io_v1_clusterrole.yaml create mode 100644 operators/hpe-csi-operator/2.5.1/manifests/hpe-csi-operator.v2.5.1.clusterserviceversion.yaml create mode 100644 operators/hpe-csi-operator/2.5.1/manifests/storage.hpe.com_hpecsidrivers.yaml create mode 100644 operators/hpe-csi-operator/2.5.1/metadata/annotations.yaml create mode 100644 operators/hpe-csi-operator/2.5.1/tests/scorecard/config.yaml diff --git a/operators/hpe-csi-operator/2.5.1/Dockerfile b/operators/hpe-csi-operator/2.5.1/Dockerfile new file mode 100644 index 00000000000..5c34708955c --- /dev/null +++ b/operators/hpe-csi-operator/2.5.1/Dockerfile @@ -0,0 +1,26 @@ +FROM scratch + +#Add these labels +LABEL com.redhat.openshift.versions="v4.14-v4.16" +LABEL com.redhat.delivery.operator.bundle=true +LABEL com.redhat.delivery.backport=true + + +# Core bundle labels. +LABEL operators.operatorframework.io.bundle.mediatype.v1=registry+v1 +LABEL operators.operatorframework.io.bundle.manifests.v1=manifests/ +LABEL operators.operatorframework.io.bundle.metadata.v1=metadata/ +LABEL operators.operatorframework.io.bundle.package.v1=hpe-csi-operator +LABEL operators.operatorframework.io.bundle.channels.v1=stable +LABEL operators.operatorframework.io.metrics.builder=operator-sdk-v1.35.0 +LABEL operators.operatorframework.io.metrics.mediatype.v1=metrics+v1 +LABEL operators.operatorframework.io.metrics.project_layout=helm.sdk.operatorframework.io/v1 + +# Labels for testing. +LABEL operators.operatorframework.io.test.mediatype.v1=scorecard+v1 +LABEL operators.operatorframework.io.test.config.v1=tests/scorecard/ + +# Copy files to locations specified by labels. +COPY bundle/manifests /manifests/ +COPY bundle/metadata /metadata/ +COPY bundle/tests/scorecard /tests/scorecard/ diff --git a/operators/hpe-csi-operator/2.5.1/manifests/hpe-csi-operator-controller-manager-metrics-service_v1_service.yaml b/operators/hpe-csi-operator/2.5.1/manifests/hpe-csi-operator-controller-manager-metrics-service_v1_service.yaml new file mode 100644 index 00000000000..959978d3a0b --- /dev/null +++ b/operators/hpe-csi-operator/2.5.1/manifests/hpe-csi-operator-controller-manager-metrics-service_v1_service.yaml @@ -0,0 +1,23 @@ +apiVersion: v1 +kind: Service +metadata: + creationTimestamp: null + labels: + app.kubernetes.io/component: kube-rbac-proxy + app.kubernetes.io/created-by: hpe-csi-operator + app.kubernetes.io/instance: controller-manager-metrics-service + app.kubernetes.io/managed-by: kustomize + app.kubernetes.io/name: service + app.kubernetes.io/part-of: hpe-csi-operator + control-plane: controller-manager + name: hpe-csi-operator-controller-manager-metrics-service +spec: + ports: + - name: https + port: 8443 + protocol: TCP + targetPort: https + selector: + control-plane: controller-manager +status: + loadBalancer: {} diff --git a/operators/hpe-csi-operator/2.5.1/manifests/hpe-csi-operator-metrics-reader_rbac.authorization.k8s.io_v1_clusterrole.yaml b/operators/hpe-csi-operator/2.5.1/manifests/hpe-csi-operator-metrics-reader_rbac.authorization.k8s.io_v1_clusterrole.yaml new file mode 100644 index 00000000000..a187f2ddae4 --- /dev/null +++ b/operators/hpe-csi-operator/2.5.1/manifests/hpe-csi-operator-metrics-reader_rbac.authorization.k8s.io_v1_clusterrole.yaml @@ -0,0 +1,17 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + creationTimestamp: null + labels: + app.kubernetes.io/component: kube-rbac-proxy + app.kubernetes.io/created-by: hpe-csi-operator + app.kubernetes.io/instance: metrics-reader + app.kubernetes.io/managed-by: kustomize + app.kubernetes.io/name: clusterrole + app.kubernetes.io/part-of: hpe-csi-operator + name: hpe-csi-operator-metrics-reader +rules: +- nonResourceURLs: + - /metrics + verbs: + - get diff --git a/operators/hpe-csi-operator/2.5.1/manifests/hpe-csi-operator.v2.5.1.clusterserviceversion.yaml b/operators/hpe-csi-operator/2.5.1/manifests/hpe-csi-operator.v2.5.1.clusterserviceversion.yaml new file mode 100644 index 00000000000..f5c25c7c087 --- /dev/null +++ b/operators/hpe-csi-operator/2.5.1/manifests/hpe-csi-operator.v2.5.1.clusterserviceversion.yaml @@ -0,0 +1,949 @@ +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + annotations: + alm-examples: |- + [ + { + "apiVersion": "storage.hpe.com/v1", + "kind": "HPECSIDriver", + "metadata": { + "name": "hpecsidriver-sample" + }, + "spec": { + "controller": { + "affinity": {}, + "labels": {}, + "nodeSelector": {}, + "resources": { + "limits": { + "cpu": "2000m", + "memory": "1Gi" + }, + "requests": { + "cpu": "100m", + "memory": "128Mi" + } + }, + "tolerations": [] + }, + "csp": { + "affinity": {}, + "labels": {}, + "nodeSelector": {}, + "resources": { + "limits": { + "cpu": "2000m", + "memory": "1Gi" + }, + "requests": { + "cpu": "100m", + "memory": "128Mi" + } + }, + "tolerations": [] + }, + "disable": { + "alletra6000": false, + "alletra9000": false, + "alletraStorageMP": false, + "nimble": false, + "primera": false + }, + "disableHostDeletion": false, + "disableNodeConfiguration": false, + "disableNodeConformance": false, + "disableNodeGetVolumeStats": false, + "disableNodeMonitor": false, + "imagePullPolicy": "IfNotPresent", + "images": { + "csiAttacher": "registry.k8s.io/sig-storage/csi-attacher@sha256:b4d611100ece2f9bc980d1cb19c2285b8868da261e3b1ee8f45448ab5512ab94", + "csiControllerDriver": "quay.io/hpestorage/csi-driver@sha256:d96e2a63029267abcb3eaf032eb70401861866d636bdb6f192ceb6cee954bb67", + "csiExtensions": "quay.io/hpestorage/csi-extensions@sha256:c578d8b4075278fd03bab77b0969585d55a2dac9558bc45a01ba0828834882f2", + "csiNodeDriver": "quay.io/hpestorage/csi-driver@sha256:d96e2a63029267abcb3eaf032eb70401861866d636bdb6f192ceb6cee954bb67", + "csiNodeDriverRegistrar": "registry.k8s.io/sig-storage/csi-node-driver-registrar@sha256:f25af73ee708ff9c82595ae99493cdef9295bd96953366cddf36305f82555dac", + "csiProvisioner": "registry.k8s.io/sig-storage/csi-provisioner@sha256:405a14e1aa702f7ea133cea459e8395fe40a6125c088c55569e696d48e1bd385", + "csiResizer": "registry.k8s.io/sig-storage/csi-resizer@sha256:a541e6cc2d8b011bb21b1d4ffec6b090e85270cce6276ee302d86153eec0af43", + "csiSnapshotter": "registry.k8s.io/sig-storage/csi-snapshotter@sha256:2e04046334baf9be425bb0fa1d04c2d1720d770825eedbdbcdb10d430da4ad8c", + "csiVolumeGroupProvisioner": "quay.io/hpestorage/volume-group-provisioner@sha256:51a49a6848e7c22c4c4307496724c6260497aa93d70858b44c16972e12fd18f1", + "csiVolumeGroupSnapshotter": "quay.io/hpestorage/volume-group-snapshotter@sha256:39914c29b33dcb11b5df8d15b5c90913bcf1c994b44d7f202b8d1cb52e9919a9", + "csiVolumeMutator": "quay.io/hpestorage/volume-mutator@sha256:57a4449afc2c3e31586e6fbb760f6e2503abcaa1baca70c839e039ea66534135", + "nfsProvisioner": "quay.io/hpestorage/nfs-provisioner@sha256:c15b5e76c58cb3f75f81d5e60f61baddf891fa8c49e2f6f580226f129413cd07", + "nimbleCSP": "quay.io/hpestorage/alletra-6000-and-nimble-csp@sha256:ab4003f93032129e7f5768dd9b2b047fbfd435b8e0f03e4a60d6d30693320758", + "primera3parCSP": "quay.io/hpestorage/alletra-9000-primera-and-3par-csp@sha256:320c335062338378889c1dde2ecba955d3c4d6f4fab120ea075bc4a6c5ffe7af" + }, + "iscsi": { + "chapSecretName": "" + }, + "kubeletRootDir": "/var/lib/kubelet", + "logLevel": "info", + "node": { + "affinity": {}, + "labels": {}, + "nodeSelector": {}, + "resources": { + "limits": { + "cpu": "2000m", + "memory": "1Gi" + }, + "requests": { + "cpu": "100m", + "memory": "128Mi" + } + }, + "tolerations": [] + } + } + } + ] + capabilities: Basic Install + categories: Storage + certified: "true" + containerImage: quay.io/hpestorage/csi-driver-operator@sha256:ae178bb953d5988ad9e7b8eb8c1dc8737e56eb336b5b8f28883930d275910f92 + createdAt: "2024-08-01T16:53:37Z" + description: A Container Storage Interface (CSI) driver for HPE storage platforms. The CSI driver allows you to use HPE storage with your preferred container orchestrator. + features.operators.openshift.io/cnf: "false" + features.operators.openshift.io/cni: "false" + features.operators.openshift.io/csi: "true" + features.operators.openshift.io/disconnected: "false" + features.operators.openshift.io/fips-compliant: "false" + features.operators.openshift.io/proxy-aware: "false" + features.operators.openshift.io/tls-profiles: "false" + features.operators.openshift.io/token-auth-aws: "false" + features.operators.openshift.io/token-auth-azure: "false" + features.operators.openshift.io/token-auth-gcp: "false" + olm.skipRange: '>=1.0.0 <2.5.1' + operatorhub.io/ui-metadata-max-k8s-version: "1.30" + operators.operatorframework.io/builder: operator-sdk-v1.35.0 + operators.operatorframework.io/project_layout: helm.sdk.operatorframework.io/v1 + repository: https://github.com/hpe-storage/co-deployments + support: HPE + name: hpe-csi-operator.v2.5.1 + namespace: placeholder +spec: + apiservicedefinitions: {} + customresourcedefinitions: + owned: + - description: HPE CSI Driver for Kubernetes + displayName: HPECSIDriver + kind: HPECSIDriver + name: hpecsidrivers.storage.hpe.com + resources: + - kind: Deployment + name: "" + version: v1 + - kind: Service + name: "" + version: v1 + - kind: ReplicaSet + name: "" + version: v1 + - kind: Pod + name: "" + version: v1 + - kind: Secret + name: "" + version: v1 + - kind: ConfigMap + name: "" + version: v1 + specDescriptors: + - description: Image pull policy for all images used in the HPE CSI Driver deployment + displayName: ImagePullPolicy + path: imagePullPolicy + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:imagePullPolicy + - description: Log level for HPE CSI Driver (trace, debug, warn, info, error) + displayName: Log level + path: logLevel + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - description: Flavor of CO Orchestrator (kubernetes, openshift) + displayName: Flavor + path: flavor + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:hidden + - description: Control CSP Service and Deployments for HPE storage products + displayName: Disable CSP + path: disable + - description: Disable Nimble Storage + displayName: Nimble Storage + path: disable.nimble + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:checkbox + - description: Disable Primera (and 3PAR) + displayName: Primera + path: disable.primera + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:checkbox + - description: Disable Alletra 5000/6000 + displayName: Alletra 5000/6000 + path: disable.alletra6000 + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:checkbox + - description: Disable Alletra 9000 + displayName: Alletra 9000 + path: disable.alletra9000 + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:checkbox + - description: Disable Alletra Storage MP + displayName: Alletra Storage MP + path: disable.alletraStorageMP + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:checkbox + - description: 'Disables automatic installation of iSCSI, multipath packages (default: false)' + displayName: Disable Node Conformance + path: disableNodeConformance + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:booleanSwitch + - description: 'Disables default configurations performed by CSI plugin on node(s) (default: false)' + displayName: Disable Node Configuration + path: disableNodeConfiguration + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:booleanSwitch + - description: 'Disable NodeGetVolumeStats call to CSI driver (default: false)' + displayName: Disable NodeGetVolumeStats RPC + path: disableNodeGetVolumeStats + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:booleanSwitch + - description: 'Disable the Node Monitor (default: false)' + displayName: Disable Node Monitor + path: disableNodeMonitor + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:booleanSwitch + - description: 'Disables host deletion by the CSP when no volumes are associated with the host (default: false)' + displayName: Disable Host deletion + path: disableHostDeletion + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:booleanSwitch + - description: Configuration for iSCSI CHAP authenticaton + displayName: iSCSI Configuration + path: iscsi + - description: Name of the secret containing chapUser and chapPassword for iSCSI + displayName: iSCSI CHAP Secret Name + path: iscsi.chapSecretName + x-descriptors: + - urn:alm:descriptor:io.kubernetes:Secret + - description: The kubelet root directory path + displayName: Kubelet root dir + path: kubeletRootDir + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - description: Configure CSI controller decorations + displayName: CSI controller configuration + path: controller + - description: Sets a nodeSelector on the CSI controller Pod + displayName: CSI controller nodeSelector + path: controller.nodeSelector + - description: Sets tolerations on the CSI controller Pod + displayName: CSI controller tolerations + path: controller.tolerations + - description: Labels the CSI controller Pod + displayName: CSI controller labels + path: controller.labels + - description: Sets affinity rules on the CSI controller Pod + displayName: CSI controller affinity rules + path: controller.affinity + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:nodeAffinity + - description: Limits describes the minimum/maximum amount of compute resources required/allowed + displayName: CSI controller resource requirements + path: controller.resources + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:resourceRequirements + - description: Configure CSI node driver decorations + displayName: CSI node driver configuration + path: node + - description: Sets a nodeSelector on the CSI node driver Pods + displayName: CSI node driver nodeSelector + path: node.nodeSelector + - description: Sets tolerations on the CSI node driver Pods + displayName: CSI node driver tolerations + path: node.tolerations + - description: Labels the CSI node driver Pods + displayName: CSI node driver labels + path: node.labels + - description: Sets affinity rules on the CSI node driver Pods + displayName: CSI node driver affinity rules + path: node.affinity + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:nodeAffinity + - description: Limits describes the minimum/maximum amount of compute resources required/allowed + displayName: CSI node resource requirements + path: node.resources + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:resourceRequirements + - description: Configure CSP decorations + displayName: CSP configuration + path: csp + - description: Sets a nodeSelector on the CSP Pods + displayName: CSP nodeSelector + path: csp.nodeSelector + - description: Sets tolerations on the CSP Pods + displayName: CSP tolerations + path: csp.tolerations + - description: Labels the CSP Pods + displayName: CSP labels + path: csp.labels + - description: Sets affinity rules on the CSP Pods + displayName: CSP affinity rules + path: csp.affinity + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:nodeAffinity + - description: Limits describes the minimum/maximum amount of compute resources required/allowed + displayName: CSP resource requirements + path: csp.resources + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:resourceRequirements + - description: Set images for sidecars, controller, node and CSPs + displayName: HPE CSI Operator images + path: images + - description: HPE CSI Driver Node Driver container image + displayName: CSI Node Driver Image + path: images.csiNodeDriver + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - description: HPE CSI Driver Controller Driver container image + displayName: CSI Controller Driver Image + path: images.csiControllerDriver + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - description: HPE Alletra 5000/6000 and Nimble Storage Container Storage Provider container image + displayName: Alletra 5000/6000 and Nimble Storage Image + path: images.nimbleCSP + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - description: The HPE Alletra Storage MP, Alletra 9000, Primera and 3PAR Container Storage Provider container image + displayName: Alletra Storage MP, Alletra 9000 and Primera Image + path: images.primera3parCSP + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - description: The HPE CSI Driver NFS Server Provisioner container image + displayName: NFS Server Provisioner Image + path: images.nfsProvisioner + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - description: The HPE CSI Driver CSI Extensions container image + displayName: CSI Extensions Image + path: images.csiExtensions + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - description: The HPE CSI Driver Volume Group Provisioner container image + displayName: Volume Group Provisioner Image + path: images.csiVolumeGroupProvisioner + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - description: The HPE CSI Driver Volume Group Snapshotter container image + displayName: Volume Group Snapshotter Image + path: images.csiVolumeGroupSnapshotter + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - description: The HPE CSI Driver Volume Mutator container image + displayName: Volume Mutator Image + path: images.csiVolumeMutator + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - description: The SIG Storage CSI Attacher container image + displayName: CSI Attacher Image + path: images.csiAttacher + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - description: The SIG Storage CSI Node Driver Registrar container image + displayName: CSI Node Driver Registrar Image + path: images.csiNodeDriverRegistrar + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - description: The SIG Storage CSI Provisioner container image + displayName: CSI Provisioner Image + path: images.csiProvisioner + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - description: The SIG Storage CSI Provisioner container image + displayName: CSI Resizer Image + path: images.csiResizer + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - description: The SIG Storage CSI External Snapshotter container image + displayName: CSI Snapshotter Image + path: images.csiSnapshotter + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + statusDescriptors: + - description: HPE CSI Driver Helm release status + displayName: Conditions + path: conditions + x-descriptors: + - urn:alm:descriptor:io.kubernetes.conditions + - description: HPE CSI Driver Helm release + displayName: DeployedRelease + path: deployedRelease + x-descriptors: + - urn:alm:descriptor:text + version: v1 + description: | + The HPE CSI Operator for Kubernetes deploys the HPE CSI Driver on Kubernetes and OpenShift for dynamic provisioning of persistent volumes on HPE storage systems. + The HPE CSI Driver for Kubernetes leverages HPE storage platforms to provide scalable and persistent storage for stateful applications. + Please refer to our CSI driver [documentation](https://scod.hpedev.io/csi_driver/index.html) for supported HPE platforms and full list of supported CSI features. + ## Installation + Refer to the HPE CSI Operator for Kubernetes [documentation](https://scod.hpedev.io/csi_driver/deployment.html#operator). + displayName: HPE CSI Operator for Kubernetes + icon: + - base64data: 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ICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgIHhtbG5zOkdJTVA9Imh0dHA6Ly93d3cuZ2ltcC5vcmcveG1wLyIKICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICB4bXBNTTpEb2N1bWVudElEPSJnaW1wOmRvY2lkOmdpbXA6MTNjMDg5ZTItODcyMC00Nzc2LWE5YTktODFhOWVkNmQ0YjE4IgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOmNiOTg0ZTE4LTVmNjItNGQ1Yy1iNmVkLTUzY2VhOWI1ODI0ZSIKICAgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJmNmNkMmU4LTlmOTItNGI2MS1hMGRjLWRkYmYyMmQwNTEyMiIKICAgZGM6Rm9ybWF0PSJpbWFnZS9wbmciCiAgIEdJTVA6QVBJPSIyLjAiCiAgIEdJTVA6UGxhdGZvcm09Ik1hYyBPUyIKICAgR0lNUDpUaW1lU3RhbXA9IjE2NTYwMDgxNjU1NjEyOTUiCiAgIEdJTVA6VmVyc2lvbj0iMi4xMC4zMCIKICAgdGlmZjpPcmllbnRhdGlvbj0iMSIKICAgeG1wOkNyZWF0b3JUb29sPSJHSU1QIDIuMTAiPgogICA8eG1wTU06SGlzdG9yeT4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDoyNTZjMzUwNy1mMTBkLTRiZmQtYjk1Ni01YmQ1MDkyYTYxOGYiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoTWFjIE9TKSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyMi0wNi0yM1QxMToxNjowNS0wNzowMCIvPgogICAgPC9yZGY6U2VxPgogICA8L3htcE1NOkhpc3Rvcnk+CiAgPC9yZGY6RGVzY3JpcHRpb24+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg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 + mediatype: image/png + install: + spec: + clusterPermissions: + - rules: + - apiGroups: + - storage.hpe.com + resources: + - '*' + verbs: + - get + - watch + - list + - delete + - update + - create + - patch + - apiGroups: + - "" + resources: + - namespaces + - pods + - services + - endpoints + - configmaps + - secrets + - serviceaccounts + verbs: + - get + - watch + - list + - delete + - update + - create + - patch + - apiGroups: + - storage.k8s.io + resources: + - storageclasses + verbs: + - get + - watch + - list + - delete + - update + - create + - patch + - apiGroups: + - rbac.authorization.k8s.io + resources: + - clusterrolebindings + - clusterroles + - roles + - rolebindings + verbs: + - get + - watch + - list + - delete + - update + - create + - patch + - apiGroups: + - authorization.openshift.io + resources: + - clusterrolebindings + - clusterroles + verbs: + - get + - watch + - list + - delete + - update + - create + - patch + - apiGroups: + - "" + resources: + - secrets + verbs: + - get + - watch + - list + - delete + - update + - create + - patch + - apiGroups: + - "" + resources: + - namespaces + verbs: + - get + - list + - create + - apiGroups: + - "" + resources: + - nodes + verbs: + - get + - list + - apiGroups: + - "" + resources: + - persistentvolumes + verbs: + - get + - list + - watch + - create + - delete + - update + - patch + - apiGroups: + - "" + resources: + - persistentvolumeclaims + verbs: + - get + - watch + - list + - delete + - update + - create + - patch + - apiGroups: + - "" + resources: + - services + verbs: + - get + - watch + - list + - delete + - update + - create + - patch + - apiGroups: + - apps + resources: + - deployments + - daemonsets + verbs: + - get + - watch + - list + - delete + - update + - create + - patch + - apiGroups: + - storage.k8s.io + resources: + - storageclasses + verbs: + - get + - watch + - list + - delete + - update + - create + - patch + - apiGroups: + - "" + resources: + - events + verbs: + - get + - list + - watch + - create + - update + - patch + - apiGroups: + - "" + resources: + - nodes + verbs: + - get + - list + - watch + - apiGroups: + - storage.k8s.io + resources: + - volumeattachments + verbs: + - get + - list + - watch + - update + - patch + - delete + - apiGroups: + - storage.k8s.io + resources: + - volumeattachments/status + verbs: + - get + - list + - watch + - update + - create + - delete + - patch + - apiGroups: + - storage.k8s.io + resources: + - csinodes + verbs: + - get + - list + - watch + - apiGroups: + - snapshot.storage.k8s.io + resources: + - volumesnapshots + verbs: + - create + - update + - delete + - get + - list + - watch + - apiGroups: + - snapshot.storage.k8s.io + resources: + - volumesnapshots/status + verbs: + - update + - apiGroups: + - snapshot.storage.k8s.io + resources: + - volumesnapshotcontents + verbs: + - create + - update + - delete + - get + - list + - watch + - patch + - apiGroups: + - snapshot.storage.k8s.io + resources: + - volumesnapshotcontents/status + verbs: + - create + - get + - list + - watch + - update + - delete + - patch + - apiGroups: + - snapshot.storage.k8s.io + resources: + - volumesnapshotclasses + verbs: + - get + - list + - watch + - apiGroups: + - apiextensions.k8s.io + resources: + - customresourcedefinitions + verbs: + - get + - watch + - list + - delete + - update + - create + - apiGroups: + - csi.storage.k8s.io + resources: + - csidrivers + verbs: + - get + - watch + - list + - delete + - update + - create + - patch + - apiGroups: + - storage.k8s.io + resources: + - csidrivers + verbs: + - get + - watch + - list + - delete + - update + - create + - patch + - apiGroups: + - "" + resources: + - persistentvolumeclaims/status + verbs: + - create + - get + - list + - watch + - update + - delete + - patch + - apiGroups: + - storage.hpe.com + resources: + - hpenodeinfos + verbs: + - get + - list + - watch + - create + - update + - patch + - delete + - apiGroups: + - storage.hpe.com + resources: + - hpevolumeinfos + verbs: + - get + - list + - watch + - create + - update + - patch + - delete + - apiGroups: + - storage.hpe.com + resources: + - hpereplicationdeviceinfos + verbs: + - get + - list + - watch + - create + - update + - patch + - delete + - apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - get + - watch + - list + - delete + - update + - create + - patch + - apiGroups: + - batch + resources: + - jobs + verbs: + - get + - watch + - list + - delete + - update + - create + - apiGroups: + - authentication.k8s.io + resources: + - tokenreviews + verbs: + - create + - apiGroups: + - authorization.k8s.io + resources: + - subjectaccessreviews + verbs: + - create + serviceAccountName: hpe-csi-operator-controller-manager + deployments: + - label: + app.kubernetes.io/component: manager + app.kubernetes.io/created-by: hpe-csi-operator + app.kubernetes.io/instance: controller-manager + app.kubernetes.io/managed-by: kustomize + app.kubernetes.io/name: deployment + app.kubernetes.io/part-of: hpe-csi-operator + control-plane: controller-manager + name: hpe-csi-operator-controller-manager + spec: + replicas: 1 + selector: + matchLabels: + control-plane: controller-manager + strategy: {} + template: + metadata: + annotations: + kubectl.kubernetes.io/default-container: manager + labels: + control-plane: controller-manager + spec: + containers: + - args: + - --secure-listen-address=0.0.0.0:8443 + - --upstream=http://127.0.0.1:8080/ + - --logtostderr=true + - --v=0 + image: gcr.io/kubebuilder/kube-rbac-proxy@sha256:d8cc6ffb98190e8dd403bfe67ddcb454e6127d32b87acc237b3e5240f70a20fb + name: kube-rbac-proxy + ports: + - containerPort: 8443 + name: https + protocol: TCP + resources: + limits: + cpu: 500m + memory: 128Mi + requests: + cpu: 5m + memory: 64Mi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + - args: + - --health-probe-bind-address=:8081 + - --metrics-bind-address=127.0.0.1:8080 + - --leader-elect + - --leader-election-id=hpe-csi-operator + image: quay.io/hpestorage/csi-driver-operator@sha256:ae178bb953d5988ad9e7b8eb8c1dc8737e56eb336b5b8f28883930d275910f92 + livenessProbe: + httpGet: + path: /healthz + port: 8081 + initialDelaySeconds: 15 + periodSeconds: 20 + name: manager + readinessProbe: + httpGet: + path: /readyz + port: 8081 + initialDelaySeconds: 5 + periodSeconds: 10 + resources: + limits: + cpu: 500m + memory: 1Gi + requests: + cpu: 10m + memory: 64Mi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + securityContext: + runAsNonRoot: true + serviceAccountName: hpe-csi-operator-controller-manager + terminationGracePeriodSeconds: 10 + permissions: + - rules: + - apiGroups: + - "" + resources: + - configmaps + verbs: + - get + - list + - watch + - create + - update + - patch + - delete + - apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - get + - list + - watch + - create + - update + - patch + - delete + - apiGroups: + - "" + resources: + - events + verbs: + - create + - patch + serviceAccountName: hpe-csi-operator-controller-manager + strategy: deployment + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: false + type: AllNamespaces + keywords: + - HPE + - HPE CSI + - HPE Storage + - CSI + links: + - name: Documentation + url: https://scod.hpedev.io/csi_driver/index.html + maintainers: + - email: dev-hi-containers@hpe.com + name: HPE Storage Containers Team + maturity: stable + minKubeVersion: 1.25.0 + provider: + name: HPE + relatedImages: + - image: gcr.io/kubebuilder/kube-rbac-proxy@sha256:d8cc6ffb98190e8dd403bfe67ddcb454e6127d32b87acc237b3e5240f70a20fb + name: kube-rbac-proxy + - image: quay.io/hpestorage/alletra-6000-and-nimble-csp@sha256:ab4003f93032129e7f5768dd9b2b047fbfd435b8e0f03e4a60d6d30693320758 + name: alletra-6000-and-nimble-csp-ab4003f93032129e7f5768dd9b2b047fbfd435b8e0f03e4a60d6d30693320758-annotation + - image: quay.io/hpestorage/volume-group-snapshotter@sha256:39914c29b33dcb11b5df8d15b5c90913bcf1c994b44d7f202b8d1cb52e9919a9 + name: volume-group-snapshotter-39914c29b33dcb11b5df8d15b5c90913bcf1c994b44d7f202b8d1cb52e9919a9-annotation + - image: registry.k8s.io/sig-storage/csi-node-driver-registrar@sha256:f25af73ee708ff9c82595ae99493cdef9295bd96953366cddf36305f82555dac + name: csi-node-driver-registrar-f25af73ee708ff9c82595ae99493cdef9295bd96953366cddf36305f82555dac-annotation + - image: quay.io/hpestorage/csi-extensions@sha256:c578d8b4075278fd03bab77b0969585d55a2dac9558bc45a01ba0828834882f2 + name: csi-extensions-c578d8b4075278fd03bab77b0969585d55a2dac9558bc45a01ba0828834882f2-annotation + - image: quay.io/hpestorage/nfs-provisioner@sha256:c15b5e76c58cb3f75f81d5e60f61baddf891fa8c49e2f6f580226f129413cd07 + name: nfs-provisioner-c15b5e76c58cb3f75f81d5e60f61baddf891fa8c49e2f6f580226f129413cd07-annotation + - image: quay.io/hpestorage/volume-mutator@sha256:57a4449afc2c3e31586e6fbb760f6e2503abcaa1baca70c839e039ea66534135 + name: volume-mutator-57a4449afc2c3e31586e6fbb760f6e2503abcaa1baca70c839e039ea66534135-annotation + - image: registry.k8s.io/sig-storage/csi-resizer@sha256:a541e6cc2d8b011bb21b1d4ffec6b090e85270cce6276ee302d86153eec0af43 + name: csi-resizer-a541e6cc2d8b011bb21b1d4ffec6b090e85270cce6276ee302d86153eec0af43-annotation + - image: registry.k8s.io/sig-storage/csi-provisioner@sha256:405a14e1aa702f7ea133cea459e8395fe40a6125c088c55569e696d48e1bd385 + name: csi-provisioner-405a14e1aa702f7ea133cea459e8395fe40a6125c088c55569e696d48e1bd385-annotation + - image: quay.io/hpestorage/csi-driver-operator@sha256:ae178bb953d5988ad9e7b8eb8c1dc8737e56eb336b5b8f28883930d275910f92 + name: manager + - image: quay.io/hpestorage/csi-driver-operator@sha256:ae178bb953d5988ad9e7b8eb8c1dc8737e56eb336b5b8f28883930d275910f92 + name: csi-driver-operator-ae178bb953d5988ad9e7b8eb8c1dc8737e56eb336b5b8f28883930d275910f92-annotation + - image: quay.io/hpestorage/alletra-9000-primera-and-3par-csp@sha256:320c335062338378889c1dde2ecba955d3c4d6f4fab120ea075bc4a6c5ffe7af + name: alletra-9000-primera-and-3par-csp-320c335062338378889c1dde2ecba955d3c4d6f4fab120ea075bc4a6c5ffe7af-annotation + - image: registry.k8s.io/sig-storage/csi-snapshotter@sha256:2e04046334baf9be425bb0fa1d04c2d1720d770825eedbdbcdb10d430da4ad8c + name: csi-snapshotter-2e04046334baf9be425bb0fa1d04c2d1720d770825eedbdbcdb10d430da4ad8c-annotation + - image: quay.io/hpestorage/csi-driver@sha256:d96e2a63029267abcb3eaf032eb70401861866d636bdb6f192ceb6cee954bb67 + name: csi-driver-d96e2a63029267abcb3eaf032eb70401861866d636bdb6f192ceb6cee954bb67-annotation + - image: registry.k8s.io/sig-storage/csi-attacher@sha256:b4d611100ece2f9bc980d1cb19c2285b8868da261e3b1ee8f45448ab5512ab94 + name: csi-attacher-b4d611100ece2f9bc980d1cb19c2285b8868da261e3b1ee8f45448ab5512ab94-annotation + - image: quay.io/hpestorage/volume-group-provisioner@sha256:51a49a6848e7c22c4c4307496724c6260497aa93d70858b44c16972e12fd18f1 + name: volume-group-provisioner-51a49a6848e7c22c4c4307496724c6260497aa93d70858b44c16972e12fd18f1-annotation + replaces: hpe-csi-operator.v2.5.0 + selector: {} + version: 2.5.1 diff --git a/operators/hpe-csi-operator/2.5.1/manifests/storage.hpe.com_hpecsidrivers.yaml b/operators/hpe-csi-operator/2.5.1/manifests/storage.hpe.com_hpecsidrivers.yaml new file mode 100644 index 00000000000..86443c16d3d --- /dev/null +++ b/operators/hpe-csi-operator/2.5.1/manifests/storage.hpe.com_hpecsidrivers.yaml @@ -0,0 +1,2205 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: hpecsidrivers.storage.hpe.com +spec: + group: storage.hpe.com + names: + kind: HPECSIDriver + listKind: HPECSIDriverList + plural: hpecsidrivers + singular: hpecsidriver + scope: Namespaced + versions: + - name: v1 + schema: + openAPIV3Schema: + description: HPECSIDriver is the Schema for the hpecsidrivers API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: HPECSIDriverSpec defines the desired state of HPECSIDriver + properties: + controller: + description: Controller parameters to be configured + properties: + affinity: + description: Node affinity for controller plugin (optional) + properties: + nodeAffinity: + description: Describes node affinity scheduling rules for + the pod. + properties: + preferredDuringSchedulingIgnoredDuringExecution: + description: The scheduler will prefer to schedule pods + to nodes that satisfy the affinity expressions specified + by this field, but it may choose a node that violates + one or more of the expressions. The node that is most + preferred is the one with the greatest sum of weights, + i.e. for each node that meets all of the scheduling + requirements (resource request, requiredDuringScheduling + affinity expressions, etc.), compute a sum by iterating + through the elements of this field and adding "weight" + to the sum if the node matches the corresponding matchExpressions; + the node(s) with the highest sum are the most preferred. + items: + description: An empty preferred scheduling term matches + all objects with implicit weight 0 (i.e. it's a no-op). + A null preferred scheduling term matches no objects + (i.e. is also a no-op). + properties: + preference: + description: A node selector term, associated with + the corresponding weight. + properties: + matchExpressions: + description: A list of node selector requirements + by node's labels. + items: + description: A node selector requirement is + a selector that contains values, a key, + and an operator that relates the key and + values. + properties: + key: + description: The label key that the selector + applies to. + type: string + operator: + description: Represents a key's relationship + to a set of values. Valid operators + are In, NotIn, Exists, DoesNotExist. + Gt, and Lt. + type: string + values: + description: An array of string values. + If the operator is In or NotIn, the + values array must be non-empty. If the + operator is Exists or DoesNotExist, + the values array must be empty. If the + operator is Gt or Lt, the values array + must have a single element, which will + be interpreted as an integer. This array + is replaced during a strategic merge + patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchFields: + description: A list of node selector requirements + by node's fields. + items: + description: A node selector requirement is + a selector that contains values, a key, + and an operator that relates the key and + values. + properties: + key: + description: The label key that the selector + applies to. + type: string + operator: + description: Represents a key's relationship + to a set of values. Valid operators + are In, NotIn, Exists, DoesNotExist. + Gt, and Lt. + type: string + values: + description: An array of string values. + If the operator is In or NotIn, the + values array must be non-empty. If the + operator is Exists or DoesNotExist, + the values array must be empty. If the + operator is Gt or Lt, the values array + must have a single element, which will + be interpreted as an integer. This array + is replaced during a strategic merge + patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + type: object + weight: + description: Weight associated with matching the + corresponding nodeSelectorTerm, in the range 1-100. + format: int32 + type: integer + required: + - preference + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + description: If the affinity requirements specified by + this field are not met at scheduling time, the pod will + not be scheduled onto the node. If the affinity requirements + specified by this field cease to be met at some point + during pod execution (e.g. due to an update), the system + may or may not try to eventually evict the pod from + its node. + properties: + nodeSelectorTerms: + description: Required. A list of node selector terms. + The terms are ORed. + items: + description: A null or empty node selector term + matches no objects. The requirements of them are + ANDed. The TopologySelectorTerm type implements + a subset of the NodeSelectorTerm. + properties: + matchExpressions: + description: A list of node selector requirements + by node's labels. + items: + description: A node selector requirement is + a selector that contains values, a key, + and an operator that relates the key and + values. + properties: + key: + description: The label key that the selector + applies to. + type: string + operator: + description: Represents a key's relationship + to a set of values. Valid operators + are In, NotIn, Exists, DoesNotExist. + Gt, and Lt. + type: string + values: + description: An array of string values. + If the operator is In or NotIn, the + values array must be non-empty. If the + operator is Exists or DoesNotExist, + the values array must be empty. If the + operator is Gt or Lt, the values array + must have a single element, which will + be interpreted as an integer. This array + is replaced during a strategic merge + patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchFields: + description: A list of node selector requirements + by node's fields. + items: + description: A node selector requirement is + a selector that contains values, a key, + and an operator that relates the key and + values. + properties: + key: + description: The label key that the selector + applies to. + type: string + operator: + description: Represents a key's relationship + to a set of values. Valid operators + are In, NotIn, Exists, DoesNotExist. + Gt, and Lt. + type: string + values: + description: An array of string values. + If the operator is In or NotIn, the + values array must be non-empty. If the + operator is Exists or DoesNotExist, + the values array must be empty. If the + operator is Gt or Lt, the values array + must have a single element, which will + be interpreted as an integer. This array + is replaced during a strategic merge + patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + type: object + type: array + required: + - nodeSelectorTerms + type: object + type: object + podAffinity: + description: Describes pod affinity scheduling rules (e.g. + co-locate this pod in the same node, zone, etc. as some + other pod(s)). + properties: + preferredDuringSchedulingIgnoredDuringExecution: + description: The scheduler will prefer to schedule pods + to nodes that satisfy the affinity expressions specified + by this field, but it may choose a node that violates + one or more of the expressions. The node that is most + preferred is the one with the greatest sum of weights, + i.e. for each node that meets all of the scheduling + requirements (resource request, requiredDuringScheduling + affinity expressions, etc.), compute a sum by iterating + through the elements of this field and adding "weight" + to the sum if the node has pods which matches the corresponding + podAffinityTerm; the node(s) with the highest sum are + the most preferred. + items: + description: The weights of all of the matched WeightedPodAffinityTerm + fields are added per-node to find the most preferred + node(s) + properties: + podAffinityTerm: + description: Required. A pod affinity term, associated + with the corresponding weight. + properties: + labelSelector: + description: A label query over a set of resources, + in this case pods. + properties: + matchExpressions: + description: matchExpressions is a list + of label selector requirements. The requirements + are ANDed. + items: + description: A label selector requirement + is a selector that contains values, + a key, and an operator that relates + the key and values. + properties: + key: + description: key is the label key + that the selector applies to. + type: string + operator: + description: operator represents a + key's relationship to a set of values. + Valid operators are In, NotIn, Exists + and DoesNotExist. + type: string + values: + description: values is an array of + string values. If the operator is + In or NotIn, the values array must + be non-empty. If the operator is + Exists or DoesNotExist, the values + array must be empty. This array + is replaced during a strategic merge + patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: matchLabels is a map of {key,value} + pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, + whose key field is "key", the operator + is "In", and the values array contains + only "value". The requirements are ANDed. + type: object + type: object + namespaces: + description: namespaces specifies which namespaces + the labelSelector applies to (matches against); + null or empty list means "this pod's namespace" + items: + type: string + type: array + topologyKey: + description: This pod should be co-located (affinity) + or not co-located (anti-affinity) with the + pods matching the labelSelector in the specified + namespaces, where co-located is defined as + running on a node whose value of the label + with key topologyKey matches that of any node + on which any of the selected pods is running. + Empty topologyKey is not allowed. + type: string + required: + - topologyKey + type: object + weight: + description: weight associated with matching the + corresponding podAffinityTerm, in the range 1-100. + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + description: If the affinity requirements specified by + this field are not met at scheduling time, the pod will + not be scheduled onto the node. If the affinity requirements + specified by this field cease to be met at some point + during pod execution (e.g. due to a pod label update), + the system may or may not try to eventually evict the + pod from its node. When there are multiple elements, + the lists of nodes corresponding to each podAffinityTerm + are intersected, i.e. all terms must be satisfied. + items: + description: Defines a set of pods (namely those matching + the labelSelector relative to the given namespace(s)) + that this pod should be co-located (affinity) or not + co-located (anti-affinity) with, where co-located + is defined as running on a node whose value of the + label with key matches that of any node + on which a pod of the set of pods is running + properties: + labelSelector: + description: A label query over a set of resources, + in this case pods. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are + ANDed. + items: + description: A label selector requirement + is a selector that contains values, a key, + and an operator that relates the key and + values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: operator represents a key's + relationship to a set of values. Valid + operators are In, NotIn, Exists and + DoesNotExist. + type: string + values: + description: values is an array of string + values. If the operator is In or NotIn, + the values array must be non-empty. + If the operator is Exists or DoesNotExist, + the values array must be empty. This + array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: matchLabels is a map of {key,value} + pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, + whose key field is "key", the operator is + "In", and the values array contains only "value". + The requirements are ANDed. + type: object + type: object + namespaces: + description: namespaces specifies which namespaces + the labelSelector applies to (matches against); + null or empty list means "this pod's namespace" + items: + type: string + type: array + topologyKey: + description: This pod should be co-located (affinity) + or not co-located (anti-affinity) with the pods + matching the labelSelector in the specified namespaces, + where co-located is defined as running on a node + whose value of the label with key topologyKey + matches that of any node on which any of the selected + pods is running. Empty topologyKey is not allowed. + type: string + required: + - topologyKey + type: object + type: array + type: object + podAntiAffinity: + description: Describes pod anti-affinity scheduling rules + (e.g. avoid putting this pod in the same node, zone, etc. + as some other pod(s)). + properties: + preferredDuringSchedulingIgnoredDuringExecution: + description: The scheduler will prefer to schedule pods + to nodes that satisfy the anti-affinity expressions + specified by this field, but it may choose a node that + violates one or more of the expressions. The node that + is most preferred is the one with the greatest sum of + weights, i.e. for each node that meets all of the scheduling + requirements (resource request, requiredDuringScheduling + anti-affinity expressions, etc.), compute a sum by iterating + through the elements of this field and adding "weight" + to the sum if the node has pods which matches the corresponding + podAffinityTerm; the node(s) with the highest sum are + the most preferred. + items: + description: The weights of all of the matched WeightedPodAffinityTerm + fields are added per-node to find the most preferred + node(s) + properties: + podAffinityTerm: + description: Required. A pod affinity term, associated + with the corresponding weight. + properties: + labelSelector: + description: A label query over a set of resources, + in this case pods. + properties: + matchExpressions: + description: matchExpressions is a list + of label selector requirements. The requirements + are ANDed. + items: + description: A label selector requirement + is a selector that contains values, + a key, and an operator that relates + the key and values. + properties: + key: + description: key is the label key + that the selector applies to. + type: string + operator: + description: operator represents a + key's relationship to a set of values. + Valid operators are In, NotIn, Exists + and DoesNotExist. + type: string + values: + description: values is an array of + string values. If the operator is + In or NotIn, the values array must + be non-empty. If the operator is + Exists or DoesNotExist, the values + array must be empty. This array + is replaced during a strategic merge + patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: matchLabels is a map of {key,value} + pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, + whose key field is "key", the operator + is "In", and the values array contains + only "value". The requirements are ANDed. + type: object + type: object + namespaces: + description: namespaces specifies which namespaces + the labelSelector applies to (matches against); + null or empty list means "this pod's namespace" + items: + type: string + type: array + topologyKey: + description: This pod should be co-located (affinity) + or not co-located (anti-affinity) with the + pods matching the labelSelector in the specified + namespaces, where co-located is defined as + running on a node whose value of the label + with key topologyKey matches that of any node + on which any of the selected pods is running. + Empty topologyKey is not allowed. + type: string + required: + - topologyKey + type: object + weight: + description: weight associated with matching the + corresponding podAffinityTerm, in the range 1-100. + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + description: If the anti-affinity requirements specified + by this field are not met at scheduling time, the pod + will not be scheduled onto the node. If the anti-affinity + requirements specified by this field cease to be met + at some point during pod execution (e.g. due to a pod + label update), the system may or may not try to eventually + evict the pod from its node. When there are multiple + elements, the lists of nodes corresponding to each podAffinityTerm + are intersected, i.e. all terms must be satisfied. + items: + description: Defines a set of pods (namely those matching + the labelSelector relative to the given namespace(s)) + that this pod should be co-located (affinity) or not + co-located (anti-affinity) with, where co-located + is defined as running on a node whose value of the + label with key matches that of any node + on which a pod of the set of pods is running + properties: + labelSelector: + description: A label query over a set of resources, + in this case pods. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are + ANDed. + items: + description: A label selector requirement + is a selector that contains values, a key, + and an operator that relates the key and + values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: operator represents a key's + relationship to a set of values. Valid + operators are In, NotIn, Exists and + DoesNotExist. + type: string + values: + description: values is an array of string + values. If the operator is In or NotIn, + the values array must be non-empty. + If the operator is Exists or DoesNotExist, + the values array must be empty. This + array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: matchLabels is a map of {key,value} + pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, + whose key field is "key", the operator is + "In", and the values array contains only "value". + The requirements are ANDed. + type: object + type: object + namespaces: + description: namespaces specifies which namespaces + the labelSelector applies to (matches against); + null or empty list means "this pod's namespace" + items: + type: string + type: array + topologyKey: + description: This pod should be co-located (affinity) + or not co-located (anti-affinity) with the pods + matching the labelSelector in the specified namespaces, + where co-located is defined as running on a node + whose value of the label with key topologyKey + matches that of any node on which any of the selected + pods is running. Empty topologyKey is not allowed. + type: string + required: + - topologyKey + type: object + type: array + type: object + type: object + labels: + type: object + nodeSelector: + additionalProperties: + type: string + description: Node selector to control the selection of nodes (optional) + type: object + resources: + description: Resources the HPE CSI Operator controller and sidecar + containers will use. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: Limits describes the maximum amount of compute + resources allowed + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: Requests describes the minimum amount of compute + resources required + type: object + type: object + tolerations: + description: Set tolerations for the controller pods(optional) + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + type: integer + value: + type: string + type: object + type: array + type: object + csp: + description: CSP parameters to be configured + properties: + affinity: + description: Node affinity for csp plugin (optional) + properties: + nodeAffinity: + description: Describes node affinity scheduling rules for + the pod. + properties: + preferredDuringSchedulingIgnoredDuringExecution: + description: The scheduler will prefer to schedule pods + to nodes that satisfy the affinity expressions specified + by this field, but it may choose a node that violates + one or more of the expressions. The node that is most + preferred is the one with the greatest sum of weights, + i.e. for each node that meets all of the scheduling + requirements (resource request, requiredDuringScheduling + affinity expressions, etc.), compute a sum by iterating + through the elements of this field and adding "weight" + to the sum if the node matches the corresponding matchExpressions; + the node(s) with the highest sum are the most preferred. + items: + description: An empty preferred scheduling term matches + all objects with implicit weight 0 (i.e. it's a no-op). + A null preferred scheduling term matches no objects + (i.e. is also a no-op). + properties: + preference: + description: A node selector term, associated with + the corresponding weight. + properties: + matchExpressions: + description: A list of node selector requirements + by node's labels. + items: + description: A node selector requirement is + a selector that contains values, a key, + and an operator that relates the key and + values. + properties: + key: + description: The label key that the selector + applies to. + type: string + operator: + description: Represents a key's relationship + to a set of values. Valid operators + are In, NotIn, Exists, DoesNotExist. + Gt, and Lt. + type: string + values: + description: An array of string values. + If the operator is In or NotIn, the + values array must be non-empty. If the + operator is Exists or DoesNotExist, + the values array must be empty. If the + operator is Gt or Lt, the values array + must have a single element, which will + be interpreted as an integer. This array + is replaced during a strategic merge + patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchFields: + description: A list of node selector requirements + by node's fields. + items: + description: A node selector requirement is + a selector that contains values, a key, + and an operator that relates the key and + values. + properties: + key: + description: The label key that the selector + applies to. + type: string + operator: + description: Represents a key's relationship + to a set of values. Valid operators + are In, NotIn, Exists, DoesNotExist. + Gt, and Lt. + type: string + values: + description: An array of string values. + If the operator is In or NotIn, the + values array must be non-empty. If the + operator is Exists or DoesNotExist, + the values array must be empty. If the + operator is Gt or Lt, the values array + must have a single element, which will + be interpreted as an integer. This array + is replaced during a strategic merge + patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + type: object + weight: + description: Weight associated with matching the + corresponding nodeSelectorTerm, in the range 1-100. + format: int32 + type: integer + required: + - preference + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + description: If the affinity requirements specified by + this field are not met at scheduling time, the pod will + not be scheduled onto the node. If the affinity requirements + specified by this field cease to be met at some point + during pod execution (e.g. due to an update), the system + may or may not try to eventually evict the pod from + its node. + properties: + nodeSelectorTerms: + description: Required. A list of node selector terms. + The terms are ORed. + items: + description: A null or empty node selector term + matches no objects. The requirements of them are + ANDed. The TopologySelectorTerm type implements + a subset of the NodeSelectorTerm. + properties: + matchExpressions: + description: A list of node selector requirements + by node's labels. + items: + description: A node selector requirement is + a selector that contains values, a key, + and an operator that relates the key and + values. + properties: + key: + description: The label key that the selector + applies to. + type: string + operator: + description: Represents a key's relationship + to a set of values. Valid operators + are In, NotIn, Exists, DoesNotExist. + Gt, and Lt. + type: string + values: + description: An array of string values. + If the operator is In or NotIn, the + values array must be non-empty. If the + operator is Exists or DoesNotExist, + the values array must be empty. If the + operator is Gt or Lt, the values array + must have a single element, which will + be interpreted as an integer. This array + is replaced during a strategic merge + patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchFields: + description: A list of node selector requirements + by node's fields. + items: + description: A node selector requirement is + a selector that contains values, a key, + and an operator that relates the key and + values. + properties: + key: + description: The label key that the selector + applies to. + type: string + operator: + description: Represents a key's relationship + to a set of values. Valid operators + are In, NotIn, Exists, DoesNotExist. + Gt, and Lt. + type: string + values: + description: An array of string values. + If the operator is In or NotIn, the + values array must be non-empty. If the + operator is Exists or DoesNotExist, + the values array must be empty. If the + operator is Gt or Lt, the values array + must have a single element, which will + be interpreted as an integer. This array + is replaced during a strategic merge + patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + type: object + type: array + required: + - nodeSelectorTerms + type: object + type: object + podAffinity: + description: Describes pod affinity scheduling rules (e.g. + co-locate this pod in the same node, zone, etc. as some + other pod(s)). + properties: + preferredDuringSchedulingIgnoredDuringExecution: + description: The scheduler will prefer to schedule pods + to nodes that satisfy the affinity expressions specified + by this field, but it may choose a node that violates + one or more of the expressions. The node that is most + preferred is the one with the greatest sum of weights, + i.e. for each node that meets all of the scheduling + requirements (resource request, requiredDuringScheduling + affinity expressions, etc.), compute a sum by iterating + through the elements of this field and adding "weight" + to the sum if the node has pods which matches the corresponding + podAffinityTerm; the node(s) with the highest sum are + the most preferred. + items: + description: The weights of all of the matched WeightedPodAffinityTerm + fields are added per-node to find the most preferred + node(s) + properties: + podAffinityTerm: + description: Required. A pod affinity term, associated + with the corresponding weight. + properties: + labelSelector: + description: A label query over a set of resources, + in this case pods. + properties: + matchExpressions: + description: matchExpressions is a list + of label selector requirements. The requirements + are ANDed. + items: + description: A label selector requirement + is a selector that contains values, + a key, and an operator that relates + the key and values. + properties: + key: + description: key is the label key + that the selector applies to. + type: string + operator: + description: operator represents a + key's relationship to a set of values. + Valid operators are In, NotIn, Exists + and DoesNotExist. + type: string + values: + description: values is an array of + string values. If the operator is + In or NotIn, the values array must + be non-empty. If the operator is + Exists or DoesNotExist, the values + array must be empty. This array + is replaced during a strategic merge + patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: matchLabels is a map of {key,value} + pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, + whose key field is "key", the operator + is "In", and the values array contains + only "value". The requirements are ANDed. + type: object + type: object + namespaces: + description: namespaces specifies which namespaces + the labelSelector applies to (matches against); + null or empty list means "this pod's namespace" + items: + type: string + type: array + topologyKey: + description: This pod should be co-located (affinity) + or not co-located (anti-affinity) with the + pods matching the labelSelector in the specified + namespaces, where co-located is defined as + running on a node whose value of the label + with key topologyKey matches that of any node + on which any of the selected pods is running. + Empty topologyKey is not allowed. + type: string + required: + - topologyKey + type: object + weight: + description: weight associated with matching the + corresponding podAffinityTerm, in the range 1-100. + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + description: If the affinity requirements specified by + this field are not met at scheduling time, the pod will + not be scheduled onto the node. If the affinity requirements + specified by this field cease to be met at some point + during pod execution (e.g. due to a pod label update), + the system may or may not try to eventually evict the + pod from its node. When there are multiple elements, + the lists of nodes corresponding to each podAffinityTerm + are intersected, i.e. all terms must be satisfied. + items: + description: Defines a set of pods (namely those matching + the labelSelector relative to the given namespace(s)) + that this pod should be co-located (affinity) or not + co-located (anti-affinity) with, where co-located + is defined as running on a node whose value of the + label with key matches that of any node + on which a pod of the set of pods is running + properties: + labelSelector: + description: A label query over a set of resources, + in this case pods. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are + ANDed. + items: + description: A label selector requirement + is a selector that contains values, a key, + and an operator that relates the key and + values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: operator represents a key's + relationship to a set of values. Valid + operators are In, NotIn, Exists and + DoesNotExist. + type: string + values: + description: values is an array of string + values. If the operator is In or NotIn, + the values array must be non-empty. + If the operator is Exists or DoesNotExist, + the values array must be empty. This + array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: matchLabels is a map of {key,value} + pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, + whose key field is "key", the operator is + "In", and the values array contains only "value". + The requirements are ANDed. + type: object + type: object + namespaces: + description: namespaces specifies which namespaces + the labelSelector applies to (matches against); + null or empty list means "this pod's namespace" + items: + type: string + type: array + topologyKey: + description: This pod should be co-located (affinity) + or not co-located (anti-affinity) with the pods + matching the labelSelector in the specified namespaces, + where co-located is defined as running on a node + whose value of the label with key topologyKey + matches that of any node on which any of the selected + pods is running. Empty topologyKey is not allowed. + type: string + required: + - topologyKey + type: object + type: array + type: object + podAntiAffinity: + description: Describes pod anti-affinity scheduling rules + (e.g. avoid putting this pod in the same node, zone, etc. + as some other pod(s)). + properties: + preferredDuringSchedulingIgnoredDuringExecution: + description: The scheduler will prefer to schedule pods + to nodes that satisfy the anti-affinity expressions + specified by this field, but it may choose a node that + violates one or more of the expressions. The node that + is most preferred is the one with the greatest sum of + weights, i.e. for each node that meets all of the scheduling + requirements (resource request, requiredDuringScheduling + anti-affinity expressions, etc.), compute a sum by iterating + through the elements of this field and adding "weight" + to the sum if the node has pods which matches the corresponding + podAffinityTerm; the node(s) with the highest sum are + the most preferred. + items: + description: The weights of all of the matched WeightedPodAffinityTerm + fields are added per-node to find the most preferred + node(s) + properties: + podAffinityTerm: + description: Required. A pod affinity term, associated + with the corresponding weight. + properties: + labelSelector: + description: A label query over a set of resources, + in this case pods. + properties: + matchExpressions: + description: matchExpressions is a list + of label selector requirements. The requirements + are ANDed. + items: + description: A label selector requirement + is a selector that contains values, + a key, and an operator that relates + the key and values. + properties: + key: + description: key is the label key + that the selector applies to. + type: string + operator: + description: operator represents a + key's relationship to a set of values. + Valid operators are In, NotIn, Exists + and DoesNotExist. + type: string + values: + description: values is an array of + string values. If the operator is + In or NotIn, the values array must + be non-empty. If the operator is + Exists or DoesNotExist, the values + array must be empty. This array + is replaced during a strategic merge + patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: matchLabels is a map of {key,value} + pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, + whose key field is "key", the operator + is "In", and the values array contains + only "value". The requirements are ANDed. + type: object + type: object + namespaces: + description: namespaces specifies which namespaces + the labelSelector applies to (matches against); + null or empty list means "this pod's namespace" + items: + type: string + type: array + topologyKey: + description: This pod should be co-located (affinity) + or not co-located (anti-affinity) with the + pods matching the labelSelector in the specified + namespaces, where co-located is defined as + running on a node whose value of the label + with key topologyKey matches that of any node + on which any of the selected pods is running. + Empty topologyKey is not allowed. + type: string + required: + - topologyKey + type: object + weight: + description: weight associated with matching the + corresponding podAffinityTerm, in the range 1-100. + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + description: If the anti-affinity requirements specified + by this field are not met at scheduling time, the pod + will not be scheduled onto the node. If the anti-affinity + requirements specified by this field cease to be met + at some point during pod execution (e.g. due to a pod + label update), the system may or may not try to eventually + evict the pod from its node. When there are multiple + elements, the lists of nodes corresponding to each podAffinityTerm + are intersected, i.e. all terms must be satisfied. + items: + description: Defines a set of pods (namely those matching + the labelSelector relative to the given namespace(s)) + that this pod should be co-located (affinity) or not + co-located (anti-affinity) with, where co-located + is defined as running on a node whose value of the + label with key matches that of any node + on which a pod of the set of pods is running + properties: + labelSelector: + description: A label query over a set of resources, + in this case pods. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are + ANDed. + items: + description: A label selector requirement + is a selector that contains values, a key, + and an operator that relates the key and + values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: operator represents a key's + relationship to a set of values. Valid + operators are In, NotIn, Exists and + DoesNotExist. + type: string + values: + description: values is an array of string + values. If the operator is In or NotIn, + the values array must be non-empty. + If the operator is Exists or DoesNotExist, + the values array must be empty. This + array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: matchLabels is a map of {key,value} + pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, + whose key field is "key", the operator is + "In", and the values array contains only "value". + The requirements are ANDed. + type: object + type: object + namespaces: + description: namespaces specifies which namespaces + the labelSelector applies to (matches against); + null or empty list means "this pod's namespace" + items: + type: string + type: array + topologyKey: + description: This pod should be co-located (affinity) + or not co-located (anti-affinity) with the pods + matching the labelSelector in the specified namespaces, + where co-located is defined as running on a node + whose value of the label with key topologyKey + matches that of any node on which any of the selected + pods is running. Empty topologyKey is not allowed. + type: string + required: + - topologyKey + type: object + type: array + type: object + type: object + labels: + type: object + nodeSelector: + additionalProperties: + type: string + description: Node selector to control the selection of nodes (optional) + type: object + resources: + description: Resources the HPE CSI Operator CSP containers will + use. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: Limits describes the maximum amount of compute + resources allowed + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: Requests describes the minimum amount of compute + resources required + type: object + type: object + tolerations: + description: tolerations for csp + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + type: integer + value: + type: string + type: object + type: array + type: object + disable: + description: Control CSP Service and Deployments for HPE storage products + properties: + alletra6000: + type: boolean + alletra9000: + type: boolean + alletraStorageMP: + type: boolean + nimble: + type: boolean + primera: + type: boolean + required: + - alletra6000 + - alletra9000 + - nimble + - primera + - alletraStorageMP + type: object + disableHostDeletion: + description: Disables host deletion by the CSP when no volumes are + associated with the host + type: boolean + disableNodeConfiguration: + description: DisableNodeConfiguration disables default configurations + performed by CSI plugin on node(s) + type: boolean + disableNodeConformance: + description: DisableNodeConformance disables automatic installation + of iscsi/multipath packages + type: boolean + disableNodeGetVolumeStats: + description: DisableNodeGetVolumeStats will be called by default, + set true to disable the call + type: boolean + disableNodeMonitor: + description: Disable the Node Monitor + type: boolean + imagePullPolicy: + description: Image Pull Policy for HPE CSI driver images + type: string + images: + description: HPE CSI Operator Images + properties: + csiAttacher: + type: string + csiControllerDriver: + type: string + csiExtensions: + type: string + csiNodeDriver: + type: string + csiNodeDriverRegistrar: + type: string + csiProvisioner: + type: string + csiResizer: + type: string + csiSnapshotter: + type: string + csiVolumeGroupProvisioner: + type: string + csiVolumeGroupSnapshotter: + type: string + csiVolumeMutator: + type: string + nfsProvisioner: + type: string + nimbleCSP: + type: string + primera3parCSP: + type: string + required: + - csiNodeDriver + - csiControllerDriver + - nimbleCSP + - primera3parCSP + - nfsProvisioner + - csiExtensions + - csiVolumeGroupProvisioner + - csiVolumeGroupSnapshotter + - csiVolumeMutator + - csiAttacher + - csiNodeDriverRegistrar + - csiProvisioner + - csiResizer + - csiSnapshotter + type: object + iscsi: + description: iSCSI parameters to be configured + properties: + chapSecretName: + type: string + required: + - chapSecretName + type: object + kubeletRootDir: + description: Kubelet root directory path + type: string + logLevel: + description: Default logLevel for HPE CSI driver deployments + type: string + node: + description: Node parameters to be configured + properties: + affinity: + description: Node affinity for node plugin (optional) + properties: + nodeAffinity: + description: Describes node affinity scheduling rules for + the pod. + properties: + preferredDuringSchedulingIgnoredDuringExecution: + description: The scheduler will prefer to schedule pods + to nodes that satisfy the affinity expressions specified + by this field, but it may choose a node that violates + one or more of the expressions. The node that is most + preferred is the one with the greatest sum of weights, + i.e. for each node that meets all of the scheduling + requirements (resource request, requiredDuringScheduling + affinity expressions, etc.), compute a sum by iterating + through the elements of this field and adding "weight" + to the sum if the node matches the corresponding matchExpressions; + the node(s) with the highest sum are the most preferred. + items: + description: An empty preferred scheduling term matches + all objects with implicit weight 0 (i.e. it's a no-op). + A null preferred scheduling term matches no objects + (i.e. is also a no-op). + properties: + preference: + description: A node selector term, associated with + the corresponding weight. + properties: + matchExpressions: + description: A list of node selector requirements + by node's labels. + items: + description: A node selector requirement is + a selector that contains values, a key, + and an operator that relates the key and + values. + properties: + key: + description: The label key that the selector + applies to. + type: string + operator: + description: Represents a key's relationship + to a set of values. Valid operators + are In, NotIn, Exists, DoesNotExist. + Gt, and Lt. + type: string + values: + description: An array of string values. + If the operator is In or NotIn, the + values array must be non-empty. If the + operator is Exists or DoesNotExist, + the values array must be empty. If the + operator is Gt or Lt, the values array + must have a single element, which will + be interpreted as an integer. This array + is replaced during a strategic merge + patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchFields: + description: A list of node selector requirements + by node's fields. + items: + description: A node selector requirement is + a selector that contains values, a key, + and an operator that relates the key and + values. + properties: + key: + description: The label key that the selector + applies to. + type: string + operator: + description: Represents a key's relationship + to a set of values. Valid operators + are In, NotIn, Exists, DoesNotExist. + Gt, and Lt. + type: string + values: + description: An array of string values. + If the operator is In or NotIn, the + values array must be non-empty. If the + operator is Exists or DoesNotExist, + the values array must be empty. If the + operator is Gt or Lt, the values array + must have a single element, which will + be interpreted as an integer. This array + is replaced during a strategic merge + patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + type: object + weight: + description: Weight associated with matching the + corresponding nodeSelectorTerm, in the range 1-100. + format: int32 + type: integer + required: + - preference + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + description: If the affinity requirements specified by + this field are not met at scheduling time, the pod will + not be scheduled onto the node. If the affinity requirements + specified by this field cease to be met at some point + during pod execution (e.g. due to an update), the system + may or may not try to eventually evict the pod from + its node. + properties: + nodeSelectorTerms: + description: Required. A list of node selector terms. + The terms are ORed. + items: + description: A null or empty node selector term + matches no objects. The requirements of them are + ANDed. The TopologySelectorTerm type implements + a subset of the NodeSelectorTerm. + properties: + matchExpressions: + description: A list of node selector requirements + by node's labels. + items: + description: A node selector requirement is + a selector that contains values, a key, + and an operator that relates the key and + values. + properties: + key: + description: The label key that the selector + applies to. + type: string + operator: + description: Represents a key's relationship + to a set of values. Valid operators + are In, NotIn, Exists, DoesNotExist. + Gt, and Lt. + type: string + values: + description: An array of string values. + If the operator is In or NotIn, the + values array must be non-empty. If the + operator is Exists or DoesNotExist, + the values array must be empty. If the + operator is Gt or Lt, the values array + must have a single element, which will + be interpreted as an integer. This array + is replaced during a strategic merge + patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchFields: + description: A list of node selector requirements + by node's fields. + items: + description: A node selector requirement is + a selector that contains values, a key, + and an operator that relates the key and + values. + properties: + key: + description: The label key that the selector + applies to. + type: string + operator: + description: Represents a key's relationship + to a set of values. Valid operators + are In, NotIn, Exists, DoesNotExist. + Gt, and Lt. + type: string + values: + description: An array of string values. + If the operator is In or NotIn, the + values array must be non-empty. If the + operator is Exists or DoesNotExist, + the values array must be empty. If the + operator is Gt or Lt, the values array + must have a single element, which will + be interpreted as an integer. This array + is replaced during a strategic merge + patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + type: object + type: array + required: + - nodeSelectorTerms + type: object + type: object + podAffinity: + description: Describes pod affinity scheduling rules (e.g. + co-locate this pod in the same node, zone, etc. as some + other pod(s)). + properties: + preferredDuringSchedulingIgnoredDuringExecution: + description: The scheduler will prefer to schedule pods + to nodes that satisfy the affinity expressions specified + by this field, but it may choose a node that violates + one or more of the expressions. The node that is most + preferred is the one with the greatest sum of weights, + i.e. for each node that meets all of the scheduling + requirements (resource request, requiredDuringScheduling + affinity expressions, etc.), compute a sum by iterating + through the elements of this field and adding "weight" + to the sum if the node has pods which matches the corresponding + podAffinityTerm; the node(s) with the highest sum are + the most preferred. + items: + description: The weights of all of the matched WeightedPodAffinityTerm + fields are added per-node to find the most preferred + node(s) + properties: + podAffinityTerm: + description: Required. A pod affinity term, associated + with the corresponding weight. + properties: + labelSelector: + description: A label query over a set of resources, + in this case pods. + properties: + matchExpressions: + description: matchExpressions is a list + of label selector requirements. The requirements + are ANDed. + items: + description: A label selector requirement + is a selector that contains values, + a key, and an operator that relates + the key and values. + properties: + key: + description: key is the label key + that the selector applies to. + type: string + operator: + description: operator represents a + key's relationship to a set of values. + Valid operators are In, NotIn, Exists + and DoesNotExist. + type: string + values: + description: values is an array of + string values. If the operator is + In or NotIn, the values array must + be non-empty. If the operator is + Exists or DoesNotExist, the values + array must be empty. This array + is replaced during a strategic merge + patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: matchLabels is a map of {key,value} + pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, + whose key field is "key", the operator + is "In", and the values array contains + only "value". The requirements are ANDed. + type: object + type: object + namespaces: + description: namespaces specifies which namespaces + the labelSelector applies to (matches against); + null or empty list means "this pod's namespace" + items: + type: string + type: array + topologyKey: + description: This pod should be co-located (affinity) + or not co-located (anti-affinity) with the + pods matching the labelSelector in the specified + namespaces, where co-located is defined as + running on a node whose value of the label + with key topologyKey matches that of any node + on which any of the selected pods is running. + Empty topologyKey is not allowed. + type: string + required: + - topologyKey + type: object + weight: + description: weight associated with matching the + corresponding podAffinityTerm, in the range 1-100. + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + description: If the affinity requirements specified by + this field are not met at scheduling time, the pod will + not be scheduled onto the node. If the affinity requirements + specified by this field cease to be met at some point + during pod execution (e.g. due to a pod label update), + the system may or may not try to eventually evict the + pod from its node. When there are multiple elements, + the lists of nodes corresponding to each podAffinityTerm + are intersected, i.e. all terms must be satisfied. + items: + description: Defines a set of pods (namely those matching + the labelSelector relative to the given namespace(s)) + that this pod should be co-located (affinity) or not + co-located (anti-affinity) with, where co-located + is defined as running on a node whose value of the + label with key matches that of any node + on which a pod of the set of pods is running + properties: + labelSelector: + description: A label query over a set of resources, + in this case pods. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are + ANDed. + items: + description: A label selector requirement + is a selector that contains values, a key, + and an operator that relates the key and + values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: operator represents a key's + relationship to a set of values. Valid + operators are In, NotIn, Exists and + DoesNotExist. + type: string + values: + description: values is an array of string + values. If the operator is In or NotIn, + the values array must be non-empty. + If the operator is Exists or DoesNotExist, + the values array must be empty. This + array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: matchLabels is a map of {key,value} + pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, + whose key field is "key", the operator is + "In", and the values array contains only "value". + The requirements are ANDed. + type: object + type: object + namespaces: + description: namespaces specifies which namespaces + the labelSelector applies to (matches against); + null or empty list means "this pod's namespace" + items: + type: string + type: array + topologyKey: + description: This pod should be co-located (affinity) + or not co-located (anti-affinity) with the pods + matching the labelSelector in the specified namespaces, + where co-located is defined as running on a node + whose value of the label with key topologyKey + matches that of any node on which any of the selected + pods is running. Empty topologyKey is not allowed. + type: string + required: + - topologyKey + type: object + type: array + type: object + podAntiAffinity: + description: Describes pod anti-affinity scheduling rules + (e.g. avoid putting this pod in the same node, zone, etc. + as some other pod(s)). + properties: + preferredDuringSchedulingIgnoredDuringExecution: + description: The scheduler will prefer to schedule pods + to nodes that satisfy the anti-affinity expressions + specified by this field, but it may choose a node that + violates one or more of the expressions. The node that + is most preferred is the one with the greatest sum of + weights, i.e. for each node that meets all of the scheduling + requirements (resource request, requiredDuringScheduling + anti-affinity expressions, etc.), compute a sum by iterating + through the elements of this field and adding "weight" + to the sum if the node has pods which matches the corresponding + podAffinityTerm; the node(s) with the highest sum are + the most preferred. + items: + description: The weights of all of the matched WeightedPodAffinityTerm + fields are added per-node to find the most preferred + node(s) + properties: + podAffinityTerm: + description: Required. A pod affinity term, associated + with the corresponding weight. + properties: + labelSelector: + description: A label query over a set of resources, + in this case pods. + properties: + matchExpressions: + description: matchExpressions is a list + of label selector requirements. The requirements + are ANDed. + items: + description: A label selector requirement + is a selector that contains values, + a key, and an operator that relates + the key and values. + properties: + key: + description: key is the label key + that the selector applies to. + type: string + operator: + description: operator represents a + key's relationship to a set of values. + Valid operators are In, NotIn, Exists + and DoesNotExist. + type: string + values: + description: values is an array of + string values. If the operator is + In or NotIn, the values array must + be non-empty. If the operator is + Exists or DoesNotExist, the values + array must be empty. This array + is replaced during a strategic merge + patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: matchLabels is a map of {key,value} + pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, + whose key field is "key", the operator + is "In", and the values array contains + only "value". The requirements are ANDed. + type: object + type: object + namespaces: + description: namespaces specifies which namespaces + the labelSelector applies to (matches against); + null or empty list means "this pod's namespace" + items: + type: string + type: array + topologyKey: + description: This pod should be co-located (affinity) + or not co-located (anti-affinity) with the + pods matching the labelSelector in the specified + namespaces, where co-located is defined as + running on a node whose value of the label + with key topologyKey matches that of any node + on which any of the selected pods is running. + Empty topologyKey is not allowed. + type: string + required: + - topologyKey + type: object + weight: + description: weight associated with matching the + corresponding podAffinityTerm, in the range 1-100. + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + description: If the anti-affinity requirements specified + by this field are not met at scheduling time, the pod + will not be scheduled onto the node. If the anti-affinity + requirements specified by this field cease to be met + at some point during pod execution (e.g. due to a pod + label update), the system may or may not try to eventually + evict the pod from its node. When there are multiple + elements, the lists of nodes corresponding to each podAffinityTerm + are intersected, i.e. all terms must be satisfied. + items: + description: Defines a set of pods (namely those matching + the labelSelector relative to the given namespace(s)) + that this pod should be co-located (affinity) or not + co-located (anti-affinity) with, where co-located + is defined as running on a node whose value of the + label with key matches that of any node + on which a pod of the set of pods is running + properties: + labelSelector: + description: A label query over a set of resources, + in this case pods. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are + ANDed. + items: + description: A label selector requirement + is a selector that contains values, a key, + and an operator that relates the key and + values. + properties: + key: + description: key is the label key that + the selector applies to. + type: string + operator: + description: operator represents a key's + relationship to a set of values. Valid + operators are In, NotIn, Exists and + DoesNotExist. + type: string + values: + description: values is an array of string + values. If the operator is In or NotIn, + the values array must be non-empty. + If the operator is Exists or DoesNotExist, + the values array must be empty. This + array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: matchLabels is a map of {key,value} + pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, + whose key field is "key", the operator is + "In", and the values array contains only "value". + The requirements are ANDed. + type: object + type: object + namespaces: + description: namespaces specifies which namespaces + the labelSelector applies to (matches against); + null or empty list means "this pod's namespace" + items: + type: string + type: array + topologyKey: + description: This pod should be co-located (affinity) + or not co-located (anti-affinity) with the pods + matching the labelSelector in the specified namespaces, + where co-located is defined as running on a node + whose value of the label with key topologyKey + matches that of any node on which any of the selected + pods is running. Empty topologyKey is not allowed. + type: string + required: + - topologyKey + type: object + type: array + type: object + type: object + labels: + type: object + nodeSelector: + additionalProperties: + type: string + description: Node selector to control the selection of nodes (optional) + type: object + resources: + description: Resources the HPE CSI Operator node containers will + use. + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: Limits describes the maximum amount of compute + resources allowed + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: Requests describes the minimum amount of compute + resources required + type: object + type: object + tolerations: + description: Set tolerations for the node pods(optional) + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + type: integer + value: + type: string + type: object + type: array + type: object + required: + - disable + - disableNodeConformance + - disableNodeConfiguration + - disableNodeGetVolumeStats + - disableNodeMonitor + - disableHostDeletion + - imagePullPolicy + - images + - iscsi + - kubeletRootDir + - logLevel + - csp + - controller + - node + type: object + status: + description: HpecsidriverStatus defines the observed state of HPECSIDriver + properties: + conditions: + description: HPE CSI Driver helm release status + items: + properties: + lastTransitionTime: + format: date-time + type: string + message: + type: string + reason: + type: string + status: + type: string + type: + type: string + required: + - status + - type + type: object + type: array + deployedRelease: + description: HPE CSI Driver helm release + properties: + manifest: + type: string + name: + type: string + type: object + required: + - conditions + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/operators/hpe-csi-operator/2.5.1/metadata/annotations.yaml b/operators/hpe-csi-operator/2.5.1/metadata/annotations.yaml new file mode 100644 index 00000000000..8789c33dd95 --- /dev/null +++ b/operators/hpe-csi-operator/2.5.1/metadata/annotations.yaml @@ -0,0 +1,14 @@ +annotations: + # Core bundle annotations. + operators.operatorframework.io.bundle.mediatype.v1: registry+v1 + operators.operatorframework.io.bundle.manifests.v1: manifests/ + operators.operatorframework.io.bundle.metadata.v1: metadata/ + operators.operatorframework.io.bundle.package.v1: hpe-csi-operator + operators.operatorframework.io.bundle.channels.v1: stable + operators.operatorframework.io.metrics.builder: operator-sdk-v1.35.0 + operators.operatorframework.io.metrics.mediatype.v1: metrics+v1 + operators.operatorframework.io.metrics.project_layout: helm.sdk.operatorframework.io/v1 + + # Annotations for testing. + operators.operatorframework.io.test.mediatype.v1: scorecard+v1 + operators.operatorframework.io.test.config.v1: tests/scorecard/ diff --git a/operators/hpe-csi-operator/2.5.1/tests/scorecard/config.yaml b/operators/hpe-csi-operator/2.5.1/tests/scorecard/config.yaml new file mode 100644 index 00000000000..4e32de13b2e --- /dev/null +++ b/operators/hpe-csi-operator/2.5.1/tests/scorecard/config.yaml @@ -0,0 +1,70 @@ +apiVersion: scorecard.operatorframework.io/v1alpha3 +kind: Configuration +metadata: + name: config +stages: +- parallel: true + tests: + - entrypoint: + - scorecard-test + - basic-check-spec + image: quay.io/operator-framework/scorecard-test:v1.35.0 + labels: + suite: basic + test: basic-check-spec-test + storage: + spec: + mountPath: {} + - entrypoint: + - scorecard-test + - olm-bundle-validation + image: quay.io/operator-framework/scorecard-test:v1.35.0 + labels: + suite: olm + test: olm-bundle-validation-test + storage: + spec: + mountPath: {} + - entrypoint: + - scorecard-test + - olm-crds-have-validation + image: quay.io/operator-framework/scorecard-test:v1.35.0 + labels: + suite: olm + test: olm-crds-have-validation-test + storage: + spec: + mountPath: {} + - entrypoint: + - scorecard-test + - olm-crds-have-resources + image: quay.io/operator-framework/scorecard-test:v1.35.0 + labels: + suite: olm + test: olm-crds-have-resources-test + storage: + spec: + mountPath: {} + - entrypoint: + - scorecard-test + - olm-spec-descriptors + image: quay.io/operator-framework/scorecard-test:v1.35.0 + labels: + suite: olm + test: olm-spec-descriptors-test + storage: + spec: + mountPath: {} + - entrypoint: + - scorecard-test + - olm-status-descriptors + image: quay.io/operator-framework/scorecard-test:v1.35.0 + labels: + suite: olm + test: olm-status-descriptors-test + storage: + spec: + mountPath: {} +storage: + spec: + mountPath: {}