From: Katherine Cox-Buday <cox.katherine.e@gmail.com>
To: Jack Hill <jackhill@jackhill.us>
Cc: guix-devel@gnu.org
Subject: Re: Sniping "guix deploy"
Date: Fri, 10 Sep 2021 10:36:23 -0500 [thread overview]
Message-ID: <87mtok4f48.fsf@gmail.com> (raw)
In-Reply-To: <alpine.DEB.2.21.2109100042050.2109@marsh.hcoop.net> (Jack Hill's message of "Fri, 10 Sep 2021 01:07:47 -0400 (EDT)")
Jack Hill <jackhill@jackhill.us> writes:
> I know that CoreOS at one point took cluster-wide knowledge into
> account when performing upgrades (so as not to take down all replicas
> at once for instance). It and similar projects are probably too far
> afield to take implementation ideas from, but some of the high level
> concepts might be worth taking inspiration from.
Yeah, good point. There are probably a lot of other primitives here
worth implementing. I incorrectly scoped my statement to the
threat-model given.
> Another higher level mechanism that we might need for deploy is some
> way to do IO when building operating system definitions. Something
> along the lines of how "facts" are handled in the various
> configuration management tools. I see this as being useful for doing
> things like reconfiguring a system, but leaving the disk partitioning
> how it is now without having to to declare what the partitions are
> ahead of time.* In Scheme, there is nothing stopping us from doing IO
> at arbitrary points in an operating system definition, but as this
> takes away from the declarative nature of the configuration, having
> shared mechanisms for doing this in a clear, maintainable, and
> principled way could be very useful.
Maybe a blanket #t could mean "leave this alone" when specified for an
operating-system field?
> Late night brainstorming is fun.
That it is! And though this discussion is fun, I think it's very
premature. There are a handful of bugs[1] open for deploy. One is
critical[2], and I just filed one[3] because deploy can share
state/provinance between all machines deployed together. And I'm not
sure if it has someone actively working to make it better?
As always I find myself wishing I had more time to contribute.
> * I suppose file systems are the most obvious place where ugly state
> like this can sneak its way in since they are essential giant
> buckets to hold state, which is probably why this example has been
> running around in my head. While it might be nice to think about
> eliminating all state that doesn't seem workable, but maybe we come up
> with some way to represent the state declaratively à la Haskell's IO
> and State monads.
I am very fond of "trapdoors" in systems which are constrained/rigid by
design. It gives you all of the benefit of the constraints, but leaves a
way for users to work around bugs, or play with things until they get it
right and can bring it back into the fold.
[1] - https://issues.guix.gnu.org/search?query=%22guix+deploy%22+is%3Aopen
[2] - https://issues.guix.gnu.org/46756
[3] - https://issues.guix.gnu.org/50468
--
Katherine
prev parent reply other threads:[~2021-09-10 15:36 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-09 23:45 Sniping "guix deploy" Julien Lepiller
2021-09-10 4:06 ` Katherine Cox-Buday
2021-09-10 5:07 ` Jack Hill
2021-09-10 15:36 ` Katherine Cox-Buday [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87mtok4f48.fsf@gmail.com \
--to=cox.katherine.e@gmail.com \
--cc=guix-devel@gnu.org \
--cc=jackhill@jackhill.us \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).