So Canonical has now gone ahead and relicensed #LXD to AGPLv3 (kinda) and added a CLA!
https://stgraber.org/2023/12/12/lxd-now-re-licensed-and-under-a-cla/
Disclaimer: IANAL.
The only thing in your hand "against" Canonical right now is that they're not fully complying with the Apache license as it requires prominent notices when files are changed.
You licensed your work under the Apache license. You therefore gave anyone (including Canonical) the irrevocable right to use it in code bases with other licenses (even proprietary ones!) as long as the original terms are still followed for that code.
That's why #copyleft licenses exist.
@Atemu I have no problem with my code being used in other projects regardless of their license, that's the whole reason why we picked the Apache2 for the project.
However as you pointed out, they can't actually re-license the code, those bits will forever remain Apache2 and they need to include the license and have proper notices in the code.
For new contributions, if they want to keep taking from Incus, they will need to bypass their own requirements as it's currently AGPL-only and CLA-only.