NixOS / nixops

NixOps is a tool for deploying to NixOS machines in a network or cloud.
https://nixos.org/nixops
GNU Lesser General Public License v3.0
1.84k stars 363 forks source link

Support "rolling restarts" and similar features #224

Open copumpkin opened 10 years ago

copumpkin commented 10 years ago

Sometimes (rarely) I want a limited amount of control over the sequencing of operations NixOps performs. I might have a live database server that I want to make mostly declarative changes to, in a way that prevents all servers from being down at the same time. The obvious way to do this is to revert to imperative instructions, but I was thinking perhaps we could provide some way to specify declarative constraints of the sort like "only affect one server in this collection at a time". I haven't entirely fleshed out the idea, but it seems like a nice-to-have feature if someone can think of a way to make it work.

rbvermaa commented 10 years ago

Sounds interesting indeed, although I don't yet see a nice way of declaring this. Please posts your ideas once they are fleshed out :)

copumpkin commented 10 years ago

Yeah, I have almost no experience with nixops yet, but in the abstract it seems like a general notion "concurrency level" within a certain scope seems like it would cover many of these cases. Will definitely post more once I gain more experience with the specifics :smile:

spinus commented 8 years ago

https://github.com/NixOS/nixops/issues/377 - looks like a clone of this issue

domenkozar commented 6 years ago

Note that this is now somewhat supported with https://github.com/NixOS/nixops/commit/f3f91c3f544dd1faaad1b724d42bc99dbb5aa3bb

robinp commented 4 years ago

An important part of a rolling restart feature is defining some health check condition and only progressing once health check succeeds.