Giter Site home page Giter Site logo

twistlock / community-operators Goto Github PK

View Code? Open in Web Editor NEW

This project forked from operator-framework/community-operators

0.0 4.0 1.0 1.82 MB

The canonical source for Kubernetes Operators that appear on OperatorHub.io, OpenShift Container Platform and OKD.

Dockerfile 3.13% Shell 96.87%

community-operators's Introduction

About this repository

This repo is the canonical source for Kubernetes Operators that appear on OperatorHub.io, OpenShift Container Platform and OKD.

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 CustomResourceDefinitions, the 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 3 directories where you can contribute, depending on a set of requirements:

Target Directory Type of Operators Target Platform Requirements
community-operators Community OpenShift Operators OpenShift / OKD needs to work on OpenShift 3.11 or newer
upstream-community-operators Community Kubernetes Operators Kubernetes / OperatorHub.io needs to work on Kubernetes 1.7 or newer
redhat-operators Red Hat-provided Operators OpenShift / OKD needs to work on OpenShift 3.11 or newer

The column Target Platform denotes where this Operator will be visible (embedded OperatorHub in OpenShift and OKD, or OperatorHub.io for Kubernetes) and where it's intended to run.

If you Operator works on both Kubernetes and OpenShift, place a copy of your bundle in the upstream-community-operators directory, as well as the appropriate OpenShift directory.

For partners and ISVs, certified operators can now be submitted via connect.redhat.com

Note that OpenShift and OKD clusters by default come with access to operators from community-operators, redhat-operators, and certified operators. Please keep this in mind when submitting operators, as duplicate operators across these sources will not be tolerated.

Before submitting a PR

Test your Operator

Upon creating a pull request against this repo, a set of CI pipelines will run, see more details here.

You can help speed up the review of your PR by testing manually.

Verify your Operator Metadata

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.

You can help us with that by validating your bundle with operator-courier. This tool will check against the required fields in your CSV.

operator-courier verify --ui_validate_io path/to/bundle

Preview your Operator on OperatorHub.io

If you are submitting your Operator in the upstream-community-operators directory your Operator will appear on OperatorHub.io. You can preview how your Operator would be rendered there by using this tool: https://operatorhub.io/preview

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.

Read more about testing your Operator

Operator CI Pipeline

New Operator PRs are automatically checked for required fields using the operator-courier and are run through a operator-sdk scorecard test against a live cluster. PRs are also reviewed manually by the maintainers to ensure that the automated tests are running smoothly and that Operators with additional setup can be verified.

You can learn more about the tests run on submitted Operators in this doc

Reporting Bugs

Report bugs using the project issue tracker.

community-operators's People

Contributors

aravindhp avatar awgreene avatar bonifaido avatar djzager avatar dmesser avatar dmueller2001 avatar estroz avatar ewolinetz avatar gallettilance avatar hasbro17 avatar hongkailiu avatar j-sandy avatar jcantrill avatar jeremy-wl avatar jmazzitelli avatar joelanford avatar joelsmith avatar lbroudoux avatar lilic avatar mamafun avatar mlbiam avatar objectiser avatar pliurh avatar pmorie avatar robszumski avatar samisousa avatar scholzj avatar tkashem avatar tonytcampbell avatar waynz0r avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

savobit

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.