operator-framework / operator-lifecycle-manager

A management framework for extending Kubernetes with Operators
https://olm.operatorframework.io
Apache License 2.0
1.72k stars 545 forks source link

[RFE] Support for multiple platforms in CSV #1543

Open RyuunoAelia opened 4 years ago

RyuunoAelia commented 4 years ago

Feature Request

Is your feature request related to a problem? Please describe.

Right now, CSV has no idea of specific platform needs, meaning if you want to install an Operator in OpenShift (as in OCP and OKD) you need to create a specific CSV for that platform which will most probably not be compatible with a "vanilla" k8s. This poses maintenability issues since the CSV for k8s and OpenShift will need to be nearly complete copies of each other with only a few changes between them.

Describe the solution you'd like

Proposal high level description My proposal is to add knowledge of such platform differences in the CSV itself. The best would be to have a generic interface to add support for new platforms (right now only k8s and openshift are known to have incompatible changes, but maybe there are or will be others).

Possible implementation It could be presented as a new field in CSV something like "supportedPlatforms". This field would be a dictionnary with the name of the platform as the key and the content would be a dictionnary (deep?)merged with the CSV "base" to override fields.

Retrocompatibility While the best would be that OLM itself understands the new format (without the need of any pre-processing, and with a configuration option to let it know on which platform it is running), it poses the issue of the retrocompatibility with existing installations. In that case, modifying the registry software to be able to serve the new CSVs with the old format might be possible. the registry would need configuration options (or different URL paths) to determine the platform it will serve and do the merging of the specificities itself to provide the older format directly.

Also retrocompatibility of older CSV with new OLM/registry can become an issue, so we can say that an OLM/registy that loads a CSV without the field "supportedPlatforms" will assume that the "base" part of the CSV is a CSV for a single "configurable default" platform (this will create a migration path for currently existing CSV repositories like operatorhub).

stale[bot] commented 4 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] commented 4 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] commented 3 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] commented 3 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.