Skip to content

Conversation

@mobileoverlord
Copy link
Contributor

This PR introduces breaking changes.

Previously, we would add extensions to the runtime via adding the images to /var/lib/avocado/extensions. Extension image names would only contain the extension names. This is problematic with staging an update to move from one version set of extensions to another.

This PR changes the behavior of how the runtime will determine what extensions are enabled.

  • /var/lib/avocado/extensions is now an image repository of available extension images.
  • Enabled extensions are represented as symlinks from /var/lib/avocado/runtime/<os-release VERSION_ID> back to images in the images repo.
  • avocadoctl will read the VERSION_ID from /etc/os-release to determine which runtime folder to look in.
  • Added avocadoctl enable [--runtime VERSION_ID] ext1 [ext(n)] to manage enabling extensions into a runtime. If runtime flag is omitted, the current os-release VERSION_ID is used. You can declare many extensions to enable. Writes to disk are made as atomically as possible.
  • Added avocadoctl disable [--runtime VERSION_ID] [--all | ext1 ext(n)] to manage disabling extensions in a runtime.

Using this version of avocadoctl will require a version of avocado cli with supported changes.

@mobileoverlord mobileoverlord merged commit d2f0239 into main Nov 19, 2025
2 checks passed
@mobileoverlord mobileoverlord deleted the jschneck/runtime-vsn branch November 19, 2025 22:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants