Chapter 35. CSI certification
35.1. Working with Container Storage Interface (CSI) certification Copy linkLink copied to clipboard!
To certify a CSI plug-in, it must be configured to be deployed and managed by using an Operator. Before proceeding with the Red Hat CSI Certification, the operator, along with all the containers referenced by your CSI operator bundle, including the plug-in must already be certified and published on the Red Hat Ecosystem Catalog prior to certifying the CSI driver.
35.1.1. Introduction to Container Storage Interface Copy linkLink copied to clipboard!
The Container Storage Interface (CSI) allows products on the OpenShift Container Platform to consume storage from storage back ends that implement the CSI interface as persistent storage. CSI drivers are typically shipped as container images. The CSI badge is a specialization within Red Hat OpenShift certification. It is available to storage products that integrate by using a CSI driver with Red Hat OpenShift as the deployment platform.
The products that meet the requirements and complete the certification workflow can be referred to and promoted as Certified CSI products on the Red Hat OpenShift Container platform. After the certification is approved, the certified CSI product will be listed on the Red Hat Ecosystem Catalog and the OperatorHub within the web console in Red Hat OpenShift. The certified CSI operators are identified with the CSI badge. Partners will receive a logo to promote their product certification.
35.1.2. Certification workflow for CSI Copy linkLink copied to clipboard!
Red Hat recommends that you are a Red Hat Certified Engineer or hold equivalent experience before starting the certification process.
Task Summary
The certification workflow includes three primary steps-
35.1.2.1. Certification on-boarding for CSI Copy linkLink copied to clipboard!
Perform the steps outlined for certification onboarding:
- Join the Red Hat Connect for Technology Partner Program.
- Agree to the program terms and conditions.
Create your product listing by selecting your desired product category. You can select from the available product categories:
- Containerized Application
- Standalone Application
- OpenStack Infrastructure
- Complete your company profile.
- Add components to the product listing.
- Certify components for your product listing.
35.1.2.2. Certification testing for CSI Copy linkLink copied to clipboard!
To run the certification test,
- Fork the Red Hat upstream repository.
- Install and run the Red Hat certification pipeline on your test environment.
- Review the test results and troubleshoot, if any issues.
- Submit the certification results to Red Hat through a pull request.
35.1.2.3. Publishing the product listing on the Red Hat Ecosystem Catalog Copy linkLink copied to clipboard!
When you complete all the certification checks successfully, you can submit the test results to Red Hat. You can turn on or off this results submission step depending on your individual goals. When the test results are submitted, it triggers the Red Hat infrastructure to automatically merge your pull request and publish your operator.
35.2. Creating a Product Copy linkLink copied to clipboard!
For detailed instructions about creating a product listing, see Creating a product listing.
35.3. Adding certification components Copy linkLink copied to clipboard!
For CSI certification components, each functional certification is used to certify a specific combination of a Red Hat product version and a partner product version.
To certify another version combination, create a new functional certification and complete the certification workflow.
CSI certification supports multi-architecture and multi-protocol testing within a single functional certification entry. This is represented in the test plan on the site.
Each supported architecture and protocol must be tested separately and submitted for review. If additional architectures or protocols are added later, they should be submitted through a supplemental certification, which is linked back to the original functional certification for display in the Red Hat Ecosystem Catalog.
35.4. Working with the OpenShift Operator Pipeline Copy linkLink copied to clipboard!
Follow the steps to certify your operator before proceeding with the CSI certification:
Certified operators are listed in and consumed by customers through the embedded OpenShift operatorHub, providing them the ability to easily deploy and run your solution. Additionally, your product and operator image will be listed on the Red Hat Ecosystem Catalog.
35.5. Configuring your test environment for running the CSI tests Copy linkLink copied to clipboard!
Before running the CSI tests, verify if the Red Hat OpenShift environment that you use for running the CSI tests meets the following criteria:
- Use a Red Hat OpenShift version within the full support phase of the life cycle, such as OpenShift 4.17 or later. Red Hat recommends using the latest supported release. For more information about OpenShift releases, see Red Hat OpenShift Container Platform Life Cycle Policy.
- Install the CSI driver by using its Operator.
- Install the Red Hat OpenShift Virtualization.
- Configure a RHEL host with access to the OpenShift cluster to use as the test client for running the CSI certification tests.
Run your own product verification tests on the same configuration to ensure that your product functionality works as expected on the Red Hat OpenShift environment.
Red Hat Partner Connect offers free access to software as a program benefit. To know how to obtain a subscription to the Red Hat OpenShift environment, see Red Hat Partner Subscriptions.
35.6. Accessing the CSI certification tests Copy linkLink copied to clipboard!
The CSI certification tests are packaged in a container and are included in the OpenShift End-to-End repository. To retrieve the current version of the tests, navigate to the Red Hat Ecosystem Catalog and follow the instructions available on the Get this image tab.
Access the catalog entries for OpenShift End-to-End tests container at the following locations:
When accessing the OpenShift End-to-End Tests container, make sure to pull the corresponding tag of the OpenShift version that you are using for your product certification.
35.7. Setting up the CSI test parameters Copy linkLink copied to clipboard!
The CSI certification tests require the following files to be present on the client host:
A
kubeconfig.yamlfile with credentials to access the OpenShift cluster under test. This file is automatically created during the OpenShift installation, but you can recreate a copy by using the following command:$ oc config view --raw > kubeconfig.yaml-
A
manifest.yamlfile that describes the capabilities of your driver. This file is used to determine the tests that must be executed. For more information, see the example file.
35.8. Running the CSI certification tests Copy linkLink copied to clipboard!
The CSI certification test comprises two types of tests:
Run both the tests to certify your products for CSI certification.
35.8.1. Running the CSI function test Copy linkLink copied to clipboard!
On the test client, place the kubeconfig.yaml and manifest.yaml files in the current working directory and run the following command:
For OpenShift v4.16 and later:
$ mkdir -p test-results; cd test-results
$ VERSION=$(oc get clusterversion -o 'jsonpath={.items[0].status.desired.version}' | cut -d. -f1,2)
$ podman run -v "$(pwd):/data:z" -w /data --rm -it registry.redhat.io/openshift4/ose-tests-rhel9:${VERSION} sh -c "KUBECONFIG=/data/kubeconfig.yaml TEST_CSI_DRIVER_FILES=/data/manifest.yaml /usr/bin/openshift-tests run openshift/csi -o /data/results.txt"
For OpenShift v4.15 and earlier:
$ mkdir -p test-results; cd test-results
$ VERSION=$(oc get clusterversion -o 'jsonpath={.items[0].status.desired.version}' | cut -d. -f1,2)
$ podman run -v "$(pwd):/data:z" -w /data --rm -it registry.redhat.io/openshift4/ose-tests:${VERSION} sh -c "KUBECONFIG=/data/kubeconfig.yaml TEST_CSI_DRIVER_FILES=/data/manifest.yaml /usr/bin/openshift-tests run openshift/csi -o /data/results.txt"
The command uses the test suite that corresponds to the exact version of the Red Hat OpenShift cluster, for example, 4.x.
If you want to see a list of the tests that are run for CSI certification, run the following command:
For OpenShift v4.16 and later:
podman run -v `pwd`:/data:z --rm -it registry.redhat.io/openshift4/ose-tests-rhel9 sh -c "KUBECONFIG=/data/kubeconfig.yaml TEST_CSI_DRIVER_FILES=/data/manifest.yaml /usr/bin/openshift-tests run --dry-run openshift/csi
For OpenShift v4.15 and earlier:
podman run -v `pwd`:/data:z --rm -it registry.redhat.io/openshift4/ose-tests sh -c "KUBECONFIG=/data/kubeconfig.yaml TEST_CSI_DRIVER_FILES=/data/manifest.yaml /usr/bin/openshift-tests run --dry-run openshift/csi
Execute separate tests for each supported storage protocol.
If your CSI component supports multiple architectures or protocols within the same certification, repeat the test run for each supported architecture and protocol. Each combination must be tested separately, using a dedicated environment if required.
Saving the CSI test results
Make sure to have the following ready before submitting your test results:
- Contents on the results directory
-
manifest.yamlfile Output of the following commands:
$ oc get clusterversion -o yamland
$ podman image list registry.redhat.io/openshift4/ose-tests
35.8.2. Running the KubeVirt storage checkup test Copy linkLink copied to clipboard!
The KubeVirt storage checkup test is an automated tool that verifies if the cluster storage is optimally configured for OpenShift Virtualization. You can run the test by using two different methods - web console or CLI.
35.8.2.1. Running a Kubevirt storage checkup test by using the web console Copy linkLink copied to clipboard!
Run a storage checkup test by using the web console to validate if the configured storage is optimally configured for virtual machines. For detailed instructions, see Running a storage checkup by using the web console.
35.8.2.2. Running a KubeVirt storage checkup test by using the command line Copy linkLink copied to clipboard!
Run a storage checkup test by using the command line to validate if the configured storage is optimally configured for virtual machines. For detailed instructions, see Running a storage checkup by using the command line.
Saving the KubeVirt storage checkup test results
Make sure to have the output of the following command ready before submitting your test results:
$ oc get configmap storage-checkup-config -n <target_namespace> -o yaml
35.9. Submitting CSI test results Copy linkLink copied to clipboard!
Follow the procedure to submit both the result files through the Red Hat certification portal:
- Log in to the Red Hat Certification portal.
- On the homepage, enter the product case number in the search bar. Select the case number from the list that is displayed.
- On the Summary tab, under the Files section, click Upload.
Before uploading the results ensure that all CSI tests are completed successfully. If a particular test does not apply to the certified product, include an explanation along with the result submission.
If any modifications are made to the CSI driver while running the KubeVirt storage test or the CSI function test, you must rerun both the CSI certification tests.
35.10. Publishing the product listing on the Red Hat Ecosystem Catalog Copy linkLink copied to clipboard!
When you submit the CSI component for validation through the Red Hat certification portal , the Red Hat certification team reviews and verifies your component for certification. After successful verification, your certified product gets published on the Red Hat Ecosystem Catalog.
Follow the steps to publish your certified CSI operator :
- Access the Partner connect web page. My Products web page displays the Product Listings.
- Search for the required product listing.
- Click the newly created product listing that you wish to publish. Review all the details of your product listing.
- Go to the Components tab.
Click Add Component to attach your certified CSI operator to this listing. Also add any additional certified containers used by your CSI component. All the components must be in Published status.
The Publish button is enabled when you specify all the required information for the product listing along with the attached components.
- Click Publish.
Your certified CSI operator is now available for public access on the Red Hat Ecosystem Catalog. The certified CSI operator will also be listed in the OperatorHub within the web console in OpenShift. Partners will receive a logo to promote their certified product on the Red Hat OpenShift platform.
The Red Hat OpenShift software certification does not conduct functional or performance testing of the Partner’s product outside the Operator constructs and its impact on the Red Hat platform on which it was installed and executed. All aspects of the certification candidate product’s quality assurance remain the Partner’s sole responsibility.