From 97554295158b1b2199499899ed06e1aec95a3920 Mon Sep 17 00:00:00 2001 From: Joe McCormick <31295332+iamjoemccormick@users.noreply.github.com> Date: Mon, 4 Nov 2024 11:41:23 -0600 Subject: [PATCH] operator beegfs-csi-driver-operator (1.7.0) --- ...er-manager-metrics-service_v1_service.yaml | 16 + ...-operator-manager-config_v1_configmap.yaml | 17 + ...c.authorization.k8s.io_v1_clusterrole.yaml | 10 + ...driver-operator.clusterserviceversion.yaml | 696 ++++++++++ .../beegfs.csi.netapp.com_beegfsdrivers.yaml | 1161 +++++++++++++++++ .../1.7.0/metadata/annotations.yaml | 18 + .../1.7.0/tests/scorecard/config.yaml | 70 + 7 files changed, 1988 insertions(+) create mode 100644 operators/beegfs-csi-driver-operator/1.7.0/manifests/beegfs-csi-driver-operator-controller-manager-metrics-service_v1_service.yaml create mode 100644 operators/beegfs-csi-driver-operator/1.7.0/manifests/beegfs-csi-driver-operator-manager-config_v1_configmap.yaml create mode 100644 operators/beegfs-csi-driver-operator/1.7.0/manifests/beegfs-csi-driver-operator-metrics-reader_rbac.authorization.k8s.io_v1_clusterrole.yaml create mode 100644 operators/beegfs-csi-driver-operator/1.7.0/manifests/beegfs-csi-driver-operator.clusterserviceversion.yaml create mode 100644 operators/beegfs-csi-driver-operator/1.7.0/manifests/beegfs.csi.netapp.com_beegfsdrivers.yaml create mode 100644 operators/beegfs-csi-driver-operator/1.7.0/metadata/annotations.yaml create mode 100644 operators/beegfs-csi-driver-operator/1.7.0/tests/scorecard/config.yaml diff --git a/operators/beegfs-csi-driver-operator/1.7.0/manifests/beegfs-csi-driver-operator-controller-manager-metrics-service_v1_service.yaml b/operators/beegfs-csi-driver-operator/1.7.0/manifests/beegfs-csi-driver-operator-controller-manager-metrics-service_v1_service.yaml new file mode 100644 index 00000000000..4948c02cc9b --- /dev/null +++ b/operators/beegfs-csi-driver-operator/1.7.0/manifests/beegfs-csi-driver-operator-controller-manager-metrics-service_v1_service.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Service +metadata: + creationTimestamp: null + labels: + control-plane: controller-manager + name: beegfs-csi-driver-operator-controller-manager-metrics-service +spec: + ports: + - name: https + port: 8443 + targetPort: https + selector: + control-plane: controller-manager +status: + loadBalancer: {} diff --git a/operators/beegfs-csi-driver-operator/1.7.0/manifests/beegfs-csi-driver-operator-manager-config_v1_configmap.yaml b/operators/beegfs-csi-driver-operator/1.7.0/manifests/beegfs-csi-driver-operator-manager-config_v1_configmap.yaml new file mode 100644 index 00000000000..ad6ebb010c1 --- /dev/null +++ b/operators/beegfs-csi-driver-operator/1.7.0/manifests/beegfs-csi-driver-operator-manager-config_v1_configmap.yaml @@ -0,0 +1,17 @@ +apiVersion: v1 +data: + controller_manager_config.yaml: | + apiVersion: controller-runtime.sigs.k8s.io/v1alpha1 + kind: ControllerManagerConfig + health: + healthProbeBindAddress: :8081 + metrics: + bindAddress: 127.0.0.1:8080 + webhook: + port: 9443 + leaderElection: + leaderElect: true + resourceName: 0d697945.csi.netapp.com +kind: ConfigMap +metadata: + name: beegfs-csi-driver-operator-manager-config diff --git a/operators/beegfs-csi-driver-operator/1.7.0/manifests/beegfs-csi-driver-operator-metrics-reader_rbac.authorization.k8s.io_v1_clusterrole.yaml b/operators/beegfs-csi-driver-operator/1.7.0/manifests/beegfs-csi-driver-operator-metrics-reader_rbac.authorization.k8s.io_v1_clusterrole.yaml new file mode 100644 index 00000000000..8d0c55d904c --- /dev/null +++ b/operators/beegfs-csi-driver-operator/1.7.0/manifests/beegfs-csi-driver-operator-metrics-reader_rbac.authorization.k8s.io_v1_clusterrole.yaml @@ -0,0 +1,10 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + creationTimestamp: null + name: beegfs-csi-driver-operator-metrics-reader +rules: +- nonResourceURLs: + - /metrics + verbs: + - get diff --git a/operators/beegfs-csi-driver-operator/1.7.0/manifests/beegfs-csi-driver-operator.clusterserviceversion.yaml b/operators/beegfs-csi-driver-operator/1.7.0/manifests/beegfs-csi-driver-operator.clusterserviceversion.yaml new file mode 100644 index 00000000000..6f4716c99eb --- /dev/null +++ b/operators/beegfs-csi-driver-operator/1.7.0/manifests/beegfs-csi-driver-operator.clusterserviceversion.yaml @@ -0,0 +1,696 @@ +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + annotations: + alm-examples: |- + [ + { + "apiVersion": "beegfs.csi.netapp.com/v1", + "kind": "BeegfsDriver", + "metadata": { + "name": "csi-beegfs-cr" + }, + "spec": { + "nodeAffinityControllerService": { + "preferredDuringSchedulingIgnoredDuringExecution": [ + { + "preference": { + "matchExpressions": [ + { + "key": "node-role.kubernetes.io/master", + "operator": "Exists" + } + ] + }, + "weight": 50 + } + ], + "requiredDuringSchedulingIgnoredDuringExecution": { + "nodeSelectorTerms": [ + { + "matchExpressions": [ + { + "key": "node.openshift.io/os_id", + "operator": "NotIn", + "values": [ + "rhcos" + ] + } + ] + } + ] + } + }, + "nodeAffinityNodeService": { + "requiredDuringSchedulingIgnoredDuringExecution": { + "nodeSelectorTerms": [ + { + "matchExpressions": [ + { + "key": "node.openshift.io/os_id", + "operator": "NotIn", + "values": [ + "rhcos" + ] + } + ] + } + ] + } + } + } + } + ] + capabilities: Seamless Upgrades + categories: Storage + containerImage: ghcr.io/thinkparq/beegfs-csi-driver-operator:v1.7.0 + createdAt: 2021-06-30:03:11:00 + description: Install and manage the BeeGFS CSI driver + operatorframework.io/suggested-namespace: beegfs-csi + operators.operatorframework.io/builder: operator-sdk-v1.25.0 + operators.operatorframework.io/project_layout: go.kubebuilder.io/v3 + repository: https://github.com/ThinkParQ/beegfs-csi-driver + support: ThinkParQ + name: beegfs-csi-driver-operator.v1.7.0 + namespace: placeholder +spec: + apiservicedefinitions: {} + customresourcedefinitions: + owned: + - description: Deploys the BeeGFS CSI driver + displayName: BeeGFS Driver + kind: BeegfsDriver + name: beegfsdrivers.beegfs.csi.netapp.com + resources: + - kind: ConfigMap + name: "" + version: v1 + - kind: DaemonSet + name: "" + version: v1 + - kind: Secret + name: "" + version: v1 + - kind: StatefulSet + name: "" + version: v1 + specDescriptors: + - description: Defaults to ghcr.io/thinkparq/beegfs-csi-driver:. + displayName: BeeGFS CSI Driver + path: containerImageOverrides.beegfsCsiDriver + - description: A combination of registry and image (e.g. registry.k8s.io/csi-provisioner + or ghcr.io/thinkparq/beegfs-csi-driver). + displayName: Image + path: containerImageOverrides.beegfsCsiDriver.image + - description: A tag (e.g. v2.2.2 or latest). + displayName: Tag + path: containerImageOverrides.beegfsCsiDriver.tag + - description: Defaults to registry.k8s.io/sig-storage/csi-node-driver-registrar:. + displayName: CSI Node Driver Registrar + path: containerImageOverrides.csiNodeDriverRegistrar + - description: A combination of registry and image (e.g. registry.k8s.io/csi-provisioner + or ghcr.io/thinkparq/beegfs-csi-driver). + displayName: Image + path: containerImageOverrides.csiNodeDriverRegistrar.image + - description: A tag (e.g. v2.2.2 or latest). + displayName: Tag + path: containerImageOverrides.csiNodeDriverRegistrar.tag + - description: Defaults to registry.k8s.io/sig-storage/csi-provisioner:. + displayName: CSI Provisioner + path: containerImageOverrides.csiProvisioner + - description: A combination of registry and image (e.g. registry.k8s.io/csi-provisioner + or ghcr.io/thinkparq/beegfs-csi-driver). + displayName: Image + path: containerImageOverrides.csiProvisioner.image + - description: A tag (e.g. v2.2.2 or latest). + displayName: Tag + path: containerImageOverrides.csiProvisioner.tag + - description: Defaults to registry.k8s.io/sig-storage/csi-resizer:. + displayName: CSI Resizer + path: containerImageOverrides.csiResizer + - description: A combination of registry and image (e.g. registry.k8s.io/csi-provisioner + or ghcr.io/thinkparq/beegfs-csi-driver). + displayName: Image + path: containerImageOverrides.csiResizer.image + - description: A tag (e.g. v2.2.2 or latest). + displayName: Tag + path: containerImageOverrides.csiResizer.tag + - description: Defaults to registry.k8s.io/sig-storage/livenessprobe:. + displayName: Liveness Probe + path: containerImageOverrides.livenessProbe + - description: A combination of registry and image (e.g. registry.k8s.io/csi-provisioner + or ghcr.io/thinkparq/beegfs-csi-driver). + displayName: Image + path: containerImageOverrides.livenessProbe.image + - description: A tag (e.g. v2.2.2 or latest). + displayName: Tag + path: containerImageOverrides.livenessProbe.tag + - description: 'The resource specifications for the beegfs container of the + BeeGFS driver controller pod. The default values for requests are (cpu: + 100m, memory: 16Mi). The default values for limits are (cpu: None, memory: + 256Mi).' + displayName: Controller beegfs resources + path: containerResourceOverrides.controllerBeegfs + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:resourceRequirements + - description: 'The resource specifications for the csi-provisioner container + of the BeeGFS driver controller pod. The default values for requests are + (cpu: 80m, memory: 24Mi) The default values for limits are (cpu: None, memory + 256Mi)' + displayName: Controller csi-provisioner resources + path: containerResourceOverrides.controllerCsiProvisioner + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:resourceRequirements + - description: 'The resource specifications for the beegfs container of the + BeeGFS driver node pod. The default values for requests are (cpu: 100m, + memory: 20Mi) The default values for limits are (cpu: None, memory: 128Mi)' + displayName: Node beegfs resources + path: containerResourceOverrides.nodeBeegfs + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:resourceRequirements + - description: 'The resource specifications for the node-driver-registrar container + of the BeeGFS driver node pod. The default values for requests are (cpu: + 80m, memory: 10Mi) The default values for limits are (cpu: None, memory + 128Mi)' + displayName: Node node-driver-registrar resources + path: containerResourceOverrides.nodeDriverRegistrar + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:resourceRequirements + - description: 'The resource specifications for the liveness-probe container + of the BeeGFS driver node pod. The default values for requests are (cpu: + 60m, memory: 20Mi) The default values for limits are (cpu: None, memory: + 128Mi)' + displayName: Node liveness-probe resources + path: containerResourceOverrides.nodeLivenessProbe + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:resourceRequirements + - description: The logging level of deployed containers expressed as an integer + from 0 (low detail) to 5 (high detail). 0 only logs errors. 3 logs most + RPC requests/responses and some detail about driver actions. 5 logs all + RPC requests/responses, including redundant/frequently occurring ones. Empty + defaults to level 3. + displayName: Log Level + path: logLevel + - description: 'The controller service consists of a single Pod. It preferably + runs on an infrastructure/master node, but the running node must have the + beegfs-utils and beegfs-client packages installed. E.g. "preferred: node-role.kubernetes.io/master + Exists" and/or "required: node.openshift.io/os_id NotIn rhcos".' + displayName: Node Affinity Controller Service + path: nodeAffinityControllerService + - description: 'The node service consists of one Pod running on each eligible + node. It runs on every node expected to host a workload that requires BeeGFS. + Running nodes must have the beegfs-utils and beegfs-client packages installed. + E.g. "required: node.openshift.io/os_id NotIn rhcos".' + displayName: Node Affinity Node Service + path: nodeAffinityNodeService + - displayName: Plugin Config From File + path: pluginConfig + - displayName: Default Config + path: pluginConfig.config + - description: A map of additional key value pairs matching key value pairs + in the beegfs-client.conf file. See beegfs-client.conf for more details. + Values MUST be specified as strings, even if they appear to be integers + or booleans (e.g. "8000", not 8000 and "true", not true). + displayName: Additional beegfs-client.conf Parameters + path: pluginConfig.config.beegfsClientConf + - description: A list of interfaces the BeeGFS client service can communicate + over (e.g. "ib0" or "eth0"). Often not required. See beegfs-client.conf + for more details. + displayName: Conn Interfaces + path: pluginConfig.config.connInterfaces + - description: A list of subnets the BeeGFS client service can use for outgoing + communication (e.g. "10.10.10.10/24"). Often not required. See beegfs-client.conf + for more details. + displayName: Conn Net Filter + path: pluginConfig.config.connNetFilter + - description: A list of interfaces the BeeGFS client will use for outbound + RDMA connections. This is used in support of the BeeGFS multi-rail feature. + This feature does not depend on or use the connInterfaces parameter. This + feature requires the BeeGFS client version 7.3.0 or later. + displayName: Conn RDMA Interfaces + path: pluginConfig.config.connRDMAInterfaces + - description: A list of subnets in which RDMA communication cannot or should + not be established (e.g. "10.10.10.11/24"). Often not required. See beegfs-client.conf + for more details. + displayName: Conn TCP Only Filter + path: pluginConfig.config.connTcpOnlyFilter + - displayName: File System Specific Config + path: pluginConfig.fileSystemSpecificConfigs[0].config + - description: A map of additional key value pairs matching key value pairs + in the beegfs-client.conf file. See beegfs-client.conf for more details. + Values MUST be specified as strings, even if they appear to be integers + or booleans (e.g. "8000", not 8000 and "true", not true). + displayName: Additional beegfs-client.conf Parameters + path: pluginConfig.fileSystemSpecificConfigs[0].config.beegfsClientConf + - description: A list of interfaces the BeeGFS client service can communicate + over (e.g. "ib0" or "eth0"). Often not required. See beegfs-client.conf + for more details. + displayName: Conn Interfaces + path: pluginConfig.fileSystemSpecificConfigs[0].config.connInterfaces + - description: A list of subnets the BeeGFS client service can use for outgoing + communication (e.g. "10.10.10.10/24"). Often not required. See beegfs-client.conf + for more details. + displayName: Conn Net Filter + path: pluginConfig.fileSystemSpecificConfigs[0].config.connNetFilter + - description: A list of interfaces the BeeGFS client will use for outbound + RDMA connections. This is used in support of the BeeGFS multi-rail feature. + This feature does not depend on or use the connInterfaces parameter. This + feature requires the BeeGFS client version 7.3.0 or later. + displayName: Conn RDMA Interfaces + path: pluginConfig.fileSystemSpecificConfigs[0].config.connRDMAInterfaces + - description: A list of subnets in which RDMA communication cannot or should + not be established (e.g. "10.10.10.11/24"). Often not required. See beegfs-client.conf + for more details. + displayName: Conn TCP Only Filter + path: pluginConfig.fileSystemSpecificConfigs[0].config.connTcpOnlyFilter + - description: The sysMgmtdHost used by the BeeGFS client service to make initial + contact with the BeeGFS mgmtd service. + displayName: SysMgmtdHost + path: pluginConfig.fileSystemSpecificConfigs[0].sysMgmtdHost + - displayName: Default Config for Nodes + path: pluginConfig.nodeSpecificConfigs[0].config + - description: A map of additional key value pairs matching key value pairs + in the beegfs-client.conf file. See beegfs-client.conf for more details. + Values MUST be specified as strings, even if they appear to be integers + or booleans (e.g. "8000", not 8000 and "true", not true). + displayName: Additional beegfs-client.conf Parameters + path: pluginConfig.nodeSpecificConfigs[0].config.beegfsClientConf + - description: A list of interfaces the BeeGFS client service can communicate + over (e.g. "ib0" or "eth0"). Often not required. See beegfs-client.conf + for more details. + displayName: Conn Interfaces + path: pluginConfig.nodeSpecificConfigs[0].config.connInterfaces + - description: A list of subnets the BeeGFS client service can use for outgoing + communication (e.g. "10.10.10.10/24"). Often not required. See beegfs-client.conf + for more details. + displayName: Conn Net Filter + path: pluginConfig.nodeSpecificConfigs[0].config.connNetFilter + - description: A list of interfaces the BeeGFS client will use for outbound + RDMA connections. This is used in support of the BeeGFS multi-rail feature. + This feature does not depend on or use the connInterfaces parameter. This + feature requires the BeeGFS client version 7.3.0 or later. + displayName: Conn RDMA Interfaces + path: pluginConfig.nodeSpecificConfigs[0].config.connRDMAInterfaces + - description: A list of subnets in which RDMA communication cannot or should + not be established (e.g. "10.10.10.11/24"). Often not required. See beegfs-client.conf + for more details. + displayName: Conn TCP Only Filter + path: pluginConfig.nodeSpecificConfigs[0].config.connTcpOnlyFilter + - description: A list of file system specific configurations that override the + default configuration for specific file systems on these nodes. + displayName: File System Specific Configs for Nodes + path: pluginConfig.nodeSpecificConfigs[0].fileSystemSpecificConfigs + - displayName: File System Specific Config + path: pluginConfig.nodeSpecificConfigs[0].fileSystemSpecificConfigs[0].config + - description: A map of additional key value pairs matching key value pairs + in the beegfs-client.conf file. See beegfs-client.conf for more details. + Values MUST be specified as strings, even if they appear to be integers + or booleans (e.g. "8000", not 8000 and "true", not true). + displayName: Additional beegfs-client.conf Parameters + path: pluginConfig.nodeSpecificConfigs[0].fileSystemSpecificConfigs[0].config.beegfsClientConf + - description: A list of interfaces the BeeGFS client service can communicate + over (e.g. "ib0" or "eth0"). Often not required. See beegfs-client.conf + for more details. + displayName: Conn Interfaces + path: pluginConfig.nodeSpecificConfigs[0].fileSystemSpecificConfigs[0].config.connInterfaces + - description: A list of subnets the BeeGFS client service can use for outgoing + communication (e.g. "10.10.10.10/24"). Often not required. See beegfs-client.conf + for more details. + displayName: Conn Net Filter + path: pluginConfig.nodeSpecificConfigs[0].fileSystemSpecificConfigs[0].config.connNetFilter + - description: A list of interfaces the BeeGFS client will use for outbound + RDMA connections. This is used in support of the BeeGFS multi-rail feature. + This feature does not depend on or use the connInterfaces parameter. This + feature requires the BeeGFS client version 7.3.0 or later. + displayName: Conn RDMA Interfaces + path: pluginConfig.nodeSpecificConfigs[0].fileSystemSpecificConfigs[0].config.connRDMAInterfaces + - description: A list of subnets in which RDMA communication cannot or should + not be established (e.g. "10.10.10.11/24"). Often not required. See beegfs-client.conf + for more details. + displayName: Conn TCP Only Filter + path: pluginConfig.nodeSpecificConfigs[0].fileSystemSpecificConfigs[0].config.connTcpOnlyFilter + - description: The sysMgmtdHost used by the BeeGFS client service to make initial + contact with the BeeGFS mgmtd service. + displayName: SysMgmtdHost + path: pluginConfig.nodeSpecificConfigs[0].fileSystemSpecificConfigs[0].sysMgmtdHost + - description: The list of nodes this configuration should be applied on. Each + entry is the hostname of the node or the name assigned to the node by the + container orchestrator (e.g. "node1" or "cluster05-node03"). + displayName: Node Names + path: pluginConfig.nodeSpecificConfigs[0].nodeList + statusDescriptors: + - displayName: Conditions + path: conditions + x-descriptors: + - urn:alm:descriptor:io.kubernetes.conditions + version: v1 + description: | + The BeeGFS Container Storage Interface (CSI) driver provides high performing and scalable storage for workloads + running in container orchestrators like Kubernetes. It allows containers to access existing datasets or request + on-demand ephemeral or persistent high speed storage backed by BeeGFS parallel file systems. + + This operator eases the installation and management of the BeeGFS CSI driver in an OpenShift or other Operator + Lifecycle Manager enabled cluster. + + ### Documentation + + Compatibility information and a quick start guide for the BeeGFS CSI driver itself are available on our [main GitHub + page](https://www.github.com/ThinkParQ/beegfs-csi-driver). Additional detailed documentation for the driver is + available in the [docs directory](https://www.github.com/ThinkParQ/beegfs-csi-driver/tree/master/docs) and for the + operator is available in the [operator + README](https://www.github.com/ThinkParQ/beegfs-csi-driver/tree/master/operator/README.md). + + ### Important Notes + + The BeeGFS client packages and kernel module must be pre-installed on all nodes that will run the driver. See the + driver ["Getting Started" guide](https://github.com/ThinkParQ/beegfs-csi-driver/blob/master/README.md#getting-started) + for additional information. + + The BeeGFS CSI driver is only supported on nodes running a [BeeGFS supported Linux + distribution](https://doc.beegfs.io/latest/release_notes.html#supported-linux-distributions-and-kernels). Red Hat + CoreOS (RHCOS), the default distribution in OpenShift environments, is NOT supported. However, Red Hat Enterprise + Linux (RHEL) nodes can be added to an OpenShift cluster and RHEL is supported for running BeeGFS. By default, the + operator will install the driver with a node affinity that ensures it does not run on RHCOS nodes. See the driver + [compatibility + matrix](https://github.com/ThinkParQ/beegfs-csi-driver/blob/master/README.md#interoperability-and-csi-feature-matrix) + for additional information. + + We have recently published experimental manifests that enable the BeeGFS CSI driver on OpenShift nodes running + RHCOS. These manifests are not intended for production use. See [this + README](https://github.com/ThinkParQ/beegfs-csi-driver/blob/master/deploy/openshift-beegfs-client/README.md) for more + details. + + All driver configuration can be specified through the BeegfsDrivers API (in a BeegfsDriver Custom Resource) + except for BeeGFS connAuth information, which must be placed separately into a Kubernetes Secret. See the [ConnAuth + Configuration + section](https://github.com/ThinkParQ/beegfs-csi-driver/blob/master/operator/README.md#connauth-configuration) of the + operator documentation for additional information. + + Starting with version 1.4.0 of the BeeGFS CSI driver the driver and operator images will be signed using the Cosign + tool. Refer to the [BeeGFS CSI driver operator + README](https://www.github.com/ThinkParQ/beegfs-csi-driver/tree/master/operator/README.md) + for details on how to verify the operator and driver image signatures. + displayName: BeeGFS CSI Driver + icon: + - base64data: iVBORw0KGgoAAAANSUhEUgAAAQkAAACkCAYAAACEndvgAAAACXBIWXMAAAsSAAALEgHS3X78AAAUNElEQVR42u2dv44bS3bGvyMw2IxzA2NDUhtsOn1zL6YFA2bgQFRuYFqRw6ECZwaGSu1A1AtYPcDNxQkMLBdYqIl9AJFPcJtPYDKzvQTKQZ+Wein+6a5udleT3wcM7tzRkKw5XfWrc06dqhJjDKji2s7EA+ADuCnxNrF+rTsDs6BVKRclhERhOPgAQgC9M7z9M4ApgGlnYNa0NkVItA8QAYBPNXzUBsCkMzBjWp0iJNoVXnyt+WPnAIb0Kqgm9YImyK1JA595ByDazuSG5qfoSbjtRfQB/NpgE5YAfHoUFD0Jd9Vv+PNvG/JkKIqQaJHutzMZ0QwUww03ww0fwBda4ptWACIAYWdgIpqDkCAkms9JuKw5gBGLwQgJgmImawBdWmKvNgqKkKa4PDEnkV+cKQ+rC+CThmUUIXG1Yux9WlPWdBAS16yYJsjlUXCplpBguEEd1bAt3oSIeCIyFpFIRNYiYjJfaxEJ+DiZuCyk7UxorHx60xmYqaNguAEQABgh307el8aYq/Yi6UkU05ImyCXPUUCMNWz8gPxb/fvX/jA77M+FQ45bmqFl7rKc9QwQQoL6ARL3FXgjkX5d6oYtZ9xzERmp52CjZ2NYUUpIFIeErZ6QHCTDBGh9gAgLQH2pzzcFXGwMi8MIiXogsURSjRjRfM4BYgVgDGBqDLfhH7QlVzeKaTuTuEBs+8PJUlqVOESS3Lvb96J/+o8/rP70579Yx8//+A9/WP3Xv9q//l9+eY3//OXZ2kb//m//vHr397/s+/yNgjZCsjksbggQKwBjegr0JM4Zb+cZgPPOwPgZOHhICo3urth2Xf377wA8bmfypF7WukJAjE8A4qMCgp5DTnEJtLjyhA0r9RZSQARIzse8o/n+RvcAYgVoFYDwATwe+ZW3xpgRAUFIuJCXCNLZscYTttvsXURlQaFFUuEJQDC8ICScgMRzmqTUcyi4lyEfKMpuDhsfCQMJCEKiPuVItmWhEIJnUORVD0mptI0X4QF4OJSDICAIiSY0P5SLyHgRHnMQhWV7huchb21pjOG5oITE+aS7BEcistCs+amQI8p8P6QFi4cd25kMiz6jIzAOaNIKvGeaYG+nC3SQZ2Pc+MD3OAAPn9a0kofkPtQ06espfKMDS6U3SO5Qfb3z8ydjWN1KSFQHhr5C4dj24X4OT4Kdsrz6O98/pPmG7UzSfS/TNKzTvRVRZgt4gGQT3pimZLhRBRwCEYmQnIR9avvwt92fLLGuDRL7nsEDgC/bmay3MwnT8MQYszbGTIwxHngGBCFR1msQkYmIrJHUL9wVeG02hFix+zSbv0BSjPU5AwxfgUFAEBJWcBhmvIYH2C1NegwtnAbGl+1M4u1MRjyQl5AoGlLEAD6j/JJkn5BwXj0NHePtTCZa0EYREj+A4UYPOE1DiqpOJMp6EsxLuO9dPAD4VWFBz4KQ+A4HJEuUj6i+2jHriTDubY8e1LMY0xRXDIkzwyH7OX3gW3n2hl2oVZ7F43Ymi6p2nRIS7cs5nBUOB0IO5iXap1sAX+lVXAEkRMQXkUXFOQdC4nr0uJ0JryW8REhoncMUwBc0c7y9T0hcjF4jOcuCoLgUSGjeYYEf6/TrVJ+QuLjwg6BoOyQ0tKgz73BMPd0nAB6Pf1GgCGmGFkJClzQnGlq4dPtSNi/Bq/8uJPTYzoRnT7QJErpPYoHDJw65Agl6E5ejMcOOFkDCYe/hECRidqOLURf2p2MREjUBwnPYezgEiYjd6KIU0ASOQkJEhkjupmjDzc+3DDcuVj1WZLrrSURILtVthdTrgR6pxrMlLkvMS7gICT1ZKADwBu3YE8G8xOXKpwnc9CRSWEyRFCw9O267/o4XRF2OeA2gy5DIeBVDx72K7GzDvMRlic/TdUjs8SpczFUw3CAkCAmHvIoAwCu4Vd3YZXn2RWp+4H4PQqIFsIj0uPR3DoUgWW9izu50EQppgpZCIgOLiUMhiE8X9aK07Ax4uXDrIbETgrxseAZnXuJytAGrLS8HEhlYxMYYH0m+oglY9OlJXIxGzC1dICQysIgaggWv/rsMvWWYceGQaBIW2av/CAoCgpBoJyzOneDssxu1UhsAbwiIK4XEDiwCJAnOjzjP0il3DLZPSwBeZ2CmNMWVQyIDi9gYM9JZ/y2qLcoiJNrlPbzrDIynlytRhMQPsFgbY0ItyvpZQ5Gy3sUdu1Er9KTew4SmICTyAmNhjAmMMTfqXVjvOk2v/qOchcPLzsAE9B4IiTLACHXX6U+WwGDIQTgQElcWjmSBkSckISTc0ArJ3p6fCIfq1KEJDgMDyWafUEMKD8AQyX6NO0LCKTBMAYSsmCQkmobGApnSay2iSr8ICYKBkKB+gEYEHlt3Du2z6UZ/HgGYMowgJC5FPLikvN2mCgV6C4TERWqKZm8/b70nQTi4Ia5unBcSG5qhkOYEAyFxPS5ack4iq/uKaUwTEBLXBoox3Dq812U9cas9IXGt8gmKk1p2BiagGQiJaw47fPA07UP62BkY1pkQEgRFZ2B8JGXevFw40RzAq87AjGgKx/svTVArLEIAoV5t7+PA7dW//91vf/OnP+N/bD/n97/77W8A+9f/7/9tb1CizuPvuubY58cAIhZEtUdijKEVKIpiuEFRFCFBURQhQVEUIUFRFCFBURQhQVEUIUFRFCFBURQhQRNQFEVIUBRFSFAURUhQFEVIUBRFSFAURUhQFEVIUBRFSFAURRESFEUREhRFERIURRESFEUREhRFERIURRESFEUREhRFERIURVGEBEVRhARFUYQERVGEBEVRjalz6he2M7kB4O382D/w61Hm+7gzMDFNfJkSEV/7hQegr1+9Pb+6AbDQ7xcAYgALY0x05fa70XHkZcbT3YFfXwJYq+1iAFGd9hNjDLazbw/8JkeDi2qlnWMBIOoMrrtztLxjBwCG2ke6FbzlXCeWqTFmUaANgSMmCY0xYUEwDAGMANxW8PnPAKZqv7Ul6AMFPDIgD7PPQ/76R0QVAiGPNvqHTTqDfB2DanzGG+lX94wftQIQApgc6/AiMgbw6Ih53htjxjntOD6zDZ90cEc5n+k0M+7n+t+bDLw+GmNGTeUkugDuAXzdziTazsTjUHQWECN1bx/PDAhoqPIIIBaRsXbkS7ChJyJ12PAewBcRidRDOAaI1DF4BvDSGOPrlwfglYY3DyISNgWJrO4UFmMOSac6dl9EFgA+1ACHfZPII/42v9Xm8OzrgVzNOcfU6Mi/j9VbeNbfGytYIoVCmnJYAbgXkaErqxuP25mEmiSlmu3YQ41LbxtuyuICAPGpoY+fHvEiHvR/01zEPb4nnu815EthAgCBS0ug9wAmHKaNd+zPDXgPuTt6S+zoNwiIzRHbpaH9807eJ0SSUN3os+9nErKvXauTuGfocZUz365WxphpS+14k5mNG4FrjpWOXS8t0PCuC+BtZmVj7kJO4lDo0eewvVpAtNqL0Di/57jtdsdXvMfb+PZ7rlZc0puoDxCeg2Fe2FJbpsvFrnpgKQz8nZ9HCoQVklUNT0T6CruVq5C4ZxKz1gHZdag9q7yFVQ5q2LAtj3oRxphYQ4ieLm9n/22dmSyGme/DTslGpeWiWVelKiP5LXc72zDzjdH8Ksau2py8HlYByR33/6bAM8rjgY2QLMt+APAOSV1EnHn9Qp/BrbZlYguJV8fKqzWn4KnR7i0/wysLCS3USsuI+wdixfShRKi5bHw7k7Rt3hHALnfat6gIEFW6xs/avgWSfRnrPSFNuv7u43iF7zkmhuz+kSoV75nYbCfb8bFQQd3/tD/v81iWeTwwY8xCRN4iyUF9UM9iqnUxPpIkZk9tNjTGrG3Lsl/lHUw6UCMLD2PeGRjfYuDd6B9qm0DaKEknnUHxevgc7etr2wJLr2ulOZtpmfZVVN78HifKqI8Aat8ehrkxx5+5ZbtPvm9F0P1vy+fpWdgw2LHfO2PMpMDrPe1Hr/f88xOAUdqms+ckdOYLUYO2s29lxB9gn2FOK/7iKpdjtzO50ff7FUlBi21Y1tNZYKGeSBNexBLAz8aYsc3GImPM2hgTZsqA5wXcZVdlu70gtLThrv3Cgq9fGGOGAH7S93gF4JUxRowxQbZNnZoMOMX3Sq9zwGF3w0oV6iJZjh0CGJbZ9q7e1BTVLo31AHzezuQJwKigVxGUgNQSgG/TsQ901giArwVI17jh76YK+5V4/RonSuBbf+iMDsAY59vJequztmfZvkAfwrnWzu8BRAVXg4ISnxdUBYjdzn6O922Bhq5vZqsLEjZucZwTEDb5DhuvIipa5KWA+FRD+27zgkITYLYrGu9bvDzpqnoAIpdBcXZI6EC2mbkWOUKMOgCRBcW04N9dZxXjLfItH9ou023AvTWn3P4yz87ZLfIvzgmH7UwmSNZkbQbyNMe/1124cpsnmZkBWN26z5HMtE2wTa80HCiiVclJKD1PI9TVBydkm7icbGdyqMMUKf44pPmxRKGuYtw1ZLPH7UzCE4nMEM1V3k1OANYaEi0evH1dOq1KoVYv7iqCfV1QFhb3SM5ySE/rOvR5taiJ4+vy6OdDRUM6S8dotvz1qTMwwYH2+QC+NGy/t53B/rMXRcRYutPiQsdw5Pi6V/vCC12hOdeznyOpSakd1i6ubrw7UVU4QvN7DYZHkoRjB2w4OjDA+pbvt2QkkTsvMT/T298B+CwisYiM6sxduAaJp87gcNWYDsxRiY7+pjMw0hkYQVJE8hZJQs7GJRzuaZ9Xwit7Vg8qbd9LJLX1Nu27PbASYwuJmAjIrXNPEj0kxYK1JTo7Dhl3eciFz87gll7ED+GBFh+F25lMNZYsmkfx8WOVmy3A3u3CUXMek+1MItgVYmV38pVV6WVPEYksY/+wbd6EiLyvISRKE52BiIzOGYa4BInb7UxiAMGRfSHDquHTGZi1rggsCgLIr6h9R72nzsAstN6iaKzrw60lSxsPK0ILZYwZa2h3X8PH9TQM+XYE/qWHGz0AX3RQ7NPrquLzPbN20Rmrl81LaKhR1MvZ5GyfTazLqwqaBUWAZKNUXXrQE68rDz86jtr403YmyGboLcuiN/pa/0xxt5eZ7XyL1y8AeNtZroWDuOBs3ONQbR4UmasJ6vLWQlRzroXzkEAaj2fqEWwg0cV5lyP7B74v8lDP1r7tTDzektY4KCYiMtXBW0epwWsRGee9WayN4cbuAB+XHITnVt9x9/7Gsfe5VlDEep7FK5xviTSrxxLL3a2CBJCUGffZURsX8xvVwCJSWLwE8BF2y9t5VZknUfnxdZo7uNFZNj1uq0x8nC7lud5R+y3opwtCwg3PAnoJs96YFsAuKX9q3LiZk9gTA490tWICuxqHKtf7z6leCzrnWsSqurorIl6Lt4kvUe1R94sKn8kUyRmTh470sw7XRWRYRf1ELYnLzsCE25kskOwI5SzWrOawS6D5aO/JUeuSW7lrATh0M5fuAQlQvs6i9GHSteYk1MOwWTfutqQjrlrSTtuBPgJVZ+4iQJLoLLNvxq+iPS/a0EG1zsHFmSC7XT6+cEj0dIajaoSFDvRGN9i9aHBQXYKcdr8PJJfLuJ+h6+cxXiAo1rBPQlYSqtddTNUvARebAblBxdVnRyARWcT6c9S8tVyTl7Z5iR6SJHLA4VvrM4tFZIniCc1uGyFh1bl0k5ONF9IF0D90AEvFsgk37gCsG6iKDGFf/XcvIuneBGqPRCTU/jCp8Mi/xq5jrC3c2M4kRIllQi3Ptik+mdgeh7/nbzj2PpHtgK3icmS9/CevpzZFuUKeexGZMvTYC4gbJKsS6XmVk7LVj1pLYaOl85DQjhvoFnDb5Zx5yXi6C+Cr7W1c25n0tzMZ698QnoCYzQrHLZLbwgLL9qUHDsd5Q5edG6Rt9RrfDz7pEw/fNNzpew8AfhWRhZ4o1S8CHL3Oz9YTrsSLsQ03ghM7K/uaNKnCRYp2IGELm0c9QDfU94yzbr7O5qmn4OP7Jb69nZj81Axtc1NZF8nO17G+x1TbF2dhpXZN25m2sbtj99weFsofBZgefPKoMfMCPMVqeGQy+ADgg4ikFxgvjgzkPuwPWUpVzeXSjh6Em9XPO4M5RrPVjccO6e0jueuzMenRd3lnqhHq28Zso/e7uxldvTBY29b489/RmyoqLl3f4DXfMyDDhtvUPxFyPDXZuCK3jOkt1HNQ5/YimtAGFdUWuQ6J8Z6BOEaz1Y1e0Ta7ArFDoSPOuxvxmhQ41JbKLlNyGRIfj5x12eTD8E64+zGA9w22r5BbrTsSfY7vSkKNW0eas6lysnIVEstjf6TCo6mBeHKmVm9n7mr79oBigeR6AeoyvIhxlTd+vXAUEL4eeX9qIDYR/+edLYZopua+b/MiPbr+FUOP1kPiSXNNuFRIPOcBRAYUQROgyFOcpX+D3wAorFeqXNlQ1MJQY3epvElAVA4rVyCxQnK71jAvIHZAYXsT11ln687ArDsD4yE5qqxOiPVLgGJhjPHQbF6lbYrVXk16YR/PVSr/wgE4vAPgdQb267m6N8OrMQ9wU7B9I5Q/GyCvNqjgPFCtT3iJ5pZ0l2jJ5TzGmLXaq98ALJZILjA+23kf8tc/ItD4uS6XaYWkojA8x8YmrQQNUP3tSUskNRrTbCWkRfsCbV/VBWzPatdpUW8shzvd1zYHZ+wj6bp+hGT5Lj7QljEcLabKtDE9im6I6s+uzD7vSR0nbokxJtuB05Lf/s6XTbw7z7hisT78RdUd+MhgzD6oogBcZdus7Y4rbl9f2+brV7cgsNaZQVWbXTX+TttsO7Fk2x8DiPJm4/Xgm6IDPm7yTtFMm70SNptn+uS0wt2lxSBx6drZb5Ke6p2tn183dZnNzt4RZAZCdqaIq4ZVheA4FeKsW3yQbh02S/9/9+yUuMrlTBv9P/3jF3WNWf7RAAAAAElFTkSuQmCC + mediatype: image/png + install: + spec: + clusterPermissions: + - rules: + - apiGroups: + - apps + resources: + - daemonsets + - statefulsets + verbs: + - create + - get + - list + - update + - watch + - apiGroups: + - beegfs.csi.netapp.com + resources: + - beegfsdrivers + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - beegfs.csi.netapp.com + resources: + - beegfsdrivers/finalizers + verbs: + - update + - apiGroups: + - beegfs.csi.netapp.com + resources: + - beegfsdrivers/status + verbs: + - get + - patch + - update + - apiGroups: + - "" + resources: + - configmaps + - secrets + - serviceaccounts + verbs: + - create + - get + - list + - watch + - apiGroups: + - "" + resources: + - events + verbs: + - create + - list + - patch + - update + - watch + - apiGroups: + - "" + resources: + - nodes + - pods + verbs: + - get + - list + - watch + - apiGroups: + - "" + resources: + - persistentvolumeclaims + verbs: + - get + - list + - patch + - update + - watch + - apiGroups: + - "" + resources: + - persistentvolumeclaims/status + verbs: + - patch + - apiGroups: + - "" + resources: + - persistentvolumes + verbs: + - create + - delete + - get + - list + - patch + - watch + - apiGroups: + - rbac.authorization.k8s.io + resources: + - clusterrolebindings + - rolebindings + - roles + verbs: + - create + - delete + - get + - list + - watch + - apiGroups: + - rbac.authorization.k8s.io + resources: + - clusterroles + verbs: + - create + - delete + - get + - list + - update + - watch + - apiGroups: + - security.openshift.io + resourceNames: + - privileged + resources: + - securitycontextconstraints + verbs: + - use + - apiGroups: + - storage.k8s.io + resources: + - csidrivers + verbs: + - create + - delete + - get + - list + - watch + - apiGroups: + - storage.k8s.io + resources: + - csinodes + - storageclasses + verbs: + - get + - list + - watch + - apiGroups: + - authentication.k8s.io + resources: + - tokenreviews + verbs: + - create + - apiGroups: + - authorization.k8s.io + resources: + - subjectaccessreviews + verbs: + - create + serviceAccountName: beegfs-csi-driver-operator-controller-manager + deployments: + - label: + control-plane: controller-manager + name: beegfs-csi-driver-operator-controller-manager + spec: + replicas: 1 + selector: + matchLabels: + control-plane: controller-manager + strategy: {} + template: + metadata: + 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=10 + image: gcr.io/kubebuilder/kube-rbac-proxy:v0.13.0 + name: kube-rbac-proxy + ports: + - containerPort: 8443 + name: https + resources: {} + - args: + - --health-probe-bind-address=:8081 + - --metrics-bind-address=127.0.0.1:8080 + - --leader-elect + command: + - /manager + env: + - name: BEEGFS_CSI_DRIVER_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + image: ghcr.io/thinkparq/beegfs-csi-driver-operator:v1.7.0 + 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: 100m + memory: 150Mi + requests: + cpu: 100m + memory: 50Mi + securityContext: + allowPrivilegeEscalation: false + securityContext: + runAsNonRoot: true + serviceAccountName: beegfs-csi-driver-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: beegfs-csi-driver-operator-controller-manager + strategy: deployment + installModes: + - supported: true + type: OwnNamespace + - supported: false + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: false + type: AllNamespaces + keywords: + - CSI + - BeeGFS + - ThinkParQ + - HPC + - AI + - High-Performance Computing + links: + - name: BeeGFS introduction + url: https://www.beegfs.io/c/ + - name: BeeGFS documentation + url: https://doc.beegfs.io/latest/index.html + - name: BeeGFS CSI driver source code + url: https://github.com/ThinkParQ/beegfs-csi-driver + - name: BeeGFS blog posts + url: https://www.beegfs.io/c/blog/ + maintainers: + - email: csi-driver@beegfs.io + name: ThinkParQ + maturity: stable + minKubeVersion: 1.19.0 + provider: + name: ThinkParQ + url: https://www.thinkparq.com + version: 1.7.0 diff --git a/operators/beegfs-csi-driver-operator/1.7.0/manifests/beegfs.csi.netapp.com_beegfsdrivers.yaml b/operators/beegfs-csi-driver-operator/1.7.0/manifests/beegfs.csi.netapp.com_beegfsdrivers.yaml new file mode 100644 index 00000000000..47b26a45fd7 --- /dev/null +++ b/operators/beegfs-csi-driver-operator/1.7.0/manifests/beegfs.csi.netapp.com_beegfsdrivers.yaml @@ -0,0 +1,1161 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.16.0 + creationTimestamp: null + name: beegfsdrivers.beegfs.csi.netapp.com +spec: + group: beegfs.csi.netapp.com + names: + kind: BeegfsDriver + listKind: BeegfsDriverList + plural: beegfsdrivers + singular: beegfsdriver + scope: Namespaced + versions: + - name: v1 + schema: + openAPIV3Schema: + description: Deploys the BeeGFS CSI driver + 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: + properties: + name: + description: Only one driver may exist on a cluster at a time. It + MUST be named "csi-beegfs-cr". + pattern: ^csi-beegfs-cr$ + type: string + type: object + spec: + description: BeegfsDriverSpec defines the desired state of BeegfsDriver + properties: + containerImageOverrides: + description: |- + A structure that allows for default container images and tags to be overridden. Use it in air-gapped networks, + networks with private registry mirrors, or to pin a particular container version. Unless otherwise noted, versions + other than the default are not supported. + properties: + beegfsCsiDriver: + description: Defaults to ghcr.io/thinkparq/beegfs-csi-driver:. + properties: + image: + description: A combination of registry and image (e.g. registry.k8s.io/csi-provisioner + or ghcr.io/thinkparq/beegfs-csi-driver). + type: string + tag: + description: A tag (e.g. v2.2.2 or latest). + type: string + type: object + csiNodeDriverRegistrar: + description: Defaults to registry.k8s.io/sig-storage/csi-node-driver-registrar:. + properties: + image: + description: A combination of registry and image (e.g. registry.k8s.io/csi-provisioner + or ghcr.io/thinkparq/beegfs-csi-driver). + type: string + tag: + description: A tag (e.g. v2.2.2 or latest). + type: string + type: object + csiProvisioner: + description: Defaults to registry.k8s.io/sig-storage/csi-provisioner:. + properties: + image: + description: A combination of registry and image (e.g. registry.k8s.io/csi-provisioner + or ghcr.io/thinkparq/beegfs-csi-driver). + type: string + tag: + description: A tag (e.g. v2.2.2 or latest). + type: string + type: object + csiResizer: + description: Defaults to registry.k8s.io/sig-storage/csi-resizer:. + properties: + image: + description: A combination of registry and image (e.g. registry.k8s.io/csi-provisioner + or ghcr.io/thinkparq/beegfs-csi-driver). + type: string + tag: + description: A tag (e.g. v2.2.2 or latest). + type: string + type: object + livenessProbe: + description: Defaults to registry.k8s.io/sig-storage/livenessprobe:. + properties: + image: + description: A combination of registry and image (e.g. registry.k8s.io/csi-provisioner + or ghcr.io/thinkparq/beegfs-csi-driver). + type: string + tag: + description: A tag (e.g. v2.2.2 or latest). + type: string + type: object + type: object + containerResourceOverrides: + description: |- + The ContainerResourceOverrides allow for customization of the container resource limits and requests. + Each container has default requests and limits for both cpu and memory resources. Only explicitly defined + overrides will be applied, otherwise the default values will be used. For example, if the cpu limit for the + controller's beegfs container is the only resource with an override set, only the controller's beegfs container + cpu limit setting will be overridden. Every other value will use the default setting. Storage resources are not + used by the BeeGFS CSI driver. Any storage resource values configured will be ignored. + properties: + controllerBeegfs: + description: |- + The resource specifications for the beegfs container of the BeeGFS driver controller pod. + The default values for requests are (cpu: 100m, memory: 16Mi). + The default values for limits are (cpu: None, memory: 256Mi). + properties: + claims: + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + This field is immutable. It can only be set for containers. + items: + description: ResourceClaim references one entry in PodSpec.ResourceClaims. + properties: + name: + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. + type: string + request: + description: |- + Request is the name chosen for a request in the referenced claim. + If empty, everything from the claim is made available, otherwise + only the result of this request. + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + 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. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + 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. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + type: object + type: object + controllerCsiProvisioner: + description: |- + The resource specifications for the csi-provisioner container of the BeeGFS driver controller pod. + The default values for requests are (cpu: 80m, memory: 24Mi) + The default values for limits are (cpu: None, memory 256Mi) + properties: + claims: + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + This field is immutable. It can only be set for containers. + items: + description: ResourceClaim references one entry in PodSpec.ResourceClaims. + properties: + name: + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. + type: string + request: + description: |- + Request is the name chosen for a request in the referenced claim. + If empty, everything from the claim is made available, otherwise + only the result of this request. + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + 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. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + 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. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + type: object + type: object + nodeBeegfs: + description: |- + The resource specifications for the beegfs container of the BeeGFS driver node pod. + The default values for requests are (cpu: 100m, memory: 20Mi) + The default values for limits are (cpu: None, memory: 128Mi) + properties: + claims: + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + This field is immutable. It can only be set for containers. + items: + description: ResourceClaim references one entry in PodSpec.ResourceClaims. + properties: + name: + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. + type: string + request: + description: |- + Request is the name chosen for a request in the referenced claim. + If empty, everything from the claim is made available, otherwise + only the result of this request. + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + 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. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + 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. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + type: object + type: object + nodeDriverRegistrar: + description: |- + The resource specifications for the node-driver-registrar container of the BeeGFS driver node pod. + The default values for requests are (cpu: 80m, memory: 10Mi) + The default values for limits are (cpu: None, memory 128Mi) + properties: + claims: + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + This field is immutable. It can only be set for containers. + items: + description: ResourceClaim references one entry in PodSpec.ResourceClaims. + properties: + name: + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. + type: string + request: + description: |- + Request is the name chosen for a request in the referenced claim. + If empty, everything from the claim is made available, otherwise + only the result of this request. + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + 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. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + 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. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + type: object + type: object + nodeLivenessProbe: + description: |- + The resource specifications for the liveness-probe container of the BeeGFS driver node pod. + The default values for requests are (cpu: 60m, memory: 20Mi) + The default values for limits are (cpu: None, memory: 128Mi) + properties: + claims: + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + This field is immutable. It can only be set for containers. + items: + description: ResourceClaim references one entry in PodSpec.ResourceClaims. + properties: + name: + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. + type: string + request: + description: |- + Request is the name chosen for a request in the referenced claim. + If empty, everything from the claim is made available, otherwise + only the result of this request. + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + 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. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + 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. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + type: object + type: object + type: object + logLevel: + description: |- + The logging level of deployed containers expressed as an integer from 0 (low detail) to 5 (high detail). 0 + only logs errors. 3 logs most RPC requests/responses and some detail about driver actions. 5 logs all RPC + requests/responses, including redundant/frequently occurring ones. Empty defaults to level 3. + maximum: 5 + minimum: 0 + type: integer + nodeAffinityControllerService: + description: |- + The controller service consists of a single Pod. It preferably runs on an infrastructure/master node, but the + running node must have the beegfs-utils and beegfs-client packages installed. E.g. + "preferred: node-role.kubernetes.io/master Exists" and/or "required: node.openshift.io/os_id NotIn rhcos". + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + 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 + x-kubernetes-list-type: atomic + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + type: array + x-kubernetes-list-type: atomic + required: + - nodeSelectorTerms + type: object + x-kubernetes-map-type: atomic + type: object + nodeAffinityNodeService: + description: |- + The node service consists of one Pod running on each eligible node. It runs on every node expected to host a + workload that requires BeeGFS. Running nodes must have the beegfs-utils and beegfs-client packages installed. + E.g. "required: node.openshift.io/os_id NotIn rhcos". + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + 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 + x-kubernetes-list-type: atomic + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + 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 + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + type: array + x-kubernetes-list-type: atomic + required: + - nodeSelectorTerms + type: object + x-kubernetes-map-type: atomic + type: object + pluginConfig: + description: |- + The top level configuration structure containing default configuration (applied to all file systems on all nodes), + file system specific configuration, and node specific configuration. Fields from node and file system specific + configurations override fields from the default configuration. Often not required. + properties: + config: + description: |- + The primary configuration structure containing all of the custom configuration (beegfs-client.conf keys/values and + additional CSI driver specific fields) associated with a single BeeGFS file system except for sysMgmtdHost, which is + specified elsewhere. WARNING: This structure includes a beegfsClientConf field. This field may not be rendered in + form view by OpenShift or other graphical interfaces, but it can be critical in some environments. Add or modify it + in YAML view. + properties: + beegfsClientConf: + additionalProperties: + type: string + description: |- + A map of additional key value pairs matching key value pairs in the beegfs-client.conf file. See + beegfs-client.conf for more details. Values MUST be specified as strings, even if they appear to be integers or + booleans (e.g. "8000", not 8000 and "true", not true). + type: object + connInterfaces: + description: |- + A list of interfaces the BeeGFS client service can communicate over (e.g. "ib0" or "eth0"). Often not required. + See beegfs-client.conf for more details. + items: + type: string + type: array + connNetFilter: + description: |- + A list of subnets the BeeGFS client service can use for outgoing communication (e.g. "10.10.10.10/24"). Often + not required. See beegfs-client.conf for more details. + items: + type: string + type: array + connRDMAInterfaces: + description: |- + A list of interfaces the BeeGFS client will use for outbound RDMA connections. This is used in support + of the BeeGFS multi-rail feature. This feature does not depend on or use the connInterfaces parameter. + This feature requires the BeeGFS client version 7.3.0 or later. + items: + type: string + type: array + connTcpOnlyFilter: + description: |- + A list of subnets in which RDMA communication cannot or should not be established (e.g. "10.10.10.11/24"). + Often not required. See beegfs-client.conf for more details. + items: + type: string + type: array + type: object + fileSystemSpecificConfigs: + description: A list of file system specific configurations that + override the default configuration for specific file systems. + items: + description: A file system specific configuration that overrides + the default configuration for a specific file system. + properties: + config: + description: |- + The primary configuration structure containing all of the custom configuration (beegfs-client.conf keys/values and + additional CSI driver specific fields) associated with a single BeeGFS file system except for sysMgmtdHost, which is + specified elsewhere. WARNING: This structure includes a beegfsClientConf field. This field may not be rendered in + form view by OpenShift or other graphical interfaces, but it can be critical in some environments. Add or modify it + in YAML view. + properties: + beegfsClientConf: + additionalProperties: + type: string + description: |- + A map of additional key value pairs matching key value pairs in the beegfs-client.conf file. See + beegfs-client.conf for more details. Values MUST be specified as strings, even if they appear to be integers or + booleans (e.g. "8000", not 8000 and "true", not true). + type: object + connInterfaces: + description: |- + A list of interfaces the BeeGFS client service can communicate over (e.g. "ib0" or "eth0"). Often not required. + See beegfs-client.conf for more details. + items: + type: string + type: array + connNetFilter: + description: |- + A list of subnets the BeeGFS client service can use for outgoing communication (e.g. "10.10.10.10/24"). Often + not required. See beegfs-client.conf for more details. + items: + type: string + type: array + connRDMAInterfaces: + description: |- + A list of interfaces the BeeGFS client will use for outbound RDMA connections. This is used in support + of the BeeGFS multi-rail feature. This feature does not depend on or use the connInterfaces parameter. + This feature requires the BeeGFS client version 7.3.0 or later. + items: + type: string + type: array + connTcpOnlyFilter: + description: |- + A list of subnets in which RDMA communication cannot or should not be established (e.g. "10.10.10.11/24"). + Often not required. See beegfs-client.conf for more details. + items: + type: string + type: array + type: object + sysMgmtdHost: + description: The sysMgmtdHost used by the BeeGFS client + service to make initial contact with the BeeGFS mgmtd + service. + type: string + required: + - sysMgmtdHost + type: object + type: array + nodeSpecificConfigs: + description: |- + A list of node specific configurations that override file system specific configurations and the default + configuration on specific nodes. + items: + description: |- + A node specific configuration that overrides file system specific configurations and the default configuration on + specific nodes. + properties: + config: + description: |- + The primary configuration structure containing all of the custom configuration (beegfs-client.conf keys/values and + additional CSI driver specific fields) associated with a single BeeGFS file system except for sysMgmtdHost, which is + specified elsewhere. WARNING: This structure includes a beegfsClientConf field. This field may not be rendered in + form view by OpenShift or other graphical interfaces, but it can be critical in some environments. Add or modify it + in YAML view. + properties: + beegfsClientConf: + additionalProperties: + type: string + description: |- + A map of additional key value pairs matching key value pairs in the beegfs-client.conf file. See + beegfs-client.conf for more details. Values MUST be specified as strings, even if they appear to be integers or + booleans (e.g. "8000", not 8000 and "true", not true). + type: object + connInterfaces: + description: |- + A list of interfaces the BeeGFS client service can communicate over (e.g. "ib0" or "eth0"). Often not required. + See beegfs-client.conf for more details. + items: + type: string + type: array + connNetFilter: + description: |- + A list of subnets the BeeGFS client service can use for outgoing communication (e.g. "10.10.10.10/24"). Often + not required. See beegfs-client.conf for more details. + items: + type: string + type: array + connRDMAInterfaces: + description: |- + A list of interfaces the BeeGFS client will use for outbound RDMA connections. This is used in support + of the BeeGFS multi-rail feature. This feature does not depend on or use the connInterfaces parameter. + This feature requires the BeeGFS client version 7.3.0 or later. + items: + type: string + type: array + connTcpOnlyFilter: + description: |- + A list of subnets in which RDMA communication cannot or should not be established (e.g. "10.10.10.11/24"). + Often not required. See beegfs-client.conf for more details. + items: + type: string + type: array + type: object + fileSystemSpecificConfigs: + description: |- + A list of file system specific configurations that override the default configuration for specific file systems + on these nodes. + items: + description: A file system specific configuration that + overrides the default configuration for a specific file + system. + properties: + config: + description: |- + The primary configuration structure containing all of the custom configuration (beegfs-client.conf keys/values and + additional CSI driver specific fields) associated with a single BeeGFS file system except for sysMgmtdHost, which is + specified elsewhere. WARNING: This structure includes a beegfsClientConf field. This field may not be rendered in + form view by OpenShift or other graphical interfaces, but it can be critical in some environments. Add or modify it + in YAML view. + properties: + beegfsClientConf: + additionalProperties: + type: string + description: |- + A map of additional key value pairs matching key value pairs in the beegfs-client.conf file. See + beegfs-client.conf for more details. Values MUST be specified as strings, even if they appear to be integers or + booleans (e.g. "8000", not 8000 and "true", not true). + type: object + connInterfaces: + description: |- + A list of interfaces the BeeGFS client service can communicate over (e.g. "ib0" or "eth0"). Often not required. + See beegfs-client.conf for more details. + items: + type: string + type: array + connNetFilter: + description: |- + A list of subnets the BeeGFS client service can use for outgoing communication (e.g. "10.10.10.10/24"). Often + not required. See beegfs-client.conf for more details. + items: + type: string + type: array + connRDMAInterfaces: + description: |- + A list of interfaces the BeeGFS client will use for outbound RDMA connections. This is used in support + of the BeeGFS multi-rail feature. This feature does not depend on or use the connInterfaces parameter. + This feature requires the BeeGFS client version 7.3.0 or later. + items: + type: string + type: array + connTcpOnlyFilter: + description: |- + A list of subnets in which RDMA communication cannot or should not be established (e.g. "10.10.10.11/24"). + Often not required. See beegfs-client.conf for more details. + items: + type: string + type: array + type: object + sysMgmtdHost: + description: The sysMgmtdHost used by the BeeGFS client + service to make initial contact with the BeeGFS + mgmtd service. + type: string + required: + - sysMgmtdHost + type: object + type: array + nodeList: + description: |- + The list of nodes this configuration should be applied on. Each entry is the hostname of the node or the name + assigned to the node by the container orchestrator (e.g. "node1" or "cluster05-node03"). + items: + type: string + type: array + required: + - nodeList + type: object + type: array + type: object + type: object + status: + description: BeegfsDriverStatus defines the observed state of BeegfsDriver + properties: + conditions: + items: + description: Condition contains details for one aspect of the current + state of this API Resource. + properties: + lastTransitionTime: + description: |- + lastTransitionTime is the last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + format: date-time + type: string + message: + description: |- + message is a human readable message indicating details about the transition. + This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: |- + observedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: |- + reason contains a programmatic identifier indicating the reason for the condition's last transition. + Producers of specific condition types may define expected values and meanings for this field, + and whether the values are considered a guaranteed API. + The value should be a CamelCase string. + This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: type of condition in CamelCase or in foo.example.com/CamelCase. + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/operators/beegfs-csi-driver-operator/1.7.0/metadata/annotations.yaml b/operators/beegfs-csi-driver-operator/1.7.0/metadata/annotations.yaml new file mode 100644 index 00000000000..413e38d5751 --- /dev/null +++ b/operators/beegfs-csi-driver-operator/1.7.0/metadata/annotations.yaml @@ -0,0 +1,18 @@ +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: beegfs-csi-driver-operator + operators.operatorframework.io.bundle.channels.v1: stable + operators.operatorframework.io.bundle.channel.default.v1: stable + operators.operatorframework.io.metrics.builder: operator-sdk-v1.25.0 + operators.operatorframework.io.metrics.mediatype.v1: metrics+v1 + operators.operatorframework.io.metrics.project_layout: go.kubebuilder.io/v3 + + # Annotations for testing. + operators.operatorframework.io.test.mediatype.v1: scorecard+v1 + operators.operatorframework.io.test.config.v1: tests/scorecard/ + + # Set minimum OpenShift version + com.redhat.openshift.versions: "v4.11" diff --git a/operators/beegfs-csi-driver-operator/1.7.0/tests/scorecard/config.yaml b/operators/beegfs-csi-driver-operator/1.7.0/tests/scorecard/config.yaml new file mode 100644 index 00000000000..85a7da2c8b5 --- /dev/null +++ b/operators/beegfs-csi-driver-operator/1.7.0/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.19.1 + 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.19.1 + 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.19.1 + 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.19.1 + 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.19.1 + 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.19.1 + labels: + suite: olm + test: olm-status-descriptors-test + storage: + spec: + mountPath: {} +storage: + spec: + mountPath: {}