From debbugs-submit-bounces@debbugs.gnu.org Sun Nov 17 03:05:30 2024 Received: (at submit) by debbugs.gnu.org; 17 Nov 2024 08:05:30 +0000 Received: from localhost ([127.0.0.1]:55815 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tCaHh-0004AY-2A for submit@debbugs.gnu.org; Sun, 17 Nov 2024 03:05:30 -0500 Received: from lists.gnu.org ([209.51.188.17]:40862) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tCYjt-0007p9-CV for submit@debbugs.gnu.org; Sun, 17 Nov 2024 01:26:30 -0500 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 1tCYjq-0003LO-G1 for guix-patches@gnu.org; Sun, 17 Nov 2024 01:26:28 -0500 Received: from mail-4022.proton.ch ([185.70.40.22]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tCYjm-0007yM-Re for guix-patches@gnu.org; Sun, 17 Nov 2024 01:26:25 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=infiniteadaptability.org; s=protonmail3; t=1731824772; x=1732083972; bh=20HvoMqWlqwl72T5sf6bLaRwv4RGdbUNgZh0nkFlgWk=; h=Date:To:From:Cc:Subject:Message-ID:Feedback-ID:From:To:Cc:Date: Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector: List-Unsubscribe:List-Unsubscribe-Post; b=Y/Tx8VwFamZPx0osB5EfNqUbqN3AnmAQnhmYTgmZly6F9jA0CD2KZ+BiINWDqZVBu UNj+LsZcMm+VT5+dDULX+M5NG80sAEHho73WyADrz58hIH6UIL2pS5yz/DGkh7OHqS gKl317XzW7am0R+zQrfbgCYp5P5LBVyT3yBubBgJ0qSc16FpoorKprx+NnyXzzIzjr pnTDMSRRei8Pdky15d059AKAaURc2diPSBtrlnXjOHcVCTCe+LoQsRKm2fvX+S+nr6 v1q3PFo3M5Fmdv/y4AgjLVb4LxuN1yeQKEcPg5nHhRe7l01VXFfKUiS9to2QnuEg/V 4Q1nk5IaqlzsQ== Date: Sun, 17 Nov 2024 06:26:05 +0000 To: guix-patches@gnu.org From: Alexander Joss Subject: [PATCH] services: add cloud-init service Message-ID: Feedback-ID: 41959981:user:proton X-Pm-Message-ID: 2e02c1fe6ad664ec07d71d843f994c5c8555458c MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=185.70.40.22; envelope-from=alex@infiniteadaptability.org; helo=mail-4022.proton.ch X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Sun, 17 Nov 2024 03:05:27 -0500 Cc: Alexander Joss X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) * gnu/services/cloud-init.scm: add cloud-init service * gnu/system/examples: add cloud-init-image.tmpl Change-Id: I28fe295c1dbbab7ea7df65f6b764c7d795e58d77 --- gnu/services/cloud-init.scm | 137 ++++++++++++++++++++++ gnu/system/examples/cloud-init-image.tmpl | 63 ++++++++++ 2 files changed, 200 insertions(+) create mode 100644 gnu/services/cloud-init.scm create mode 100644 gnu/system/examples/cloud-init-image.tmpl diff --git a/gnu/services/cloud-init.scm b/gnu/services/cloud-init.scm new file mode 100644 index 0000000000..d6362f70a7 --- /dev/null +++ b/gnu/services/cloud-init.scm @@ -0,0 +1,137 @@ +(define-module (gnu services cloud-init) + #:use-module (gnu packages bash) + #:use-module (gnu packages python-web) + #:use-module (gnu services) + #:use-module (gnu services shepherd) + #:use-module (guix gexp) + #:use-module (guix records) + #:export (cloud-init-configuration cloud-init-service + cloud-init-service-type)) + +(define-record-type* cloud-init-configuration + make-cloud-init-configuration + cloud-init-configuration? + + (cloud-init cloud-init-configuration-cloud-init ;file-like + (default python-cloud-init)) + (init-modules cloud-init-configuration-init-modules ;list of symbols + (default '(seed_random growpart + resizefs + disk_setup + mounts + set_hostname + update_hostname + users_groups + ssh + set_passwords))) + (config-modules cloud-init-configuration-config-modules ;list of symbols + (default '())) + (final-modules cloud-init-configuration-final-modules ;list of symbols + (default '(ssh_authkey_fingerprints))) + (extra-configuration-files + cloud-init-configuration-extra-configuration-files ;list of file-likes + (default '()))) + +(define %cloud-dir + "/etc/cloud") + +(define %cloud-cfg + (string-append %cloud-dir "/cloud.cfg")) + +(define %cloud-run + (mixed-text-file "run.sh" + "#!" + (file-append bash "/bin/bash") + "\n\nset -euo pipefail\n\n" + (file-append python-cloud-init "/bin/cloud-init") + " init --local\n" + (file-append python-cloud-init "/bin/cloud-init") + " init\n" + (file-append python-cloud-init "/bin/cloud-init") + " modules --mode config\n" + (file-append python-cloud-init "/bin/cloud-init") + " modules --mode final\n")) + +(define %cloud-cfg-d + (string-append %cloud-dir "/cloud.cfg.d")) + +(define (cloud-init-initialization init-modules config-modules final-modul= es + extra) + "Return the gexp to initialize the cloud-init configuration files" + #~(begin + (use-modules (srfi srfi-1) + (srfi srfi-2) + (guix build utils)) + + (define reduce-modules + (lambda (mods) + (string-join (map (lambda (mod) + (string-append "\n - " + (symbol->string mod))) mods))= )) + + (mkdir-p #$%cloud-cfg-d) + + (copy-file #$%cloud-run + (string-append #$%cloud-dir "/run.sh")) + (chmod (string-append #$%cloud-dir "/run.sh") #o755) + + (unless (null? '(#$@extra)) + (for-each (lambda (file) + (symlink (cadr file) + (string-append #$%cloud-cfg-d "/" + (car file)))) + '(#$@extra))) + + (call-with-output-file #$%cloud-cfg + (lambda (p) + (unless (null? '(#$@init-modules)) + (display (string-append "cloud_init_modules:" + (reduce-modules '(#$@init-modules)) "\= n\n") + p)) + (unless (null? '(#$@config-modules)) + (display (string-append "cloud_config_modules:" + (reduce-modules '(#$@config-modules)) + "\n\n") p)) + (unless (null? '(#$@final-modules)) + (display (string-append "cloud_final_modules:" + (reduce-modules '(#$@final-modules)) + "\n\n") p)))))) + +(define (cloud-init-activation config) + "Return the activation gexp for CONFIG." + #~(begin + (use-modules (guix build utils)) + #$(cloud-init-initialization (cloud-init-configuration-init-modules + config) + (cloud-init-configuration-config-module= s + config) + (cloud-init-configuration-final-modules + config) + (cloud-init-configuration-extra-configu= ration-files + config)))) + +(define (cloud-init-service config) + "Return a for cloud-init with CONFIG." + (define cloud-init + (cloud-init-configuration-cloud-init config)) + + (list (shepherd-service (documentation "cloud-init service") + (provision '(cloud-init)) + (requirement '(networking)) + (one-shot? #t) + (start #~(fork+exec-command (list (string-append= #$%cloud-dir + "/run.sh")) + #:log-file (string-a= ppend + "/var/lo= g/cloud-init.log") + #:environment-variab= les ' + ("PATH=3D/run/curren= t-system/profile/bin:/run/current-system/profile/sbin:")))))) + +(define cloud-init-service-type + (service-type (name 'cloud-init) + (default-value (cloud-init-configuration)) + (description "cloud init") + (extensions (list (service-extension + shepherd-root-service-type + cloud-init-service) + (service-extension activation-service-ty= pe + cloud-init-activation= ))))) diff --git a/gnu/system/examples/cloud-init-image.tmpl b/gnu/system/example= s/cloud-init-image.tmpl new file mode 100644 index 0000000000..e2e69e8691 --- /dev/null +++ b/gnu/system/examples/cloud-init-image.tmpl @@ -0,0 +1,63 @@ +;; This vm image is meant to be used as an image template +;; to be deployed on cloud providers that use cloud-init. + +(use-modules (gnu) + (guix) + (guix gexp) + (srfi srfi-1)) +(use-service-modules cloud-init base networking ssh) +(use-package-modules admin bootloaders package-management python-web ssh) + +(operating-system + (host-name "gnu") + (timezone "Etc/UTC") + (locale "en_US.utf8") + (keyboard-layout (keyboard-layout "us")) + + (firmware '()) + + ;; Below we assume /dev/vda is the VM's hard disk. + ;; Adjust as needed. + (bootloader (bootloader-configuration + (bootloader grub-bootloader) + (targets '("/dev/vda")) + (terminal-outputs '(console)))) + (file-systems (cons (file-system + (mount-point "/") + (device "/dev/vda1") + (type "ext4")) %base-file-systems)) + + ;; The cloud-utils packages provides some utilities to allow + ;; us to piggyback off ubuntu's cloud-init modules/integrations + ;; without having to write guix specific functionality. + ;; + ;; The python-cloud-init package is not strictly required to be + ;; in system-wide packages. + (packages (append (list cloud-utils python-cloud-init) %base-packages)) + + (services + (append (list (service cloud-init-service-type) + ;; An example of extra configuration files. This specific + ;; file is required for properly running cloud-init on Di= gitalOcean + ;; (cloud-init-configuration (extra-configuration-files ` + ;; (("99-digitalocean.cfg" , + ;; (plain-file + ;; "99-digitalocean.cfg" + ;; "datasource_list: [ ConfigDrive, DigitalOcean, NoCloud= , None ]")))))) + =20 + (service network-manager-service-type) + (service wpa-supplicant-service-type) + (service openssh-service-type + (openssh-configuration (openssh openssh-sans-x) + (permit-root-login #t)))) + %base-services + ;; Uncomment the following and replace the above to automatical= ly add your guix + ;; signing key to the vm for easy reconfiguration. + ;; (modify-services %base-services + ;; (guix-service-type config =3D> + ;; (guix-configuration (inherit config) + ;; (authorized-keys (append + ;; (list (local-file + ;; "/etc/guix/signing-key.pub")) + ;; %default-authorized-guix-keys))))))) + ))) base-commit: 0e1ffbc7f5f060f89c890472377a6102f27f6e9b --=20 2.46.0 From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 21 13:25:56 2024 Received: (at 74389) by debbugs.gnu.org; 21 Nov 2024 18:25:56 +0000 Received: from localhost ([127.0.0.1]:51657 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tEBsK-0008Hf-8c for submit@debbugs.gnu.org; Thu, 21 Nov 2024 13:25:56 -0500 Received: from sender4-of-o51.zoho.com ([136.143.188.51]:21140) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tEBsH-0008HW-HT for 74389@debbugs.gnu.org; Thu, 21 Nov 2024 13:25:54 -0500 ARC-Seal: i=1; a=rsa-sha256; t=1732213551; cv=none; d=zohomail.com; s=zohoarc; b=j/Lgn/pPVaOeOYZcMMlMCUFSduLJ8MtyLwhI4enad6DRzukStK8FYwCwH5OK4kdepmymqOao8lY0jGm9VEwhgV37psgJ5ZOF/ORQXB8OX3FdjXFHekvwiFO0Yk+3QvFXFTKzapev5BvrOsZtKqC9um2xJRtclBnCWGRXQdfGTCQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1732213551; h=Content-Type:Date:Date:From:From:MIME-Version:Message-ID:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=GCQfbL3c2u/AyfupuD94MOdgDT+ycwW1BC3FIFBDqTo=; b=KFnZFwX2IsBb4n3zfP88Pyfhyx5VVHf5g2x+YxwPhxBPzt8xPSW/QjtQ/sfR9xwv8CqhTVCtphwVVamgIIWZObZ7EZzYl2L2kBbEpXPRCVTdth6atJv6baxwgWbnCfhPdPv+TAMIHSVXuLozRHJbLHArVj3z56shP2hRrD+7EDQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=elephly.net; spf=pass smtp.mailfrom=rekado@elephly.net; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1732213551; s=zoho; d=elephly.net; i=rekado@elephly.net; h=From:From:To:To:Subject:Subject:Date:Date:Message-ID:MIME-Version:Content-Type:Message-Id:Reply-To:Cc; bh=GCQfbL3c2u/AyfupuD94MOdgDT+ycwW1BC3FIFBDqTo=; b=akUyVqMHUck4oan6lXX3P7QfGSbEdjrVCDAqvMY0jQoEF4oYc8mry5VSYb19LBBh 4NaGhlWBVWwJMfnRRhh/w6XBRLVGgP+m/BTwELvOJWh0TKCox2o1pmX3kaKHycTSNTL YkKdGKiCtbwQfSXbRxNdjufzoQy4o4fdXQK7hJ0c= Received: by mx.zohomail.com with SMTPS id 1732213550700610.8685325129159; Thu, 21 Nov 2024 10:25:50 -0800 (PST) From: Ricardo Wurmus To: 74389@debbugs.gnu.org Subject: [PATCH] services: add cloud-init service Date: Thu, 21 Nov 2024 19:25:47 +0100 Message-ID: <87serkzbo4.fsf@elephly.net> MIME-Version: 1.0 Content-Type: text/plain X-ZohoMailClient: External X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 74389 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hi Alexander, thank you for the patch! I'm interested in a cloud-init service because I think we need a way to have Guix System images be configured dynamically when using them in AWS or in Openstack environments. The dynamic configuration I'm most interested in is user credentials and networking. Last I looked into this, the Python library for cloud init had explicit support for various distributions to modify system configuration files and run tools (e.g. to configure and bring up networking, or to set the hostname). It did not generate a central configuration file that could be processed. It just triggered explicit per-distro actions. We couldn't actually use any of that stuff for Guix System. What I investigated a few months back was to see if there was a way to generate some sort of configuration file that our services could then consult. Sadly there was no such thing as a central configuration file containing all necessary bits of information. From what I can tell cloud-utils does not have what it takes to configure networking or user accounts. It's probably useful for other bits, though I haven't ever used those. Could you please expand on what your service does---and what it cannot or does not aim to do---and how it would be used? Thanks! -- Ricardo From debbugs-submit-bounces@debbugs.gnu.org Fri Nov 22 20:38:04 2024 Received: (at 74389) by debbugs.gnu.org; 23 Nov 2024 01:38:04 +0000 Received: from localhost ([127.0.0.1]:56131 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tEf62-0006Oj-Js for submit@debbugs.gnu.org; Fri, 22 Nov 2024 20:38:04 -0500 Received: from mail-4317.proton.ch ([185.70.43.17]:60123) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tEZCc-0003ig-Kj for 74389@debbugs.gnu.org; Fri, 22 Nov 2024 14:20:28 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=infiniteadaptability.org; s=protonmail3; t=1732303219; x=1732562419; bh=ai1bW/jfmUWGJvJ6hOD0pFj6QuQ/TRZcNu4m4ZRYaro=; h=Date:To:From:Subject:Message-ID:Feedback-ID:From:To:Cc:Date: Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector: List-Unsubscribe:List-Unsubscribe-Post; b=UnoGFOV7vJrtZiWDzpUMiuIm6QuoacZLy5I8LUrY6Yk0gU/p0BqNKNcEaQo4nEI+s TJ5O3FQ9CVrMpWnaRl5fcaMalgx+2bMz6JPcmJrkaCNfPSmNjLrw6mEvjK9l/s8zPp qvpTrFUt2jmZpR+TrBKoxaGY7Ld4nRIvryXI5yZ5iaCvrqCkeUAAItkM4TAC2vJCD3 Mp05jGv5P77cPYGBr/otxPdZJL2r+ojbetNEn40vCFtl/T07KMN41HCMH9i/DajaYi PIIt0RVx2OWMXqczhA61gp30nwctP/sHsAZiPXwYl7KoKpJCJt/E4pHCn4v3wQULiB dk2VSgY4f8e2Q== Date: Fri, 22 Nov 2024 19:20:13 +0000 To: "74389@debbugs.gnu.org" <74389@debbugs.gnu.org> From: Alex Subject: [PATCH] services: add cloud-init service Message-ID: Feedback-ID: 41959981:user:proton X-Pm-Message-ID: 6ba2a67937791d99b90a5c76505367a8aacd0a26 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 74389 X-Mailman-Approved-At: Fri, 22 Nov 2024 20:38:01 -0500 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Ricardo, This patch is just a MVP for implementing a cloud-init service. The goal pr= imarily was to get the networking, disk and filesystem mounts, and ssh auth= entication working properly. >From a high level this patch implements a cloud-init-service which uses clo= ud-init functionality to gather information from it's run-time environment = and then run cloud-init modules in order to properly configure the vm. It p= rovides a configuration interface for choosing which modules to run as well= as a mechanism to add extra configuration files. I took a few major shortcuts in order to get a working image. The first is that instead of writing guix specific functionality for cloud-= init modules, I decided to attempt to use the ubuntu (which I believe is th= e default) tools. This is why the cloud-utils package as well as the networ= k-manager-service-type are included in the vm image template I created as p= art of this patch. The second shortcut is that I didn't see a good way to guix-ify the cloud-i= nit service definitions/runtime environment (i.e. I used the /etc/cloud dir= ectory to handle most of the configuration files). I'd prefer if configurat= ion lives in the store, but the configuration files and the gathered data l= ive in locations which I didn't see a way to overwrite easily. I'm sure thi= s exists, but would require more digging into the cloud-init source code an= d/or patches that would need to be pushed upstream. The final shortcut is the actual running of the cloud-init-service. I didn'= t see a good way to *wait* for a process to complete, i.e. to block other s= ervices until the current service completes. It looks to me that running a = long-running one-shot service (each stage of cloud-init typically takes a f= ew seconds to run) doesn't block any service which requires it's provisions= . Maybe there's some shepherd nuances that I'm not aware of. I ended up cre= ating a computed file which produces a shell script which runs each cloud-i= nit stage in sequence as a workaround to a more robust solution. I added some extra comments with instructions on how to add extra cloud-ini= t configuration files. This is required for cloud-init to run properly on D= igitalOcean (the order of the data sources needs to be changed from the def= ault). It might be necessary for other p I've tested this on digital ocean and gotten it work properly (and then use= d guix deploy to update the configuration of the image).=20 NOTE: there are some comments in the template file that would need to be un= commented to build the exact image I used. Using this patch it should be easy to create an image for testing using: ./pre-inst-env guix system image -t qcow2 gnu/system/examples/cloud-init-im= age.tmpl I would appreciate further testers and any suggestions for improvement. Thanks! Alex From debbugs-submit-bounces@debbugs.gnu.org Tue Apr 08 09:26:11 2025 Received: (at 74389) by debbugs.gnu.org; 8 Apr 2025 13:26:11 +0000 Received: from localhost ([127.0.0.1]:59973 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u28xv-0007qk-0U for submit@debbugs.gnu.org; Tue, 08 Apr 2025 09:26:11 -0400 Received: from mailtransmit04.runbox.com ([2a0c:5a00:149::25]:60082) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u28xn-0007pC-6O for 74389@debbugs.gnu.org; Tue, 08 Apr 2025 09:26:06 -0400 Received: from mailtransmit03.runbox ([10.9.9.163] helo=aibo.runbox.com) by mailtransmit04.runbox.com with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.93) (envelope-from ) id 1u28xd-00EvHc-Ua for 74389@debbugs.gnu.org; Tue, 08 Apr 2025 15:25:53 +0200 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=futurile.net; s=selector1; h=Content-Type:MIME-Version:Message-ID:Subject: Cc:To:From:Date; bh=tXJOdxH8tLk49aYpW35tmPuU+vH6qJpdksLmZOODjqg=; b=XHfTDDQ5A H7VOmjGQovL9oRQVwHbeqAZ9GOaTAbJYF3QlzfDd+V8RjmBzWY1TbwzIa2Vq/XyJ/nUW98D30+UtK zbcmnFcLxE1tqTfGBNCfJX71g07e4g3EvezLEaiVX6FxJj6i6WmrNfLxw0FifUyt9ihIM7Po7EOLB xK0NCARp7JbPo0c3t+wnDlm4bGG+bknMAmkS6ZwHxb6mLLtYxBUJcHgENQvCX0yKcj43BkTt2FrfJ 9YBF9gu6PsG11eBQo92qOPcwYq/1j62wxzVBQ7PoOH1GO85+uDCrDSXueWTAhtd4U6hWBeRadfejY QGq1z557rcVHMEPLivs5qFiHQ==; Received: from [10.9.9.74] (helo=submission03.runbox) by mailtransmit03.runbox with esmtp (Exim 4.86_2) (envelope-from ) id 1u28xd-0001Zu-Fa; Tue, 08 Apr 2025 15:25:53 +0200 Received: by submission03.runbox with esmtpsa [Authenticated ID (641962)] (TLS1.2:ECDHE_SECP256R1__RSA_SHA256__AES_256_GCM:256) (Exim 4.93) id 1u28xV-00DSA7-IZ; Tue, 08 Apr 2025 15:25:45 +0200 Date: Tue, 8 Apr 2025 14:25:44 +0100 From: Steve George To: 74389@debbugs.gnu.org Subject: RE: services: add cloud-init service (for guix) Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 74389 Cc: alex@infiniteadaptability.org, andrew@trop.in X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Hi Alex/Ricardo, In 74389 you're discussing adding a cloud-init service. It might be worth noting that I think Andrew has something in RDE that might be reusable. Andrew, is it upstreamable? Just a thought, Futurile / Steve From debbugs-submit-bounces@debbugs.gnu.org Tue Apr 08 22:06:18 2025 Received: (at 74389) by debbugs.gnu.org; 9 Apr 2025 02:06:18 +0000 Received: from localhost ([127.0.0.1]:36344 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u2KpV-00087A-Mm for submit@debbugs.gnu.org; Tue, 08 Apr 2025 22:06:17 -0400 Received: from out-184.mta0.migadu.com ([2001:41d0:1004:224b::b8]:20013) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u2KpO-000867-G9 for 74389@debbugs.gnu.org; Tue, 08 Apr 2025 22:06:15 -0400 X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=trop.in; s=key1; t=1744164350; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=sHciucxCU1ERlwaI5KYlIQtnI3h2NSIg1oufpj4/NQw=; b=eO9HJwdi3kmVRZrsaVwUh6u5yknXIOPePbDZ812ZRppgDhPSIgDKcma56sUBeya6nDmSDK 2Sb0Vb9PseXFnAiOlCG6tqZ6o8i8aaCFf6+TtTo7p+vpUhD4GYsdRKiMt090jXgA5E7UTe 9OtVM74IjowtvD38A7LFkHpeX4wruvYyl42WbbNIshu42IOIb1/uWNUPmjR8gbhyfCgY93 8gp/tq9eFtZ0BvwBy9rFDlZg9x6r9l69DqyyFzwrFlF0CF3FGv0EUAT51tUF/usJ25rNYE /Xg+MU2TCGuIR4muQ98AdF08fheQjGwgwtej6RmIffWiO1xcIVLnsOAD99gz4A== From: Andrew Tropin To: Steve George , 74389@debbugs.gnu.org Subject: Re: [bug#74389] services: add cloud-init service (for guix) In-Reply-To: References: Date: Wed, 09 Apr 2025 09:05:42 +0700 Message-ID: <87r022ytqh.fsf@trop.in> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-Migadu-Flow: FLOW_OUT X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 74389 Cc: alex@infiniteadaptability.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On 2025-04-08 14:25, Steve George wrote: > Hi Alex/Ricardo, > > In 74389 you're discussing adding a cloud-init service. It might be > worth noting that I think Andrew has something in RDE that might be > reusable. Andrew, is it upstreamable? We have a partial implementation of cloud init, that covers basic needs, but I would say the implementation is clean and complete: https://git.sr.ht/~abcdw/rde/tree/a4a8329c/src/rde/system/services/cloud-in= it.scm#L1 =2D-=20 Best regards, Andrew Tropin --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEKEGaxlA4dEDH6S/6IgjSCVjB3rAFAmf11fcACgkQIgjSCVjB 3rBB/Q//TGT+1n28RBg/LvOkfpl0+e2Incv9Bu46NlnTLSiV380Q98q2k8PyCPIh TOAjGpWsnTErsRxzdtDZYqwa4Ru2SUzk+IPKDY69C8GgsOGAzCuzflLY79SUxubR cdeandkkSZnF13IZXgoNK84TqCqDNda6kMlWJvx3xhrppPGAVbQQszDdhLmURhV6 cScGlVZqbWJRcNSxUl9lL4IfXsPFfacG9aea4u7B0PlaXROG9hlRXdBzTyNqPKOJ Np/a/sSBpag2hKuaOv0/6QyA5x5xAA51Q9uW/Tyv7eZdeahl1gcnlk7eUwksc0Yv eNsmjIZz+ww0xbEuUArgRHHMpR0WfsEoqIkcg7ATbPYUbYFxMPRxmKskVplwrrwf V26USucYqT1Uq5NQ84UTOo1yNwR8mdMx+BV89d8Qo+k5EWX4TN6e99CnOKDh47QY TJBPGmaoJEFBUTmU6Jyzso10VFAv7S5fL1g8WsYZKtRDd07cP5LBw3eBtxS3VklD zEyVGiv322h/TWJvRJv6o8G8PRIyinGRG1s21jIP3GWipYWRuB+O2K0PQ7Lfpeai Z6CdwgcT5DUcllqYujhl+Pg46/IvHrygOp+WrpxjSJ0gSk6B5Co2gY5Q0KKmq5xN YVziPb6t7omeGV3HNlgudHU4jzO1Gnc4Ku+MaJ9gqQ3ZooFrTSU= =JI8c -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Wed Apr 09 21:20:19 2025 Received: (at 74389) by debbugs.gnu.org; 10 Apr 2025 01:20:19 +0000 Received: from localhost ([127.0.0.1]:42866 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u2gaY-0008CH-Pl for submit@debbugs.gnu.org; Wed, 09 Apr 2025 21:20:19 -0400 Received: from mail-24421.protonmail.ch ([109.224.244.21]:42515) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u2gaT-00088I-Lz for 74389@debbugs.gnu.org; Wed, 09 Apr 2025 21:20:16 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=infiniteadaptability.org; s=protonmail; t=1744248005; x=1744507205; bh=AZjcxA1Df1fZN0NaLAkZI2F6pMeWb1Db/B+BiCaeIwo=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post; b=cgVCqzvjeqQYg18jDM8KBF4Tzbjs/hDoPW9X1bqO3dICRvcwhNwHxFs2rJkHk/Xn1 7ZxMv1n6C6yBAVdLjirOySHMqwAQ9RC9bQAihAwCmz8AG7Rtjc8Er5QUCAnrL4f7vK xfQIbbKpQnsTMpdqUABZ95Nc8eCMuBXpZUauPvR4fngg+y8mTjFdE3rn5LCKNHTJxk 6Ll8CKanGvcIJmuvhoG8lJCSl8H8ufdBAtuKRbo0eR6oNZj/hG0FnGwO8Cal162P0o P4m2trDjVnlxPHFA07pQ5+XnQOHD6xC3s8Euev83RvT6AG1x2kEtQ6IQ4Gx/6K2Egq Ld7w5lwLhbeiA== Date: Thu, 10 Apr 2025 01:20:01 +0000 To: "andrew@trop.in" From: Alex Subject: Re: [bug#74389] services: add cloud-init service (for guix) Message-ID: In-Reply-To: <87r022ytqh.fsf@trop.in> References: <87r022ytqh.fsf@trop.in> Feedback-ID: 41959981:user:proton X-Pm-Message-ID: 9b0f18503522f936117c72d8bb0554b1d62ae014 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 74389 Cc: "74389@debbugs.gnu.org" <74389@debbugs.gnu.org>, "steve@futurile.net" X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hi all: Mine is usable as well, I've got an image built from a checkout I've used t= o stand up a vm on digitalocean. I took a quick look at that patch series a= nd it looks like much more work was done on the configuration side and also= there was some better understanding of resize partition functionality. I b= asically piggybacked off ubuntu's tools. My implementation's networking onl= y worked on digitalocean when network-manager-service-type and wpa-supplica= nt-service-type were provided for some reason that I haven't debugged yet. My work on this has stalled (been busy with day job), but I'm still going t= o need it by early 2026 when my current infrastructure expires, so would lo= ve to help get something into guix if possible. Alex -------- Original Message -------- On 4/8/25 7:05 PM, Andrew Tropin wrote: > On 2025-04-08 14:25, Steve George wrote: > =20 > > Hi Alex/Ricardo, > > > > In 74389 you're discussing adding a cloud-init service. It might be > > worth noting that I think Andrew has something in RDE that might be > > reusable. Andrew, is it upstreamable? > =20 > We have a partial implementation of cloud init, that covers basic needs, > but I would say the implementation is clean and complete: > =20 > https://git.sr.ht/~abcdw/rde/tree/a4a8329c/src/rde/system/services/cloud= -init.scm#L1 > =20 > --=20 > Best regards, > Andrew Tropin >