mirror of
https://github.com/siderolabs/omni.git
synced 2026-05-04 14:21:36 +02:00
The schematic comparison logic had an edge case: if a machine predates the image factory, it is installed via a `ghcr.io` installer image (or a custom one). Those machines do not have the schematic meta extension on them, and Omni creates a synthetic schematic ID and properties for those. These properties do not have the "actual" kernel args of the machine, but rather, Omni sets them as what it thinks they should be (the "correct" siderolink args from the Omni perspective). Later, if Omni gets its siderolink API advertised URL get updated, it wrongly detects those synthetic kernel args to be the "new ones (with the new URL)", hence, the desired vs actual schematic comparison returns a mismatch. And Omni does an unnecessary upgrade to that machine. Fix this by using the "current (non-protected) args of the machine" as the synthetic args in such cases. Those "current" args will be synthetic themselves (since we cannot read them from the machine, as it does not have schematic info on it), but, it will prevent changes when the advertised URL changes. Additionally, we have two checks to detect a schematic mismatch in the `ClusterMachineConfigStatus` controller - make them check the mismatch in the same way, to be more consistent. Unrelated to this bug, also fix the `SchematicReady` check (introduced in 1.5) to treat invalid schematics as valid, as otherwise we cannot create clusters from non-factory images. Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com> (cherry picked from commit 0906bcc23c5d2e56b52fe4c3c7826afbea73dada) Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
Omni API
Omni client code and gRPC API libraries.
Omni SaaS deployment of Kubernetes. Omni is supported by the people at Sidero Labs. This repository contains client code and gRPC API definitions used to access Omni SaaS.
Documentation
For instructions on using Omni, see the Documentation.
Community
- Slack: Join our slack channel. Request access via inviter.co.
- Support: Questions, bugs, feature requests GitHub Discussions
- Forum: community
- Twitter: @SideroLabs
- Email: info@SideroLabs.com
Contributing
Contributions are welcomed and appreciated! See Contributing for our guidelines.
License
Some software we distribute is under the General Public License family of licenses or other licenses that require we provide you with the source code. If you would like a copy of the source code for this software, please contact us via email: info at SideroLabs.com.