About this repository
Know what to contribute
To add your operator to any of the above platforms, you will need to submit a PR with your Operator packaged for use with Operator Lifecycle Manager. This package contains all of the Custom Resource Definitions (CRDs), access control rules and references to the container image needed to install and securely run your Operator, plus other info like a description of its features and supported Kubernetes versions. Follow this guide to create an OLM-compatible CSV for your operator, CRDs, and the package.yaml file for your operator.
An Operator's CSV must contain the annotations mentioned here for it to be displayed properly within the various platforms.
Your PR needs to be formatted as a
bundle which is a directory named after your Operator with all
ClusterServiceVersion and package definitons in separate YAML manifests like so:
$ ls my-operator/ my-operator.v1.0.0.clusterserviceversion.yaml my-operator-crd1.crd.yaml my-operator-crd2.crd.yaml my-operator.package.yaml
Please note that the directory name should match the
packageName of your operator in it's
package.yaml, and should be used as a prefix for all files in the bundle. Please follow the conventions of the example above.
Where to contribute
There are 4 directories where you can contribute, depending on a set of requirements:
|Target Directory||Type of Operators||Target Platform||Requirements|
||Community OpenShift Operators||OpenShift / OKD||needs to work on OpenShift 3.11 or newer|
||Community Kubernetes Operators||Kubernetes / OperatorHub.io||needs to work on Kubernetes 1.7 or newer|
||Red Hat-provided Operators||OpenShift / OKD||needs to work on OpenShift 3.11 or newer|
||Certified 3rd party Operators||OpenShift||needs to be commercially supported and certified with Red Hat|
The column Target Platform denotes both, where this Operator will be visible (embedded OperatorHub in OpenShift / OKD or OperatorHub.io) and where they are intended to run.
If you Operator fulfills multiple criteria place a copy of your bundle in the appropriate folders respectively.
Before submitting a PR
The maintainers will work with you to make sure your Operator has the required metadata to function properly and be displayed with useful information for the end user.
operator-courier verify --ui_validate_io path/to/bundle
Updating your Operator
Similarly, to update your operator you need to submit a PR with any changes to your Operator resources. Within your CSV, add the additional
replaces: my-operator.v1.0.0 parameter which indicates that existing installations of your Operator may be upgraded seamlessly to the new version. It is encouraged to use continuous delivery to update your Operator often as new features are added and bugs are fixed.
New Operators are reviewed manually by the maintainers to ensure that contain all required information. In the near future, automation will be added to check for required values and run a suite of automated tests against a live cluster.
Report bugs using the project issue tracker.