* operator: introduce support to IPAM assigned IP address
Signed-off-by: Francesco Giudici <francesco.giudici@suse.com>
* Add nmstate support
Signed-off-by: Andrea Mazzotti <andrea.mazzotti@suse.com>
---------
Signed-off-by: Francesco Giudici <francesco.giudici@suse.com>
Signed-off-by: Andrea Mazzotti <andrea.mazzotti@suse.com>
Co-authored-by: Francesco Giudici <francesco.giudici@suse.com>
* Update system-upgrade-controller API
Signed-off-by: Andrea Mazzotti <andrea.mazzotti@suse.com>
* Update Fleet API
Signed-off-by: Andrea Mazzotti <andrea.mazzotti@suse.com>
* Sanitize dependencies
Signed-off-by: Andrea Mazzotti <andrea.mazzotti@suse.com>
---------
Signed-off-by: Andrea Mazzotti <andrea.mazzotti@suse.com>
This commit moves the synchronization logic to allways happen in a Pod,
regardless being a Custom or JSON syncer. This allows having a simpler Pod
lifecycle management as part of the channel controller logic.
In addition, syncer pod logs are read on succeeded state instate of
running state to simplify Pod lifecycle management.
As a result channel updates trigger a new channel synchronization
without having to wait for the next scheduled sync.
Signed-off-by: David Cassany <dcassany@suse.com>
When hosts are registered with the --no-toolkit option no OS management
is possible, so we set a new os.unmanaged annotation to reflect this
and skip any attempt to reset if this is found.
This commit checks on each reconcile loop if the service
account token secret is missing despite being on ready
state.
In addition it also adds optimistic locking for patch calls. The
motivations is to prevent concurrent controllers to modify
outdated data.
Signed-off-by: David Cassany <dcassany@suse.com>
Machine inventory selectors are all competing to adopt
a machine inventory resource. In order to avoid a machine
inventory being adopted by more than one selector or viceversa
this commit adds a validation process and tracks its status
in a new adoption condition for the inventory resource.
The validation process is simple: on one side the machine
inventory checks its owner includes the appropriate reference;
on the other side the selector checks the reference in status
points to a machine inventory owned by itself.
If an inconsistency is found during the validation the adoption
process restarts. The bootstrap plan is not created until the
adoption process is validated.
Signed-off-by: David Cassany <dcassany@suse.com>
We have removed finalizers from MachineInventories and MachineRegistrations.
Still if we upgrade from older operator versions, we may inherit old resources with the finalizers set there. In this case, when the "old" resources get deleted, no one will remove the finalizers preventing their actual deletion.
Ensure the finalizers are cleaned up if there when the resource is deleted.
Fixes https://github.com/rancher/elemental-operator/issues/391
Signed-off-by: Francesco Giudici <francesco.giudici@suse.com>
* Turn MachineInventoryRef into LocalObjectReference
Make the MachineInventorySelector reference to an owned
MachineInventory a LocalObjectReference, since a resource cannot
own another resource in a different namespace.
Signed-off-by: Fredrik Lönnegren <fredrik.lonnegren@suse.com>
* Fix typo
Signed-off-by: Fredrik Lönnegren <fredrik.lonnegren@suse.com>
---------
Signed-off-by: Fredrik Lönnegren <fredrik.lonnegren@suse.com>
* Update vendor
* Run generation tasks
* Minor fixes in Makefile
* Remove old code
* Add remaning controllers
* Minor e2e tests improvements
* Switch osversionchannel syncer to controll runtime
* Minor fixes in controllers
* Fix unit tests