Description
Based on #616 we decided to follow a component based registry design for OCM Plugins.
This means that we need to design / define a component that can contain multiple plugins.
This component should live in an OCI registry under the open-component-model repository.
The following format can be used to define the registry:
# Registry Component: ghcr.io/ocm/registry//ocm.software/plugin-registry:v1.0.0
name: ocm.software/plugin-registry
version: v1.0.0
provider: ocm.software
labels:
- name: category
value: plugin-registry
- name: registry
value: official
- name: description
value: Official OCM plugin registry
references:
- name: helminput
version: 0.0.1
component: ocm.software/plugins/helminput
digest:
hashAlgorithm: SHA-256
normalisationAlgorithm: jsonNormalisation/v1
value: def456...
There should be a ci/cd pipeline that manages this repository. The ci/cd pipeline would be built using this component constructor. That pipeline can also be used to release new versions of any given plugin that has been updated.
This is closely related to #695. Which creates a ci/cd pipeline that updated helm input method plugin for example.
These could be either joined. For example, when a plugin is updated there would be a dispatch action that calls this workflow with specific parameters to the updated plugin.
Alternatively, a manual approach would exist that pulls in all updated plugins and creates a new version of the plugin registry component.
The user flow:
- User creates a new version for a plugin
- The plugin is pushed and released ( separately from this issue )
- Now we want to update the component and release a new version
- Create a pull request that updates the component constructor yaml
- Bump the version
- Or add the new reference
- Once it's approved and merged it will push the new component into the OCI registry
Done Criteria
Description
Based on #616 we decided to follow a component based registry design for OCM Plugins.
This means that we need to design / define a component that can contain multiple plugins.
This component should live in an OCI registry under the open-component-model repository.
The following format can be used to define the registry:
There should be a ci/cd pipeline that manages this repository. The ci/cd pipeline would be built using this component constructor. That pipeline can also be used to release new versions of any given plugin that has been updated.
This is closely related to #695. Which creates a ci/cd pipeline that updated helm input method plugin for example.
These could be either joined. For example, when a plugin is updated there would be a dispatch action that calls this workflow with specific parameters to the updated plugin.
Alternatively, a manual approach would exist that pulls in all updated plugins and creates a new version of the plugin registry component.
The user flow:
Done Criteria