Introduction
The LXD team would like to announce the release of MicroCloud 2.1.1 LTS!
This is the first bugfix release for MicroCloud 2.1. It features an enhanced user interface, more in-depth tests, improved documentation and fixes several bugs around disk selection and re-using of existing MicroCeph clusters.
MicroCloud 2.1 LTS relies on LXD 5.21, MicroCeph Squid, and MicroOVN 24.04 LTS versions. To be able to stay on track with the latest developments of LXD, MicroCloud now also allows using LXD’s latest feature release track 6 for non-production deployments.
As with all our other LTS releases, this one will be supported for 5 years (until June 2029).
Thank you to everyone who contributed to this release!
Release highlights
Enhanced user interface
To provide more precise feedback to the user, we have extended the formatting and coloring of the CLI’s output which was already present for the new microcloud status
command introduced in the last release.
Colors are now used throughout the entire interactive questionnaire to highlight user inputs, actions items, warnings and errors.
This makes it easy to spot configuration or system errors and allows to stay focused throughout the process.
More in-depth tests
As part of making the MicroCloud 2.1 release more stable, a new set of end to end tests was added which allows validating a MicroCloud deployment post installation.
The tests deploy workload (using Terraform) and evacuate, reboot and restore individual machines of the MicroCloud to validate their uptime and connectivity.
Those tests are now running by default in our test pipeline but can also be used to validate any MicroCloud deployment. See the docs for more information.
Improved documentation
The entire set of documentation is now rewritten to use US english.
Additional guides for pre-deployment requirements as well as improvements to MicroCloud’s networking approach have been added.
This makes it easier to reason about MicroCloud’s needs when it comes to the planning of a new deployment.
Furthermore new how-tos were added for properly shutting down a MicroCloud cluster member as well as the correct management and update of the respective snaps.
Support for LXD’s feature release track 6
To experience the latest features introduced in LXD’s feature release track 6, MicroCloud now has the ability to be deployed together with the latest version of LXD. Whilst this is only recommended for non-production deployments, users can already experience new features before they end up in LXD’s next LTS release.
A list of features present in the latest LXD feature release can be seen here.
Bugfix highlights
Stateful migration by default
MicroCloud now sets the instances.migration.stateful=true
LXD config setting for new installations.
This ensures that by default instances are migrated statefully.
Exclude already used disks
When using microcloud add
, disks which have already been configured for the remote
storage pool were still displayed.
As MicroCloud knows which disks are already in use, they are now excluded from the interactive questionnaire when rendering the disk selection tables.
Allow adding existing MicroCeph clusters without configuring new disks
MicroCloud allows to add existing MicroCeph clusters to any MicroCloud deployment.
When doing so, a user usually wants to also configure the remote
storage pool in order to make use of the MicroCeph cluster by using the storage pool when creating resources in LXD.
An existing MicroCeph cluster can be added either via microcloud service add
or through the microcloud add
command.
The latter always required to add a new disks to MicroCeph in order to configure the existing cluster for the remote
(distributed) storage pool. If no additional disks was selected, the configuration of the remote
storage pool was skipped.
Now the selection of an additional disk is optional and the MicroCeph cluster can just be included in MicroCloud with both commands. An additional information message is printed for the disks which are already configured in MicroCeph.
Profile replacement
In case a new storage pool or network gets added to MicroCloud post installation, the user is prompted whether or not LXD’s default
profile should be modified to include the most recent resource instead.
This prompt was only coming up for networks and was skipped for storage pools.
Updating to the new version
In case you are already tracking MicroCloud 2.1 LTS, follow the How to update MicroCloud guide to update your MicroCloud to the latest version 2.1.1.
We recommend that all current users upgrade to the LTS version so that they can benefit from the long term support. The previous version, MicroCloud 1.1 has reached EOL in April 2025.
See the how to upgrade guide.
Full changelog
Full commit list
- doc: move redirects to external file and add new redirects
- doc: fix internal link targets
- doc: add pyyaml to Makefile commands
- doc/how-to: improve guides on managing and updating/upgrading snaps
- doc/how-to/install: update install instructions
- doc/how-to/support: update support information
- doc/ref/releases-snaps: add reference information about releases and snaps
- version: Set 2.1.1 LTS
- go: Update dependencies
- test/e2e/reboot: Add temporary fix for MicroOVN northd issue
- doc/how-to/member_add: fix highlighted lines in preseed file
- doc: update links and toctrees
- doc: add how-to manage cluster members section
- doc/how-to: rename/update cluster member management guides
- service/microceph: Increase the context deadline for adding disks
- doc: add google analytics tracking
- doc: add tracking consent cookie banner
- doc/howto: reorder navigation menu
- test/suites/e2e: Reduce the number of evacuation counts
- test/e2e: Update help message with new command
- test/e2e: Use retry for connectivity check
- test/includes: After resetting the snaps wait for services to be ready
- test/e2e: Use the new extended ‘microcloud waitready’ command
- cmd/microcloud: Extend waitready to wait for LXD networks and storage pools
- service/lxd: Export WaitReady and allow waiting for both network and storage
- test/suites/basic: Add new test reusing an existing Ceph without adding new disks
- test/includes: Add SKIP_CEPH_DISKS interactive answer
- test: Remove CEPH_MISSING_DISKS option as the warning isn’t anymore printed
- cmd/microcloud/ask: Consider both existing disks and new ones for recommendations warning
- cmd/microcloud/ask: Only ask for distributed storage disk config if there is at least one disk
- cmd/microcloud/ask: Allow existing disks only for distributed storage
- cmd/microcloud/ask: Collect list of already existing remote storage disks
- cmd/microcloud: Add comment clarifying when distributed storage gets skipped
- cmd/microcloud: Remove leftover comment
- test/suites/basic: Set actual profile’s pool name in test validation
- test/suites/basic: Allow passing mandatory profile pool name to the validator func
- test/includes: Fix spacing
- test/includes: Allow passing mandatory profile pool name to validate_system_lxd
- cmd/microcloud: Include both networks and storage pools when asking for profile replacement
- github: Update test suites and order by name descending
- test: Add new conditions for restructured test suites
- test/suites/basic: Rename test to stay consistent with outher cluster test
- test: Restructure tests in smaller suites
- test/includes: Cleanup left over tmux sessions
- test/includes: Remove newlines
- test/includes: Launch interactive join in separate terminals
- test/e2e/run: Display correct total evacuation tries number
- doc/how-to/add_machine: Remove notion about --wipe
- test/suites: Ensure MicroCloud is restarted after enabling/disabling services
- test/suites/add: Add new test to check for local storage.* config on new systems
- test/suites/add: Fix test name for clarification
- cmd/microcloud: Allow having target pools and join config at the same time
- cmd/tui/style: Ensure a clean unknown command help message
- cmd/microcloud/ask: Skip systems which aren’t marked for local storage contribution
- service: Filter out disks already used for storage
- cmd/microcloud/ask: Consistently use tui’s PrintWarning
- cmd/microcloud/ask: Finish looping systems in case no local storage disks are available
- cmd/microcloud: Update usage of FormatDiskPath
- service: Move general disk path utility
- cmd/microcloud/init: Update invocations of MicroCeph’s GetDisk
- api: Update invocations of MicroCeph’s GetDisk
- service/microceph: Allow fetching disks using temporary trust store
- test/suites/preseed: Add check for IPv6 only uplink
- cmd/microcloud/preseed: Parse IPv6 gateway instead of IPv4 if set
- test/suites/instances: Add missing OVN uplink gateway
- cmd/tui: Allow forwarding an invalid input’s error
- cmd/microcloud: Require either IPv4 or IPv6 gateway on uplink (preseed)
- cmd/microcloud: Require either IPv4 or IPv6 gateway on uplink
- Revert “doc: add vlatest to custom wordlist”
- doc: Link to custom volume attachment constraints for local storage
- build(deps): bump github/codeql-action from 3.29.3 to 3.29.4
- cmd/tui: Use own asker implementation
- cmd/tui: Use the tui’s PrintError also for regular CLI errors
- cmd/tui: Add SprintError to be more flexible with the actual error
- service: Use tui’s PrintWarning
- cmd/tui: Remove redundant printWarning in favor of the exported PrintWarning
- cmd/tui: Use our own PrintWarning
- cmd/microcloud: Use tui’s PrintWarning
- cmd/microcloud: Use tui’s PrintError
- cmd/tui: Add PrintError which uses consistent message format
- cmd/tui: Use consistent format for PrintWarning
- cmd/microcloud: Don’t use yellow color for trust establishment info messages
- cmd/tui: Don’t use yellow color for table input summary
- cmd/microcloud: Exit add command in case no new system got selected
- doc: update integration to sync with microceph update to sphinx-starter-pack
- doc: add vlatest to custom wordlist
- doc: add information about using a single network interface
- doc/how-to/preseed.yaml: remove partitioned==false example filter
- doc/how-to/update_upgrade: clarify lxd refresh process
- cmd/tui/handler: simplify to countAllRows as we only ever read the size of the rows and don’t need a copy of the table rows. This avoids a kernel panic, suspected due to parallel processing of handleRemoveEvent or handleInsertEvent on the table
- github: Update TICS viewerURL
- api/services_proxy: special handling of the /1.0/metrics route to enable cluster manager to fetch lxd metrics
- github: Skip core system tests for LXD 6 if not running via schedule
- github: Run core system tests with both LXD 5.21 and 6
- service: Print warning in case a non-LTS version of LXD is used
- service: Adapt version test to allow LXD >= 5.21
- service: Allow MicroCloud to work with any LXD version >= 5.21
- doc: update eol notice for track 1
- doc/tutorial: instruct to install lxd snap on u:24.04 VMs
- doc/get_started: bump ubuntu version used in tutorial to 24.04
- update absolute URL links to MicroCloud docs
- Makefile: use golangci-lint version 2.1.6
- golangci-lint: enable perfsprint, prealloc and testifylint linters
- cmd/microcloud/ask: preallocate servicesStr
- cmd/microcloud/preseed_test: use
s.Empty()
(testitylint) - cmd/microcloud/preseed_test: use
s.Len()
(testitylint) - version/version: use string concatenation (perfsprint)
- service/version_test: use string concatenation (perfsprint)
- service/version: use string concatenation (perfsprint)
- service/lxd_join: use string concatenation (perfsprint)
- cmd/tui/selectable_table: use string concatenation (perfsprint)
- cmd/tui/handler: use string concatenation (perfsprint)
- cmd/tui/console_test: use string concatenation (perfsprint)
- cmd/microcloud/main_init: use string concatenation (perfsprint)
- cmd/microcloud/ask: use string concatenation (perfsprint)
- client/proxy: use string concatenation (perfsprint)
- api/services_proxy: use string concatenation (perfsprint)
- service/system_information: use
error.Error()
(perfsprint) - service/microovn: use
error.Error()
(perfsprint) - service/microcloud: use
error.Error()
(perfsprint) - service/microceph: use
error.Error()
(perfsprint) - service/lxd_join: use
error.Error()
(perfsprint) - service/lxd: use
error.Error()
(perfsprint) - multicast/discovery_test: use
error.Error()
(perfsprint) - cmd/tui/selectable_table: use
error.Error()
(perfsprint) - cmd/tui/console: use
error.Error()
(perfsprint) - cmd/microcloud/status: use
error.Error()
(perfsprint) - cmd/microcloud/session: use
error.Error()
(perfsprint) - cmd/microcloud/services: use
error.Error()
(perfsprint) - cmd/microcloud/preseed: use
error.Error()
(perfsprint) - cmd/microcloud/ask: use
error.Error()
(perfsprint) - client/proxy: use
error.Error()
(perfsprint) - client/client: use
error.Error()
(perfsprint) - api/session_join: use
error.Error()
(perfsprint) - api/session: use
error.Error()
(perfsprint) - api/services_auth: use
error.Error()
(perfsprint) - github: trigger snap edge build on ubuntu-24.04 runners
- github: run triage job on ubuntu-24.04 runners
- github: run security job on ubuntu-24.04 runners
- github: run change detection on ubuntu-24.04 runners
- doc: use python 3.12 on RTD runners
- doc: use golang 1.23 on RTD runners
- doc: use ubuntu-24.04 runners on RTD
- doc/reference/requirements: document default storage filesystem type
- test: Collect the logs from all services on failure
- doc: Add documentation note for when LXD 5.0 is already installed
- test/suites/e2e: do multiple evacuation tests to find any race
- test/e2e/run: allow running multiple evacuation/rolling reboot tests
- github: Remove unsed step that installs dqlite dev
- test/e2e/run: refuse to test against the
local:
remote - test/suites/e2e: initialize terraform before invoking run script
- test/e2e/run: don’t run
terraform init
- test/includes/microcloud: use waitInstanceBooted helper
- test/includes/microcloud: add waitInstanceReady and waitInstanceBooted helper
- test/suites/upgrade: wait for instances to be ready before exec’ing into them
- test/e2e/run: provide clearer instructions to wait for LXD to be ready after a reboot
- test/e2e/reboot.local-lxd-vm: remove one call argument (project name)
- test/e2e/run: stop passing the project name to the reboot script
- test/suites/upgrade: stop installing iputils-ping for ping checks
- test/suites/upgrade: probe TCP/22 instead of ping GW’s IP
- test/suites/upgrade: use
cut
to get the gateway’s IPv4 - test/suites/instances: stop installing iputils-ping for ping checks
- test/suites/instances: probe TCP/22 DNS and IPs instead of ping’ing IPs
- test/suites/instances: probe TCP/22 DNS and IPs instead of ping GW’s IPs
- github: run e2e system tests
- github: add action to setup Terraform for e2e test
- github: stop providing input variable to actions/system-test
- github: remove uneeded input variable for actions/system-test
- test/main: add e2e test scenario
- test/suites/e2e: new test scenario
- test/suites/instances: simplify extracting micro01’s enp5s0 IPv4
- test/suites/basic: simplify extracting micro01’s enp5s0 IPv4
- test/includes/microcloud: simplify join_session code check
- test/e2e/run: add links to LXD bugs justifying the retry loop on
terraform apply
- test/e2e/run: add evacuation with rolling reboot
- test/e2e/run: allow bypassing destruction prompt
- test/e2e/.gitignore: ignore local reboot script
- test/e2e/reboot.local-lxd-vm: add sample script to reboot local MC members
- test/e2e/main: fix VM names
- test/e2e/main: use less memory for faster VM migration
- test/e2e/main: allow TF to relocate instances if needed
- test/e2e/main: set VM for live migration
- test/e2e/run: call
terraform init
during init() - test/e2e/run: show any overrides values for Terraform
- test/e2e/run: add connectivity tests
- build(deps): bump github/codeql-action from 3.29.2 to 3.29.3
- build(deps): bump redhat-plumbers-in-action/differential-shellcheck
- build(deps): bump golang.org/x/mod from 0.25.0 to 0.26.0
- build(deps): bump golang.org/x/net from 0.41.0 to 0.42.0
- build(deps): bump github.com/charmbracelet/bubbletea from 1.3.5 to 1.3.6
- doc: pin canonical-sphinx-extensions version
- doc: fix sitemap URL scheme
- doc: add sphinx-sitemap to generate sitemap for SEO
- update absolute URL links to LXD docs
- doc: update config for move to documentation.ubuntu.com
- doc: ignore anchor titles in spellcheck
- doc: linkcheck ignore sourceforge domain
- doc: skip ceph.io during linkcheck
- build(deps): bump github/codeql-action from 3.29.1 to 3.29.2
- build(deps): bump github/codeql-action from 3.29.0 to 3.29.1
- go: Update deps
- make: Update used version pin of LXD
- make: Update used version pin of MicroOVN
- make: Update used version pin of MicroCeph
- make: Update min go version and pin tablewriter
- service: Replace shared.ValueInSlice with slices.Contains
- cmd/microcloud: Replace shared.ValueInSlice with slices.Contains
- build(deps): bump github.com/charmbracelet/x/ansi from 0.9.2 to 0.9.3
- doc: Use new stable version of MicroCeph docs
- doc/make: Bump the used version of MicroCeph
- doc: update move wording to migrate
- test/e2e/README: clarify that running the e2e script will result in downtime
- doc: Fix link to Ceph disk encryption setup
- doc: add failover to spellcheck exceptions
- doc/reference/requirements: minor updates & add header targets
- doc: move requirements into own page
- build(deps): bump github/codeql-action from 3.28.19 to 3.29.0
- build(deps): bump github/codeql-action from 3.28.18 to 3.28.19
- build(deps): bump golang.org/x/net from 0.40.0 to 0.41.0
- build(deps): bump redhat-plumbers-in-action/differential-shellcheck
- doc: update move wording to migrate
- test/e2e/README: document how to tweak rolling reboots/evacuation tests
- test/e2e/README: mention that client credentials need manual cleaned up
- test/e2e/README: clarify that running the e2e script will result in downtime
- test/e2e/README: explain what happends during rolling reboots
- test/e2e/README: document how to automatically destroy test env
- build(deps): bump actions/dependency-review-action from 4.7.0 to 4.7.1
- build(deps): bump github/codeql-action from 3.28.17 to 3.28.18
- build(deps): bump actions/dependency-review-action from 4.6.0 to 4.7.0
- build(deps): bump actions/setup-go from 5.4.0 to 5.5.0
- build(deps): bump golang.org/x/net from 0.38.0 to 0.40.0
- build(deps): bump actions/download-artifact from 4.2.1 to 4.3.0
- build(deps): bump github/codeql-action from 3.28.15 to 3.28.17
- build(deps): bump github.com/charmbracelet/x/ansi from 0.8.0 to 0.9.2
- github/actions/system-test: Avoid early failure in detecting br_netfilter kernel mod
- build(deps): bump github.com/charmbracelet/bubbletea from 1.3.4 to 1.3.5
- doc: fix intersphinx links (v2-edge)
- build(deps): bump github/codeql-action from 3.28.13 to 3.28.15
- service: Fix panic for invalid service types
- doc: Fix enterprise store link
- doc: update linkcheck_timeout from 30 to 45 seconds
- doc/how-to/snaps: the snap store proxy is now called the enterprise store proxy
- test/e2e: add script/Terraform recipe to test MicroCloud deployments
- doc: add ‘integrated’ project tag to integrated docs sets
- doc/index: use a direct links to MicroCloud forum
- doc/how-to/support: use a direct links to MicroCloud forum
- doc/how-to/contribute: use a direct links to MicroCloud forum
- CONTRIBUTING: use a direct links to MicroCloud forum
- cmd/tui: Change newline character when sending test input
- cmd/tui: Remove unused asker model
- cmd: Remove error/warning indentation
- cmd/tui: Add generic formatQuestion func
- cmd/tui: Replace bubbletea based questions with standard asker
- cmd/microcloud: Remove the newline and rely on default terminal wrapping
- cmd/tui: Wrap the selectable table title
- doc/how-to/snaps: Update offered tracks
- doc/how-to/update_upgrade: Add MicroCloud 1 EOL notice
- doc: Add EOL to custom wordlist
- doc/how-to/support: Add MicroCloud 1 EOL notice
- github: Require all GitHub actions to be pinned
- github: Use our own changes actions
- github/actions: Add check-changes action
- api/session: fix typo
- client/proxy: error out if UseAuthProxy() is provided no HMAC and TLS verification disabled
- doc: fix infinite loop for make run
- doc: hard-code discourse and related links titles
- doc: set ubuntu discourse as default
- build(deps): bump golang.org/x/sys from 0.31.0 to 0.32.0
- build(deps): bump actions/dependency-review-action from 4.5.0 to 4.6.0
- build(deps): bump tiobe/tics-github-action from 3.3.0 to 3.4.0
- go: Update deps
- make: Bump min Go version to 1.23.7
- build(deps): bump actions/cache from 4.2.2 to 4.2.3
- build(deps): bump actions/download-artifact from 4.1.9 to 4.2.1
- build(deps): bump actions/setup-go from 5.3.0 to 5.4.0
- build(deps): bump github/codeql-action from 3.28.11 to 3.28.12
- build(deps): bump actions/upload-artifact from 4.6.1 to 4.6.2
- golangci-lint: Remove unnecessary parts from config file
- service/microcloud: Fix linter error by removing redundant import (staticcheck)
- service/lxd: Fix linter error (staticcheck)
- cmd: Fix linter error in
cmd/tui/console.go
(staticcheck) - api: Fix linter error (staticcheck)
- golangci-lint: Add
staticcheck
exclusion forST1005
- cmd: Remove deprecated
structcheck
linter from inlinenolint
exclusions - Makefile: Add explicit version for
golangci-lint
- golangci-lint: Migrate
.golangci
tov2.0.0
format - go: Update dependencies
- Makefile: drop toolchain from go.mod
- Makefile: bump Go min to 1.23.3 (needed by LXD)
- build(deps): bump github/codeql-action from 3.28.10 to 3.28.11
- github: Copy dqlite deps instead of moving them
- github: Include dqlite libs in system test deps
- github: Use the install-builddeps action
- github: Add install-builddeps action
- github: Set the correct paths for the dqlite deps when running TICS
- doc: add brief docs README
- doc/how-to/contribute: improve guidelines
- doc: add CONTRIBUTING.md to base repo
- github: Use org level TICSAUTHTOKEN
- test/suites: Switch REUSE_EXISTING to yes/no instead of add/skip
- cmd/microcloud: Use y/n for adding existing clusters to MicroCloud
- cmd/microcloud: Update invocations of AskBoolWarn and AskStringWarn
- cmd/tui: Use the same format for warnings we use for errors
- doc/explanation/microcloud: replace include from README.md so links can be versioned
- github: Use github.workspace variable for GOCOVERDIR
- test/includes/microcloud: Hold all snaps to prevent unplanned refresh
- service: Untangle MicroOVN from client functions
- service: Untangle MicroCeph from client functions
- doc: add redirects for pages renamed to US english
- doc: move docs and README to US english
- doc/how-to/ovn_underlay: clarify that underlay interface does not need to be unused
- doc/reference: note that VLAN interfaces can be used
- doc/explanation/microcloud: move networking info to more appropriate pages
- cmd/microcloud: Use new formatting scheme for OVN underlay selection
- doc/explanation/networking: explain networking approach
- multicast: Populate the NetworkInfo with the right subnet
- Revert “github: Use path valid for both GitHub and Canonical runners”
- cmd/tui: Fix new revive errors
- cmd/microcloud: Fix new revive errors
- doc: increase linkcheck retries
- doc: increase linkcheck rate limit max timeout
- update README
- doc/how-to/update_upgrade: keep instances running during update/upgrade
- doc: add ‘scalable’ to custom wordlist
- doc/how-to/commands: Add link to new shutdown how-to
- doc/how-to/initialise: Add minimal OVN bits to preseed file
- doc: Add NAT to custom wordlist
- cmd/microcloud: Order the list of remaining services
- cmd/microcloud: Remove unnecessary map
- doc/how-to: add how-to on shutting down machines
- doc: update homepage content and add diagram
- test/suites: Delete unused instance in between checks
- test/main: Add daemon debug logging on cleanup
- test/main: Fix indentation
- build(deps): bump actions/cache from 4.2.1 to 4.2.2
- build(deps): bump actions/download-artifact from 4.1.8 to 4.1.9
- build(deps): bump github.com/charmbracelet/bubbletea from 1.3.3 to 1.3.4
- doc: use PATH_PREFIX in docs Makefile for RTD build
- doc/explanation/microcloud: replace include from README.md so links can be versioned
- build(deps): bump github/codeql-action from 3.28.9 to 3.28.10
- build(deps): bump canonical/has-signed-canonical-cla from 2.0.0 to 2.1.0
- build(deps): bump actions/cache from 4.2.0 to 4.2.1
- build(deps): bump actions/upload-artifact from 4.6.0 to 4.6.1
- doc: use v2-edge paths for integrated docs
- build(deps): bump github.com/spf13/cobra from 1.8.1 to 1.9.1
- build(deps): bump github.com/charmbracelet/bubbletea from 1.3.0 to 1.3.3
- build(deps): bump golang.org/x/net from 0.34.0 to 0.35.0
- build(deps): bump redhat-plumbers-in-action/differential-shellcheck
- build(deps): bump actions/upload-artifact from 4.4.3 to 4.6.0
- build(deps): bump github/codeql-action from 3.27.1 to 3.28.9
- build(deps): bump canonical/has-signed-canonical-cla from 1.2.3 to 2.0.0
- build(deps): bump golang.org/x/sync from 0.10.0 to 0.11.0
- build(deps): bump actions/setup-go from 5.1.0 to 5.3.0
- build(deps): bump actions/dependency-review-action from 4.4.0 to 4.5.0
- build(deps): bump tiobe/tics-github-action from 3.2.1 to 3.3.0
- build(deps): bump actions/cache from 4.1.2 to 4.2.0
- build(deps): bump redhat-plumbers-in-action/differential-shellcheck
- build(deps): bump golang.org/x/mod from 0.22.0 to 0.23.0
- build(deps): bump golang.org/x/sys from 0.29.0 to 0.30.0
- build(deps): bump github.com/charmbracelet/bubbletea from 1.2.4 to 1.3.0
- build(deps): bump golang.org/x/net from 0.33.0 to 0.34.0
- github: pin actions/setup-go action
- github: pin tiobe/tics-github-action@v3 action
- github: pin actions/upload-artifact@v4 action
- github: pin actions/checkout@v4
- go: Update charmbracelet/x/ansi
- doc: clarify microcloud behavior when snaps are not in sync
- github: Enable Tiobe TICS job
- test: Check that during a aborted setup, the joiners are stopped as well
- cmd/microcloud: Add reverting logic while growing a MicroCloud to close any joiner sessions if there’s an interruption in the initiator
- cmd/microcloud: Trigger StopSession API calls to the joiner members if the initiator does not finish properly after initiating a session
- service/microcloud: Add
RemoteClient
method for the cloud service - client: Add ‘StopSession’ method
- api: Add the ‘sessionStopPut’ handler to stop a joiner session
- api/types: Add ‘SessionStopPut’ type
- test/includes/microcloud: Check the user.microcloud field only for versions > 2.1.0
- doc: microcloud tutorial; update get_started.md
- test/suites/upgrade: Use the respective service’s candidate channels
- github: align action name with LXD’s
- github: use LXD’s actions/reclaim-memory
- test/suites: Use 1/candidate instead of 1/stable for upgrade tests
- github: Let trivy scan 1/stable
- service: Exclude disks of type cdrom
- service: Restructure disk check to allow additional conditions
- github/actions/system-test: Add new action for running a system-test
- github: Restructure matrix system tests
- github: Use path valid for both GitHub and Canonical runners
- api/session: Add timeout waiting for an active join intent consumer
- api/session: Start the multicast server before sending the passphrase
- github/workflows/tests: Install missing net-tools
- github: Remove noop LXD refresh
- test/suites/basic: Use wrapper when bootstrapping MicroCeph
- cmd/microcloud: Allow multiple spaces between passphrase elements
- .github/workflows: Scan 1/edge temporarily
- github: Temporary disable TICS job
- github: modified ‘components’ in .jira_sync_config.yaml for the synchronization with Jira
- cmd/tui: Use non deprecated constants for table movements
- cmd/tui: Use CursorBackward instead of CursorLeft
- doc/how-to: Add doc explanation of filter restriction
- test/suites: Add tests for filter restrictions
- cmd/microcloud: Split up resource collection for zfs/ceph
- cmd/microcloud: Disallow filtering disks if all systems have specified disks
- doc/how-to/install: clarify network requirements and add ovn underlay network info
- doc/how-to/install: clarify that general requirements apply to test and production
- test/main: report about memory and disk usage when failing
- github: save cached images into the (compressed) zpool
- test/suites/instances: allow cloud-init to install ping before checking connectivity
- test/suites/instances: consistently install ping via cloud-init
- service/session: use SplitN() instead of unbounded Split()
- cmd/microcloud/ask: improve passphrase handling by trimming spaces
- doc/tutorial: Used fixed IPs for the micro* VMs
- add triage workflow using labeler action
- cmd/tui: Move filter hint
- doc/tutorial: Mention that the table will update
- cmd/tui: Skip retries if tui context is canceled
- cmd/microcloud: Update remaining CLI tables
- test/suites: Leverage test wordlist in system tests
- test: Update system test syntax
- service: Use predictable wordlist with test tag
- Makefile: Add build-test to Makefile
- cmd/microcloud: Use tui package to handle questions
- service: Colour warnings in service package
- cmd/microcloud: Remove old table implementation
- cmd/microcloud: Enable test console with build tag
- cmd/tui: Add test console support for tui inputs
- cmd/tui: Add bubbletea asker handler
- service/lxd_config: guard against out of bound access
- test/includes/microcloud: simplify how we wait on snapd to be seeded
- test/suites/instances: get GW IPs only once
- test/suites/instances: slower and lighter polling
- test/suites/preseed: Add check with MicroCeph across a subset of cluster members
- cmd/microcloud/preseed: Always create remote pools across all members
- cmd/microcloud: Do not iterate over a map for the questionnaire
- github: Scan
1/stable
snap - github: Let dependabot watch v2-edge
- doc/howto/commands: fix command format
- service/lxd: Add network interface filter tests
- service/lxd: Apply OVN specific filters only for uplink networks
- service/lxd: Limit defaultNetworkInterfacesFilter to defaults only
- Revert “github: stop running weekly tests”
- github: stop running weekly tests
- test/suites: Use testing binary in upgrade tests
- cmd/microcloudd: Update user.microcloud on MicroCloud restart
- test/includes: Set user.microcloud when bootstrapping LXD
- doc/tutorial: misc improvements and fixes
- doc/how-to/initialise: add installation prerequisite and update FDE prep info
- doc/howto/initialise: replace ‘node’ with ‘cluster member’ and update minimum member requirements
- github: Fix step name
- github: Avoid using the same key for saving cache
- doc/tutorial: fix inconsistent VM names
- doc/reference: update requirements
- github/security: Let trivy scan the 2/stable snap channel
- test/includes/microcloud: only pre-fetch VM images if needed
- test/includes/microcloud: use shell comparison
- github: pin tiobe/tics-github-action@v3 action
- github: pin redhat-plumbers-in-action/differential-shellcheck@v5 action
- github: pin dorny/paths-filter@v3 action
- github: pin github/codeql-action/upload-sarif@v3 action
- github: pin github/codeql-action/{init,autobuild,analyze}@v3 actions
- github: pin actions/download-artifact@v4 action
- github: pin actions/upload-artifact@v4 action
- github: pin actions/dependency-review-action@v4 action
- github: TIOBE doesn’t need full checkout
- github: switch to using ZFS backend in host
- github: use reclaim-disk-space action from LXD
- github: use disable-docker action from LXD
- github: use tune-disk-performance action from LXD
- github: only strip binaries if no coverage info is to be collected
- github: remove redundant Go version param
- github: Add tiobe tics job for system and unit test coverage
- build(deps): bump golang.org/x/net from 0.32.0 to 0.33.0
- github: make use of LXD’s actions/lp-snap-build in build job
- github: Use correct group name when pushing to launchpad
- build(deps): bump actions/cache from 4.1.1 to 4.2.0
- build(deps): bump github.com/canonical/microcluster/v2
- build(deps): bump golang.org/x/net from 0.31.0 to 0.32.0
- test/suites/intances: Consistently use 2GiB for root vol
- test/includes: Increase test OSD sizes to 10GiB
- test/suites: Add instance move connectivity test
- test/suites: Add disaggregated connectivity tests
- test/suites: Split instance tests to their own file
- github/workflows/test: Build dqlite dep manually
- make: Add deps stop target for dqlite
- github: switch to standard (free) runners
- service: Set corret name of instances_migration_stateful extension