Branch 25.03 Backports#75
Merged
matperin merged 17 commits intocanonical:branch-25.03from Apr 2, 2026
Merged
Conversation
It would be nice to notice errors that happen due to our dependencies (eg maturin, MicroOVN snap, concierge) outside of pull requests, so ive added on hooks similar to what we have with MicroOVN. Signed-off-by: MJ Ponsonby <mj.ponsonby@canonical.com> (cherry picked from commit 6d830fb)
Currently switching to dataplane mode has two problems: - updating the list of central_ips on the ovn_central_k8s side of the cluster expanding, as central is already disabled this logic is not hit. - if central is disabled and the context times out for microovn disable central, the command fails and ovn.central-ips is not set, which then means in turn next time this function runs microovn disable central will fail with Central service already disabled and return so _set_central_ips is never called in the lifetime of the charm, which is the cause of the flaky ovn_k8s integration test. I also aim to change the microovn snap to avoid the timeout issue on disabling a service to also help this issue. Signed-off-by: MJ Ponsonby <mj.ponsonby@canonical.com> (cherry picked from commit 706d4d0)
Seemingly 'Dummy' is being flagged in our CI for not being inclusive so I have just reworded this. Signed-off-by: MJ Ponsonby <mj.ponsonby@canonical.com> (cherry picked from commit cd2b62c)
This prevents maturin from trying to download cargo (which fails in the charmcraft build container on building puccinialin) and instead uses a well defined rust toolchain version. Follows examples from the data platform team[0]. 0: https://github.com/canonical/opensearch-operator/blob/2ce3ea4186d193b7bef0ba5baa06d900168b8d67/charmcraft.yaml#L77 Signed-off-by: Guillaume Boutry <guillaume.boutry@canonical.com> (cherry picked from commit 5fd5d21)
Ensure setuptools-scm cyclic dependencies affected versions are excluded from the build dependencies. Related-Bug: pypa/setuptools-scm#1302 Signed-off-by: Guillaume Boutry <guillaume.boutry@canonical.com> (cherry picked from commit 3ea2ad9)
If the openvswitch-switch service is running and theres a conf.db file where its expected to be: shutdown that version of OVS, and take its database which we then use as the starting point for the microovn switch database. Signed-off-by: MJ Ponsonby <mj.ponsonby@canonical.com> (cherry picked from commit 62bebc7)
There has been an update by a very talented developer at the token distributor charm, she has added prejoin and prebootstrap hooks, which give us functionality to make our implementation of OVS DB migration slightly cleaner. Signed-off-by: MJ Ponsonby <mj.ponsonby@canonical.com> (cherry picked from commit 0648bc8)
Rework k8s integration test to have smaller steps and fewer units to conserve resources. Signed-off-by: MJ Ponsonby <mj.ponsonby@canonical.com> (cherry picked from commit cd9c387)
Flags microovn to bypass the OVS checks and allow the user to install microovn anyway. Signed-off-by: MJ Ponsonby <mj.ponsonby@canonical.com> (cherry picked from commit ca14fe5)
Looking at the openvswitch migration strategy currently being used by field, I felt ours could use some expanding. Signed-off-by: MJ Ponsonby <mj.ponsonby@canonical.com> (cherry picked from commit 1fb515b)
Signed-off-by: MJ Ponsonby <mj.ponsonby@canonical.com> (cherry picked from commit 330e495)
Signed-off-by: MJ Ponsonby <mj.ponsonby@canonical.com> (cherry picked from commit 8b062ca)
- More logs on fail - Longer timeouts - Fewer units Signed-off-by: MJ Ponsonby <mj.ponsonby@canonical.com> (cherry picked from commit 3f43041)
3063a79 to
b8058f3
Compare
…pting second bootstrap In the token distributor lib, check if the cluster was already bootstrapped (e.g. from a previous hook execution that was interrupted before stored state was committed). If so, recover by updating stored state rather than attempting a second bootstrap, which would fail. Signed-off-by: Matteo Perin <matteo.perin@canonical.com> (cherry picked from commit 25c3e44)
…tributor When a hook is interrupted after microovn cluster join succeeds but before _stored.in_cluster is committed, the retried hook tries to join again and permanently fails with "Joining cluster failed". Add a fallback check on join failure: if 'cluster list' succeeds, the node already joined in a prior attempt, so recover stored state instead of returning an error. Signed-off-by: Matteo Perin <matteo.perin@canonical.com> (cherry picked from commit 4fb34bd)
The juju exec calls are not resilient to controller connection drops: - Added CLIError to exec_with_retry retry types and switched raw exec calls to use exec_with_retry. - Replaced bare juju_lxd.wait() calls with wait_with_retry() to handle transient CLIError from Juju controller connection drops during juju status polling. Signed-off-by: Matteo Perin <matteo.perin@canonical.com> (cherry picked from commit 4d3ea93)
The test asserts on microovn/1 and expects 2 Chassis entries, but only deployed a single unit. Add add_unit() after deploy so that unit microovn/1 exists when exec is called on it. Signed-off-by: Matteo Perin <matteo.perin@canonical.com> (cherry picked from commit 84dd78d)
b8058f3 to
0f5b1ec
Compare
matperin
approved these changes
Apr 2, 2026
Contributor
matperin
left a comment
There was a problem hiding this comment.
LGTM. Thanks for the backports!
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.