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

feat: Add ability to select version of demos/stacks #310

Closed
Tracked by #148
NickLarsenNZ opened this issue Jul 25, 2024 · 2 comments · Fixed by #340
Closed
Tracked by #148

feat: Add ability to select version of demos/stacks #310

NickLarsenNZ opened this issue Jul 25, 2024 · 2 comments · Fixed by #340
Assignees

Comments

@NickLarsenNZ
Copy link
Member

NickLarsenNZ commented Jul 25, 2024

Once demos are versioned per release (see sub-issue) DONE, we should be able to select which demo/stack version to install.

Suggested option to add:

stackablectl demo in monitoring --release 24.7

The default should be the latest stable release.

Examples (competing ideas, in no particular order)

stackablectl demo in monitoring # latest stable. Currently this deploys manifests from `main`

# Enforce a particular release
stackablectl demo in monitoring --release 24.7
stackablectl demo in monitoring --release dev

# Take any committish (stackableRelease derived from stack.yaml at that version)
stackablectl demo in monitoring --ref abcdef7
stackablectl demo in monitoring --ref release-24.7

# Or, enforce a branch (because the HEAD is what should be working. Random commits might cause surprises)
stackablectl demo in monitoring --branch release-24.7 # but must be a branch

Considerations:

  • --ref (Committish), or --branch (and check that it is a branch), or --release (we need to derive the ref).
    • We can work out the operator release, because at that version
    • We should ideally go with the most flexible (--ref), unless we cannot derive the release.
    • ⚠ There will still be hard coded refs in the stack/demo yamls, as well as scripts. This can lead to broken demos.
    • Specifying --release would remove the need for the stackableRelease key in stacks.yaml.
  • Caching - do we need to invalidate the cache if a ref/branch/release is specified?
  • Overlap with: 'install' should install 'stable' instead of 'nightly' for operators/demos/etc... #212
@NickLarsenNZ
Copy link
Member Author

NickLarsenNZ commented Nov 12, 2024

Not having this is making things really difficult at release time, because the current behaviour:

  • requires the demos main branch to be stable, which means...
  • changes needed for an upcoming release need to be held back in a next branch (which still can't be used by stackablectl without checking out the branch), and then...
    • The next branch gets mixed with changes that can work for the next release, as well as other changes that break it (eg: image tags that don't yet exist). This confusion could be avoided by using the 0.0.0-dev tags.
  • Near release time, the next branch gets merged - generally breaking the stability promise of the main branch.

Notes:

  • No other repos at stackable treat main as a stable source, so demos should not either.
  • Demos are now versioned, so we only need to do this change before the demos main branch can be treated as dev/nightly/unstable.

@Techassi Techassi self-assigned this Nov 13, 2024
@lfrancke lfrancke assigned labrenbe and unassigned Techassi Nov 13, 2024
@labrenbe labrenbe moved this to Ready for Development in Stackable Engineering Nov 25, 2024
@labrenbe labrenbe moved this from Ready for Development to Development: In Progress in Stackable Engineering Nov 25, 2024
@labrenbe labrenbe linked a pull request Dec 5, 2024 that will close this issue
@labrenbe labrenbe moved this from Development: In Progress to Development: Waiting for Review in Stackable Engineering Dec 5, 2024
@Techassi Techassi moved this from Development: Waiting for Review to Development: In Review in Stackable Engineering Dec 5, 2024
@labrenbe
Copy link
Member

labrenbe commented Dec 6, 2024

We decided to implement the first option --release because users would typically want to install a stable version (--release dev still allows installing from main) while keeping the overall complexity as low as possible.

@labrenbe labrenbe moved this from In Progress to Done in Stackable End-to-End Coordination Dec 18, 2024
@labrenbe labrenbe moved this from Development: In Review to Development: Done in Stackable Engineering Dec 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Development: Done
Development

Successfully merging a pull request may close this issue.

3 participants