Submitting your Operator via Pull Requests (PR) in community operators project
Overview
To submit an operator one has to do these steps
- Test your operator locally
- Fork project
https://github.com/operator-framework/community-operators
- Make a pull request
- Place the operator in the target directory. More info
- community-operators (Openshift operator)
- upstream-community-operators (Kubernetes operator)
- Configure
ci.yaml
file. More info- Setup reviewers
- Operator versioning strategy
- Verify tests and fix problems, if possible
- 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.
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.
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
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) |