Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Elemental versioning #402

Closed
kkaempf opened this issue Oct 7, 2022 · 10 comments
Closed

Elemental versioning #402

kkaempf opened this issue Oct 7, 2022 · 10 comments
Assignees

Comments

@kkaempf
Copy link
Contributor

kkaempf commented Oct 7, 2022

We need to decide on a versioning scheme for Elemental.

Currently we have

  • the node-image at 5.3, following SLE Micro version
  • builder-image at 5.3, because it's based on SLE Micro (but doesn't have to)
  • the elemental-operator, at 0.6.0
  • operator-image at 0.6.0
  • elemental-register at 0.6.0, synced with elemental-operator
  • elemental-cli, at 0.0.16
  • elemental, at 0.1.0

The node-image version is probably ok. Should we switch to semantic versioning to show patch versions ?
(Or even rename to sle-node-image to make its origins clearer ?)

elemental-operator should be bumped to 1.0.0 for release, no ?

Same for elemental-cli ?

Comments ? Suggestions ?

@fgiudici
Copy link
Member

fgiudici commented Oct 7, 2022

A couple of comments!

I would plan versioning on cards completion / features review.
In particular, 1.0.0 on the operator only when we are done with what we think is the bare minimum for 1.0.0 (e.g., security review, and maybe few other pending stuff ... haven't checked yet).
So, if we go tech preview with small nits I would keep a version < 1.0.0.

elemental-cli looks to me pretty mature and it really deserves a version bump IMO

@davidcassany
Copy link
Contributor

davidcassany commented Oct 7, 2022

elemental-operator should be bumped to 1.0.0 for release, no ?

Agree, IMHO this applies to rancher/elemental-operator and rancher/elemental repositories.

We are also missing elemental-toolkit in the list.

In relation to #361, there version for node-image follows rancher/elemental tags. In fact the idea from #361 is that all our artifacts are versioned according git repository tags. So that the tags from our git repositories define:

  • rancher/elemental -> node-image and ISOs
  • rancher/elemental-operator -> operator-image and operator helm chart (rpm are using tag versions but they are not meant to be distributed)
  • rancher/elemental-tooklit -> (rpm part of node-image, not meant to be distributed as RPM)
  • rancher/elemental-cli -> builder-image tag (rpm part of builder-image and node-image, not meant to be distributed as RPM)

So it is only these four versions we should care about IMHO. Said that I agree with @fgiudici elemental-cli deserves a version bump, however note these are components that its version is not really user facing. So from the perspective of making a public release what is really important to my eyes are the versions from rancher/elemental and rancher/elemental-operator, probably we could start tagging something like 1.0.0-beta in both? alternatively we could do a minor bump now in both and reserve 1.0.0 for the actual release (for 2.7.0 milestone) without any alpha/beta, I'm fine with both.

I would not follow SLE Micro versioning in any case, IMHO this will turn to be confusing and having SLE Micro 5.3 based on SLE 15.4 is already too much for my brain 😅

@kkaempf
Copy link
Contributor Author

kkaempf commented Oct 7, 2022

We are also missing elemental-toolkit in the list.

Added

@kkaempf
Copy link
Contributor Author

kkaempf commented Oct 7, 2022

I would not follow SLE Micro versioning in any case, IMHO this will turn to be confusing and having SLE Micro 5.3 based on SLE 15.4 is already too much for my brain sweat_smile

Full ack, lol.

But @agracey might have different requirements 🤔

@agracey
Copy link

agracey commented Oct 7, 2022

I have no specific requirements on this other than that it doesn't cause issues for support later.

I agree with @davidcassany's assessment and would add that the elemental-operator and elemental versions should have the same major version at each stable release. Then we can bump the minor version of the image as we get updates from SLE Micro.

IMO, what would be helpful is to have a state policy of how we expect semvar to work between different components.

@davidcassany
Copy link
Contributor

would add that the elemental-operator and elemental versions should have the same major version at each stable release.

I like the idea

IMO, what would be helpful is to have a state policy of how we expect semvar to work between different components.

Yes, I also like the idea to establish some criteria on rancher/elemental and rancher/elemental-operator versioning to actually represent their compatibility. Something like path level does not matter in terms of compatibility (we can always upgrade one if it does not affect the other), different major version means no compatibility at all and we should discuss what different or equal minor version means.

@davidcassany
Copy link
Contributor

davidcassany commented Oct 24, 2022

Ok after the discussion we had last week I think a good criteria to start with could be (applicable for rancher/elemental and rancher/elemental-operator repositories):

  • Use semantic versioning
  • Align versions of Elemental Teal image and Elemental Operator (at least at MAJOR.MINOR level).
  • Start with 1.0.0 for 2.7.0 milestone RC.
  • Always bump, at least, MINOR level version on head releases.
  • Leave PATCH level bumps for maintenance releases (to ensure we can bump without overlaps on head releases)
  • PATCH level does not define any compatibility constraint between elemental-operator and elemantal-teal.

Remains to be defined the compatibility constraints between Elemental Teal and Elemental Operator. I'd say the simplest options is to assume

  • MAJOR.MINOR versions must match in all cases for supported scenarios
  • Different MINOR is not explicitly supported but likely to be functional, no API changes

Should we assume different upgrade speeds on Elemental Teal vs Elemental Operator? Elemental Operator are upgrades on management clusters, Elemental Teal upgrades are in place node OS upgrades for managed clusters. I'd expect different criteria on applying updates in these to pieces from a sysadmin perspective. I believe we have to be clear on Elemental Teal vs Elemental Operator versions compatibility.

@rancher/elemental @agracey

@kkaempf
Copy link
Contributor Author

kkaempf commented Oct 25, 2022

Waiting for a call with @agracey

@kkaempf kkaempf moved this from 🗳️ To Do to Blocked in Elemental Oct 25, 2022
@kkaempf kkaempf self-assigned this Nov 15, 2022
@kkaempf
Copy link
Contributor Author

kkaempf commented Nov 22, 2022

General guideline on versioning

  • Elemental is the glue between SLE (Micro for Rancher) and Rancher Manager. Both with separate lifecycles.
  • The dependencies on Rancher (operator, cluster provisioning) are stronger that on SLE (kernel)
  • Elemental versioning should be independent from both (SLE, Rancher)

We will start with 1.0.0 and follow semantic versioning.

  • The major version will increase when we introduce larger (possibly breaking) changes in the operator
  • Larger operator updates (kubebuilder!) should be treated as minor version updates (i.e. update from 1.0.x to 1.1.x)
  • Updates of underlying SLE should be treated as minor version updates
  • Any other updates increase the patch version

We still need a way to track changes of SLE and how to reflect this in the Elemental Teal version 🤔

@kkaempf kkaempf moved this from Blocked to ✅ Done in Elemental Nov 22, 2022
@kkaempf
Copy link
Contributor Author

kkaempf commented Dec 28, 2022

Considered done.

@kkaempf kkaempf closed this as completed Dec 28, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

No branches or pull requests

4 participants