From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.migadu.com ([2001:41d0:306:2d92::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms9.migadu.com with LMTPS id GFdLLCrgAWUFIQEAauVa8A:P1 (envelope-from ) for ; Wed, 13 Sep 2023 18:15:38 +0200 Received: from aspmx1.migadu.com ([2001:41d0:306:2d92::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id GFdLLCrgAWUFIQEAauVa8A (envelope-from ) for ; Wed, 13 Sep 2023 18:15:38 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 8A64D4606F for ; Wed, 13 Sep 2023 18:15:38 +0200 (CEST) Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=worcester-edu.20230601.gappssmtp.com header.s=20230601 header.b=YnUFe4C1; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org"; dmarc=none ARC-Seal: i=1; s=key1; d=yhetil.org; t=1694621738; a=rsa-sha256; cv=none; b=PEGJrNzECqAO0O8w/H7OHRBa4oCHrZCAUnQuGmqEm9+PlmM+AljJcsAbQyvTdNKW0Tftpm h23mYQ4+tXXGSOZyO7b/LZWr02GJZo3faFrWVEMacqgH3gPX+2FKk5Xk7yWlJG6JkWQEIC u9xICXLUGOCd7LFR7uZaggDVyvsx651/ivk1fi/3qkhmVSqNGq8gxtM988v2wqh5gKIuUm DqLLDn9WuxJwzIATQNuWIL93og3a2Ra5FATba+lJ1Q4Ho5Ily+6CsP1bU8IBNQ5NCxi3j9 jFD0rCGT/W+UsnCb/Aki5jSFPqs2mWk72OGKLZjpy9gjHLzLgQtKYlsYWZNFfA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1694621738; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=UsW46xf+D0nyBQBqYpvBctlDds4FZPMw2ID9AdVIJO0=; b=F68hgNGOG5iAiF7oBalxippOlpeTZD3lRHx0F/fxRDM9pXIMTOddqsmK4VsjhdHoJX73Vh YRn6DXymqvdyks/F1vLsxV+3MMx2bLZ7dDSEwzbBOSbBV44gC8eSb0RTAnaMQALTCyAfWf hhUXHmc44KixAGdGWDQ/jMMaQkvNuzNASr/jFBsYnevyEKr35AZAJf6pqg5/wMe7v37Vee GQNekIpzeq9dPqYnWdPbg2AS0tMQdyQgfFxfFrGGfs1XJkXJQjiOE2ltJ9BZX09SXZcUO4 Ldu/MM1tvklHAfb4SNqVklkI5JuFMqgY+bbzzVmmxR7Bxzwrf0QTIijGip0KDw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=worcester-edu.20230601.gappssmtp.com header.s=20230601 header.b=YnUFe4C1; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org"; dmarc=none Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qgSWH-0001zK-1x; Wed, 13 Sep 2023 12:15:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qgSWC-0001yi-9P for guix-devel@gnu.org; Wed, 13 Sep 2023 12:15:09 -0400 Received: from mail-qt1-x829.google.com ([2607:f8b0:4864:20::829]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qgSW8-0001Ff-7r for guix-devel@gnu.org; Wed, 13 Sep 2023 12:15:07 -0400 Received: by mail-qt1-x829.google.com with SMTP id d75a77b69052e-41214998fc2so43629721cf.0 for ; Wed, 13 Sep 2023 09:15:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=worcester-edu.20230601.gappssmtp.com; s=20230601; t=1694621703; x=1695226503; darn=gnu.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=UsW46xf+D0nyBQBqYpvBctlDds4FZPMw2ID9AdVIJO0=; b=YnUFe4C1gWbaoAPU1p9RP4z0Ks9asIkhtDcgtfVS0juS+Rru7Ve7i84CqUVylXMYE2 3L5PbyWAQCnNc/cGYeyT2aUSf5SBg3MsAx80GIdYJT47tbzBCjYMIbzV/MGLtpoG3nmb dx1d0r9v74d7RRW+LixPnL9tqDfOXVrVT/TjRaPJBO2WFEL926F1Ogx97H6yyldo9yuL 7FdhwqSBpo1silBfeiSDabz8W3yTj7/QCJ3B59G/SAh3AG1A73ectsJ8bE+93mDJTw5V viGAlYUzia1PyWajD2zc7jfOOGbfBGXoliXQaVy7zgTKywUlHBrVzYJeFXl/DTpLbbSE ajNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694621703; x=1695226503; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=UsW46xf+D0nyBQBqYpvBctlDds4FZPMw2ID9AdVIJO0=; b=jutUIng0CG1GHmvjr4cKNcMU6QspfvslPdQP+fO8pfJ/OuLaMSyqU+nlN+WQWoLa25 dkfxoHRKru2cNONlt4s5l6bCJXt1caVuGJMMKJ6EizIENJ5D7K/AFuNDtBcxTaQF54cP 7ZN+qu9h/KSVV+VB1vUZBENFQXUpkqBE/VI4JpWzmzY+DlFwhRviNjAdVMPcCbY4elsr n2/i4BXN6jnFZRRA8RdHgmAUXIux00Vlrv8Wg7qTNSuvZl/53wM7lmW6gKSJXx7z3FqD SyjWG+JucW9c4FNSIakUNwz0qV7P5R9uyvRMTclDaarvR7lWGQXl6cxpiAPhJ+baTbR0 iVsg== X-Gm-Message-State: AOJu0Yxfdvvh6kYymB9EIyb1fDCJWjM+LhpWUk/YS8fik8ubRI8B156P O5CTmo9xCM76prCn0I7vVOzw7w3NIkn98275CldlTQ== X-Google-Smtp-Source: AGHT+IEcKy50X+bs0oxfNsId07uDeo5ZfWPalMtKPN8ALO7K1j5iFpzgMyQ8mr+TcFPWf8HYQ+6P4wOKutzO0jNAGbM= X-Received: by 2002:ac8:5cc4:0:b0:412:2ad4:da05 with SMTP id s4-20020ac85cc4000000b004122ad4da05mr2851146qta.38.1694621702955; Wed, 13 Sep 2023 09:15:02 -0700 (PDT) MIME-Version: 1.0 References: <87y1ha1lap.fsf@elephly.net> In-Reply-To: From: "Thompson, David" Date: Wed, 13 Sep 2023 12:14:52 -0400 Message-ID: Subject: Re: Swineherd: Guix System container manager To: Katherine Cox-Buday Cc: Ricardo Wurmus , guix-devel Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=2607:f8b0:4864:20::829; envelope-from=dthompson2@worcester.edu; helo=mail-qt1-x829.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: guix-devel-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-Migadu-Spam-Score: -8.79 X-Spam-Score: -8.79 X-Migadu-Queue-Id: 8A64D4606F X-Migadu-Scanner: mx2.migadu.com X-TUID: faqPOUnvaZpo Hey, nice job Ricardo! This looks awesome! On Wed, Sep 13, 2023 at 11:29=E2=80=AFAM Katherine Cox-Buday wrote: > > On 9/13/23 3:06 AM, Ricardo Wurmus wrote: > > Hi there, > > > > you know the Shepherd: it is an elegant service manager looking after a > > herd of daemons. Since it can be extended with Guile, I decided to do > > just that to add an extra skill to the Shepherd, turning it into the > > Swineherd. > > > > The Swineherd is a manager of Guix System containers. It is implemente= d > > as a Shepherd service called =E2=80=9Cswineherd=E2=80=9D that lets you = manage Guix > > System containers as Shepherd services. These system container service= s > > implement a few common features to bring up bridge networking, execute > > commands inside the containers, peek at files, and get simple usage > > stats. > > > > Swineherd also provides an optional HTTP API server to launch, manage, > > and destroy containers through an HTTP client. This makes the Swineher= d > > useful for building web applications that launch Guix System containers > > on demand. It comes with an Info manual describing the assumptions, th= e > > required setup, as well as the implemented commands and the HTTP API. > > > > The Swineherd was designed to be used with Shepherd on foreign distros, > > so it does not assume to be running on top of Guix System (for better o= r > > worse). > > > > You can find the code here: > > > > https://github.com/BIMSBbioinfo/swineherd > > > > Of course the Swineherd is also available as a Guix package called > > =E2=80=9Cswineherd=E2=80=9D. > > > > If this tickles your interests I=E2=80=99d be very happy to hear your c= omments > > and incorporate patches to extend it beyond my original requirements. > > This is really cool stuff! I'd love to see Guix continue to eat the > dev-ops space, which, in my opinion, loves to stack complexity on top of > complexity. +1 to that. I did devops professionally for about 6 years and it really is a mess. > Can you share any ways you're currently using this? > > Any plans/interest in hooking it into `guix deploy`? Hey now that's a cool idea! Speaking of devops, I believe with swineherd it is now possible to implement something I've wanted for many years: the Guix equivalent of docker-compose. It would be like an enhanced guix shell that also starts up services needed for development like PostgreSQL or Redis or whatever. - Dave