siderolabs / omni

SaaS-simple deployment of Kubernetes - on your own hardware.
Other
399 stars 23 forks source link

[feature] Enable automatic updates #228

Open devantler opened 1 month ago

devantler commented 1 month ago

Problem Description

It would be cool if Omni was able to automatically update:

Solution

No response

Alternative Solutions

No response

Notes

No response

Unix4ever commented 1 month ago

That could be cool, but I wouldn't have peace of mind knowing that my cluster can do unattended upgrades :sweat_smile: If that feature gets enough demand we can think about doing that.

devantler commented 1 month ago

I totally understand that! I am thinking it should be opt-in, and that the functionality around upgrading kubernetes version and talos version should support rollbacks in either case before this is implemented. That way the cluster could upgrade, and in case of issues, it could rollback and require an admin to manually do the upgrade :-)

rothgar commented 1 month ago

I was thinking about this too. Here are some of my thoughts.

We may need to build release channels and notifications before we can do the rest of this, but maybe limiting upgrades to patch versions and adding maintenance windows would be good enough.

kenlasko commented 1 month ago

Before moving to Omni/Talos, I used the Rancher System Upgrade Controller to automatically upgrade my K3S cluster. Maybe instead of building your own thing from scratch, you could do whatever is required to support this?

willglynn commented 1 month ago

I have external-to-Omni organizational processes which I need to accommodate.

I'd love to use this feature with my external processes modeled as an explicit approval step. It'd be even better if pending upgrades were queryable (and approvable!) through an API. Approval could perhaps be modeled as a preflight check alongside cluster health and such; it's just a box that needs to be ticked before making changes.

Unattended upgrades could even be phrased in terms of an approval mechanism: "automatically approve stable releases", "automatically approve releases after 7 days", "automatically approve point releases", etc.

I think there's a lot of utility gained by reifying the operator's approval to apply an update, independent of whether that decision is manual (external) or the automatic result of applying some policy.