kubevela / catalog

Catalog of community maintained components and traits.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Versioning of addons

zzxwill opened this issue · comments

Background

The function of an addon, especially a Terraform provider addon like terraform-alibaba, depends on the version of KubeVela core. For example, if this PR is not released to a new version of vela-core, any changes of a Terraform provider addon will be directly delivered to all users who install vela-core from scratch or choose to upgrade the addon.

Depencies of vela-core

Proposal

Per the suggestion from @wonderflow , a version dependency of vela-core needs to be set for an addon.

In the section dependencies of an addon's metadata.yaml, add another item vela-core to mark the dependency requirement of the version of vela-core.

# metadata.yaml

+ system:
+  - name: vela-core
+    version: ">=1.2.4"
  1. a higher version of vela-core
    version: ">=$VELA-VERSION" or version: ">$VELA-VERSION"
  2. a lower version of vela-core
    version: "<=$VELA-VERSION" or version: "<$VELA-VERSION"
  3. be in a range versions of vela-core
    version: ">=$VELA-VERSION1 <=$VELA-VERSION2"
  4. no required for versioning
    Just leave out the version line.

As an addon itself is not revisioned, users who install an old vela-core from scratch, or upgrade the addon by an old vela command line in an old vela-core release, will be affected.

Tasks

  • Check dependency of vela-core's version when executing vela addon enable/upgrade xxx
  • Check dependency of vela-core's version when enabling or upgrading an addon

More to be taken into consideration

  • When executing vela addon ls or showing all addons in VelaUX, can an addon, who needs a higher version of vela-core, be listed?
  • How to define different vela-core dependencies for an addon in GitHub?

Versioning of addon itself

Status: Drafting

Proposal

Set up GitHub releasing for repo oam-dev/catalog to mark the version of each addon.

  • vela addon registry setup
  • vela addon list
  • vela addon enable/upgrade

We should not use dependencies together. My advice is as follows:

required:
  vela: ">=v1.2.4"
  kubernetes: "<=v1.22"

Should be the Vela version, not just VelaCore, CLI Or VelaUX does not support and cannot be installed.

We should not use dependencies together. My advice is as follows:

required:
  vela: ">=v1.2.4"
  kubernetes: "<=v1.22"

+1 for this proposal, it would be more clear, and the required field is not extensible by users, they're system dependency.

The words dependencies and required express the same meaning. If we choose to use required, we might need to change dependencies to addonDependencies.

What doesn't vela mean when we'd like to check the version of it?

commented

Let's use

system:
  vela: ">=v1.2.4"
  kubernetes: "<=v1.22"

supported