Skip to content

Manage plugins for a plugin registry #600

@Skarlso

Description

@Skarlso

Description

Following #616 we decided to use components as a plugin registry. With that, this issue becomes a way to manage plugins in a plugin registry. The plugin registry is created during #598.

This issue concerns itself with managing the plugins inside the registry. But does NOT including uploading new plugins. Because that part includes a component update mechanism described in #598.

Downloading and listing:

A command should exist that takes the configuration defined in #599 and then lists plugins either through selecting a single registry, or using all of them:

# all registries
ocm plugin registry list
NAME                             VERSION   DESCRIPTION                     REGISTRY
ocm.software/plugin/ecrplugin    0.27.0    AWS ECR repository plugin       ocm.software/plugin-registry
ocm.software/plugin/helminput    0.5.2     Helm input method plugin        ocm.software/plugin-registry
example.com/plugin/cvedb         1.2.0     CVE database integration        example.com/plugin-registry

# single registry
ocm plugin registry list --registry ocm.software/plugin-registry
NAME                             VERSION   DESCRIPTION                     REGISTRY
ocm.software/plugin/ecrplugin    0.27.0    AWS ECR repository plugin       ocm.software/plugin-registry
ocm.software/plugin/helminput    0.5.2     Helm input method plugin        ocm.software/plugin-registry

Downloading a plugin should be trivial to implement since the code for downloading already exists under
https://github.com/open-component-model/open-component-model/blob/main/cli/cmd/download/plugin/cmd.go.

This code can largely be reused and should be added as a convenience method like this:

ocm plugin registry get ocm.software/plugin/helminput

Following options can be added.

Optional:

  • --registry
  • --output
  • --version

Done Criteria

  • Able to parse a root component as a plugin registry
  • Able to get a plugin
  • Unit Tests created for new code or existing Unit Tests updated
  • Integration Test Suite updated (includes deletion of existing unnecessary Integration Test and/or creation of new ones if required)
  • Enduser Documentation updated (if applicable)
  • Internal technical Documentation created/updated (if applicable)
  • Successful demonstration in Review

Metadata

Metadata

Labels

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

Type

No fields configured for Task.

Projects

Status
🔍 Review

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions