Chapter 35. CSI certification
35.1. Working with Container Storage Interface (CSI) certification
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
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.
Additional resources
For more information about CSI, see:
35.1.2. Certification workflow for CSI
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
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.
Additional resources
For detailed instructions about creating a product listing, see Creating a product listing.
35.1.2.2. Certification testing for CSI
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.
Additional resources
For detailed instructions about attaching product components and validating the functionality of your CNI operators on Red Hat OpenShift, see Adding certification components.
35.1.2.3. Publishing the product listing on the Red Hat Ecosystem Catalog
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.
Additional resources
For detailed instructions about publishing the product listing on the Red Hat Ecosystem Catalog, see Publishing the product listing on the Red Hat Ecosystem Catalog.
35.2. Creating a Product
For detailed instructions about creating a product listing, see Creating a product listing.
35.3. Adding certification components
For detailed instructions about attaching product components and validating the functionality of your CNI operators on Red Hat OpenShift, see Adding certification components.
35.4. Working with the OpenShift Operator Pipeline
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
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.18 or later. Red Hat recommends using the latest supported release. For more information on 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 Connect Program Guide.
35.6. Accessing the CSI certification tests
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.
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
The CSI certification tests require the following files to be present on the client host:
A
kubeconfig.yaml
file 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.yaml
file 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
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
On the test client, place the kubeconfig.yaml
and manifest.yaml
files in the current working directory and run the following command:
$ mkdir -p test-results; cd test-results $ podman run -v "$(pwd):/data:z" -w /data --rm -it $(KUBECONFIG=$(pwd)/kubeconfig.yaml oc adm release info --image-for=tests) 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:
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.
Saving the CSI test results
Make sure to have the following ready before submitting your test results:
- Contents on the results directory
-
manifest.yaml
file Output of the following commands:
$ oc get clusterversion -o yaml
and
$ podman image list registry.redhat.io/openshift4/ose-tests
35.8.2. Running the KubeVirt storage checkup test
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
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
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
Additional resources
For more information about the KubeVirt storage checkup test, see kubevirt-storage-checkup.
35.9. Submitting CSI test results
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
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.