Skip to content

Submitting your Operator via Pull Requests (PR) in community operators project

Overview

To submit an operator one has to do these steps

  1. Test your operator locally
  2. Fork project https://github.com/operator-framework/community-operators
  3. Make a pull request
  4. Place the operator in the target directory. More info
    • community-operators (Openshift operator)
    • upstream-community-operators (Kubernetes operator)
  5. Configure ci.yaml file. More info
    • Setup reviewers
    • Operator versioning strategy
  6. Verify tests and fix problems, if possible
  7. Ask for help in the PR in case of problems

Test locally before you contribute

The team behind OperatorHub.io will support you in making sure your Operator works and is packaged correctly. You can accelerate your submission greatly by testing your Operator with the Operator Framework by following our documentation for local manual testing or automated testing using scripts. You are responsible for testing your Operator's APIs when deployed with OLM.

Pull request

When a pull request is created, a number of tests are executed. One can see the results in Checks tab.

PR

Verify CI test results

Every PR against this repository is tested via Continuous Integration. During these tests your Operator will be deployed on either a minikube or OpenShift 4 environments and checked for a healthy deployment. Also several tools are run to check your bundle for completeness. These are the same tools as referenced in our testing docs and testing scripts. Pay attention to the result of GitHub checks.

More detailed information about our Continuous Integration process can be found here

Test results

Test results are located in Checks tab. Then they can be found in Operator test list on the left side. Once clicked on it the summary of the test will be shown.

Summary of test results

There are multiple tests. For easy mapping, different fruit names were chosen. Look at our testing suite for more information. One can see more details about tests when clicking directly on them.

Test on an Openshift cluster

For an Openshift operator (operators in community-operators directory), the deployment of an operator is executed on an Openshift cluster via ci/prow/deploy-operator-on-openshift.

Note

The kiwi test does not include the deployment test on k8s cluster. This can be forced by specifying label test/force-deploy-on-kubernetes in the PR.

You are done

User is done when all tests are green. When the PR is merged, one can follow the process explained in Release pipeline.

Test results failed?

When operator tests are failing, one can see a following picture

Summary of test results when failing

In case of failures, please have a look at the logs of specific tests. If an error is not clear to you, please ask in the PR. Maintainers will be happy to help you with it.

Useful commands interacting with the pipeline

You can post the following comment/command:

Command Functionality
/test deploy-operator-on-openshift Restarts Openshift deploy (Operator installation on an Openshift test)
/hold Setting PR on hold to prevent merging
/hold cancel Tests will be triggered again and merged if possible
/retest Tests will be retriggered again (in Openshift case all failed prow jobs are restarted)