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"
- a higher version of vela-core
version: ">=$VELA-VERSION"
orversion: ">$VELA-VERSION"
- a lower version of vela-core
version: "<=$VELA-VERSION"
orversion: "<$VELA-VERSION"
- be in a range versions of vela-core
version: ">=$VELA-VERSION1 <=$VELA-VERSION2"
- no required for versioning
Just leave out theversion
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?
Let's use
system:
vela: ">=v1.2.4"
kubernetes: "<=v1.22"
supported