Chapter 35. CNI certification 35.1. Working with Container Network Interface (CNI) certification Note To certify a CNI plug-in, it must be configured to be deployed and managed by using an Operator. Before proceeding with the Red Hat CNI Certification, the operator, along with all the containers referenced by your CNI operator bundle, including the plug-in must already be certified and published on the Red Hat Ecosystem Catalog prior to certifying the CNI plug-in. 35.1.1. Introduction to Container Network Interface Container Network Interface (CNI) is a specification to configure network interfaces in Linux containers. It consists of a specification and libraries for writing plug-ins to configure network interfaces in Linux containers, along with a number of supported plug-ins. CNI is mainly helpful with adding, connecting, deleting and disconnecting containers to networks. The CNI badge is a specialization within Red Hat OpenShift certification. It is available to products that implement a network function delivered in a container format by using a CNI plug-in 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 CNI on the Red Hat OpenShift Container platform. After the certification is approved, the certified CNI product will be listed on the Red Hat Ecosystem Catalog as well as on the OperatorHub within the web console in Red Hat OpenShift. The certified CNI operators are identified with the CNI badge. Partners will receive a logo to promote their product certification. Additional resources For more information about CNI, see: Certified OpenShift CNI Plug-ins CNI Specification A brief overview of the Container Network Interface (CNI) in Kubernetes Kubernetes CNI 35.1.2. Certification workflow for CNI Note 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- Section 35.1.2.1, "Certification on-boarding for CNI" Section 35.1.2.2, "Certification testing for CNI" Section 32.4, "Publishing the product listing on the Red Hat Ecosystem Catalog" 35.1.2.1. Certification on-boarding for CNI 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 CNI Follow these high-level steps to run a 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 you face 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 CNI certification: Adding your Operator bundle Forking the repository Installing the OpenShift Operator Pipeline Executing the Openshift Operator pipeline Submit certification results 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 CNI tests Before running the CNI tests, verify if the Red Hat OpenShift environment that you use for running the CNI tests meets the following criteria: Use a Red Hat OpenShift version within the full support phase of the life cycle. Red Hat recommends using the latest supported release. For more information about OpenShift releases, see Red Hat OpenShift Container Platform Life Cycle Policy . Deploy the networking product only by using the documented installation procedure. Install the Red Hat OpenShift Virtualization. If you want to test Service Mesh, install the Red Hat Service Mesh operator and the Service Mesh Control Plane (SMCP). Configure a host with access to the OpenShift cluster to use as the test client for running the CNI certification tests. This environment must include the utilities such as gcc,git, go, make, openssl and sonobuoy . Important 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. Running the CNI tests To run the Red Hat OpenShift networking conformance test suite, place the kubeconfig.yaml file in the current working directory and run the following command: The command uses the test suite that corresponds to the exact version of the Red Hat OpenShift cluster, for example, 4.x. Follow the steps to run the Red Hat OpenShift Virtualization conformance test suite: Download the conformance tests specific to your environment by using the following command: In this command <KubeVirt version> corresponds to the OpenShift Virtualization version that you use. For more details, see the Version mapping table . Execute the tests by using the following command: In this command <KubeVirt version> denotes the version of the kubevirt. Monitor the status of the test by using the following command: When the test run is completed, fetch the results by using the following command: It generates a compressed tar file. Verification steps Verify that the tests are completed successfully, by using the following command: The output should look similar to this: Follow the steps to run the Red Hat OpenShift Service Mesh test suite: Clone the Maistra Test tool GitHub repository . Run the tests as per the instructions provided in the README.md file in the repository. Note that these tests may take approximately 3 hours to complete. If you face any issues that cause the suite to fail quickly, inspect the impacted pods by using the following command to check for ImagePullBackOff errors: After successful test completion, results.xml and test.log files are generated. Submit the files along with the CNI conformance test results to the Red Hat certification team for verification. 35.7. Submitting your CNI operator for certification Capture the output of the end-to-end CNI tests, the OpenShift Virtualization tests and the Service Mesh tests, if applicable and submit the results 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 CNI tests are completed successfully. If a particular test does not apply to the certified product, include an explanation along with the result submission. 35.8. Publishing the product listing on the Red Hat Ecosystem Catalog When you submit the CNI 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 CNI 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 CNI operator to this listing. Also add the certified containers used by your CNI 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 CNI operator is now available for public access on the Red Hat Ecosystem Catalog . The certified CNI 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. Note 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.

Commands:
mkdir -p test-results; cd test-results podman run -v "USD(pwd):/data:z" -w /data --rm -it USD(KUBECONFIG=USD(pwd)/kubeconfig.yaml oc adm release info --image-for=tests) sh -c "KUBECONFIG=/data/kubeconfig.yaml /usr/bin/openshift-tests run openshift/network/third-party -o /data/results.txt"
curl -L https://github.com/kubevirt/kubevirt/releases/download/v<KubeVirt version>/conformance.yaml -o kubevirt-conformance.yaml
sonobuoy run --skip-preflight --plugin kubevirt-conformance.yaml
sonobuoy status
sonobuoy retrieve
sonobuoy results <tarball>
Plugin: kubevirt-conformance Status: passed Total: 637 Passed: 9 Failed: 0 Skipped: 628
describe