Skip to content

Create a root component that can act as a component registry #598

@Skarlso

Description

@Skarlso

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

  • A ci/cd pipeline exist that managed the component version in the OCI registry
  • A component version exists that contains references to existing official OCM plugins, for example, Helm Input
  • Enduser Documentation updated (if applicable)
  • Internal technical Documentation created/updated (if applicable)
  • Successful demonstration in Review

Metadata

Metadata

Assignees

Labels

area/ipceiImportant Project of Common European Interestkind/tasksmall task, normally part of feature or epic

Type

No fields configured for Task.

Projects

Status
🍺 Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions