guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/02: hydra: berlin: Provide /etc/guix/machines.scm through ‘guix-servi


From: Ludovic Courtès
Subject: 01/02: hydra: berlin: Provide /etc/guix/machines.scm through ‘guix-service-type’.
Date: Tue, 5 Mar 2024 10:56:37 -0500 (EST)

civodul pushed a commit to branch master
in repository maintenance.

commit de1aee190de02b244bb794184361d1e88edb7be3
Author: Ludovic Courtès <ludo@gnu.org>
AuthorDate: Tue Mar 5 16:43:24 2024 +0100

    hydra: berlin: Provide /etc/guix/machines.scm through ‘guix-service-type’.
    
    * hydra/machines-for-berlin.scm: Remove.
    * hydra/modules/sysadmin/build-machines.scm (hosts, template-x86_64)
    (overdrive, honeycomb, powerpc64le): New variables, taken from
    ‘machines-for-berlin.scm’ and turned into lists of gexps.
    (%berlin-build-machines, berlin-offloading-service-type): New variables.
    * hydra/berlin.scm <top level>: Use ‘berlin-offloading-service-type’.
    * hydra/modules/sysadmin/services.scm (%offload-service): Remove.
    (frontend-services): Replace %OFFLOAD-SERVICE with a
    ‘berlin-offloading-service-type’ instance.
---
 hydra/machines-for-berlin.scm             | 341 ------------------------------
 hydra/modules/sysadmin/build-machines.scm | 275 +++++++++++++++++++++++-
 hydra/modules/sysadmin/services.scm       |  32 +--
 3 files changed, 278 insertions(+), 370 deletions(-)

diff --git a/hydra/machines-for-berlin.scm b/hydra/machines-for-berlin.scm
deleted file mode 100644
index 6961e60..0000000
--- a/hydra/machines-for-berlin.scm
+++ /dev/null
@@ -1,341 +0,0 @@
-;; Install this file as /etc/guix/machines.scm on berlin.guix.gnu.org
-
-(use-modules (ice-9 match) (srfi srfi-1))
-
-;; These are all hosted at the MDC in Berlin Buch.  They are connected to
-;; a dedicated VLAN and can only be accessed from berlin.guix.gnu.org.
-(define hosts
-  '(;;; New machines.  We should use DNS for them in the future.
-    ;; hydra-guix-101
-    ("141.80.167.158"
-     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIGqLy+LVndyfuzwZmln/nrHylAN7FotSmso9kZaYPpzo"
-     128)
-    ;; hydra-guix-102
-    ("141.80.167.159"
-     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIEq4YoQHA0ShXIVbk7E4Jh4KZRPrt1EN9DYniraR8oYj"
-     128)
-    ;; hydra-guix-103
-    ("141.80.167.160"
-     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAICiFpDx+NIVHD4ffZotDyJDdEiwo8Cy8fAQU6cLt6mT/"
-     128)
-    ;; hydra-guix-104
-    ("141.80.167.161"
-     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAINuVkwaeU+ddDpDQoxyFboiBnRNyhGDT8yOy8VAyJxZ6"
-     128)
-    ;; hydra-guix-105
-    ("141.80.167.162"
-     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIH9o9VrkR2OKoGeuyJkzSsLIaDVApkbHEQvgr8aywQf8"
-     128)
-    ;; hydra-guix-106
-    ("141.80.167.163"
-     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIBWN8i6YSGaRddTUgjodvQ4+g+6qYRe+0t9Mi8zOXawG"
-     128)
-    ;; hydra-guix-107
-    ("141.80.167.164"
-     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAII+nI0XnLKShi3tZEdPdEVQ1VLlZjgQNSKMTK55FwH/4"
-     128)
-    ;; hydra-guix-108
-    ("141.80.167.165"
-     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIHvMT+OlslyCzp7PvIvG/m9aCNhk3jnGS4kh8Cxh26CK"
-     128)
-    ;; hydra-guix-109
-    ("141.80.167.166"
-     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIHkmH+o9P2kmgtjyGU9/vLEmFbxwUlq62lWu3lLc1J5o"
-     128)
-    ;; hydra-guix-110
-    ("141.80.167.167"
-     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIM2A2GxCw3oF6W2a5P9/K/jw1BWNJdAy9cr7NLRWvHVl"
-     128)
-    ;; hydra-guix-111
-    ("141.80.167.168"
-     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAILJoZitLeltTfd7dDAnRbuP1uCWmTsYjIKALcadXknMl"
-     128)
-    ;; hydra-guix-112
-    ("141.80.167.169"
-     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIFS6PDp6MVutJiieJgDaLvub83oeTvWYLJnELxqCyO7x"
-     128)
-    ;; hydra-guix-113
-    ("141.80.167.170"
-     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIMn5ujp4uTRVwYGPr2kgh7YMXISj+WyRxe8cGxzb1KrL"
-     128)
-    ;; hydra-guix-114
-    ("141.80.167.171"
-     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIF4ST+J7Xdmrft+sD1HEOAjADA+QZ+hMXRV3PnN0Rs+A"
-     128)
-    ;; hydra-guix-115
-    ("141.80.167.172"
-     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIG9zXGZ5b6QroN4RybnKLIMZwKtFuMpsNypkUXdFmH88"
-     128)
-    ;; hydra-guix-116
-    ("141.80.167.173"
-     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIFg0y4UyuTkYoa3hwqj2ByQXYBMQdbPKz7nEz7I1lquL"
-     128)
-    ;; hydra-guix-117
-    ("141.80.167.174"
-     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAINPPjhX6Z3bgt7EZmIfUdsgFnqp3yLr4msccjwsD2Q8F"
-     128)
-    ;; hydra-guix-118
-    ("141.80.167.175"
-     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIJfJfTctnzEzVBLZxIq4WIOWY0s9JHcvIztdIYSFlklH"
-     128)
-    ;; hydra-guix-119
-    ("141.80.167.176"
-     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIGE6FwL94/YDJIioQsLqh/MnwGcXmKYARd/kBGs+RWM7"
-     128)
-    ;; hydra-guix-120
-    ("141.80.167.177"
-     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIH3rXQZCQbVliJUgavSxNWvA4XUX7cXj7zd5VvUggCbv"
-     128)
-    ;; hydra-guix-121
-    ("141.80.167.178"
-     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIGNVaPCyKRrprBivEWYmtVecaJ+DIkET3gCYzGOuRAcz"
-     128)
-    ;; hydra-guix-122
-    ("141.80.167.179"
-     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIHladb6HkAEmITzNOmI1kH7A4R1MiKp0Y72aPJNwuIDB"
-     128)
-    ;; hydra-guix-123
-    ("141.80.167.180"
-     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIOM29Lj7rNDDsU5JOuDgFGfepWY9WHs6WaMLj9/7IceX"
-     128)
-    ;; hydra-guix-124
-    ("141.80.167.181"
-     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIODiKP7qIkkDeqvzKG2JsrDlNRe3CTN+icGgQ1J5ZUP+"
-     128)
-    ;; hydra-guix-125
-    ("141.80.167.182"
-     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIPrlasUtgZgKfJ0oNhBQx/2QIQ+J+jbAT842VoJlBhor"
-     192)
-    ;; hydra-guix-126
-    ("141.80.167.183"
-     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIIUprP1E2cRkMrwBnl1FkeCQ5UhZRin6dKQrB9p4WrV6"
-     192)
-    ;; hydra-guix-127
-    ("141.80.167.184"
-     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIHdrEcEoo2AQ6aDXhLUWxLhp4kTq+DJLwXxvgu4As1bo"
-     192)
-    ;; hydra-guix-128
-    ("141.80.167.185"
-     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIAIomlYpFmdaTiWGf4DWs6sc831zbNlU5XBjicHmZINA"
-     192)
-    ;; hydra-guix-129
-    ("141.80.167.186"
-     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIMuCdrMoF25T9ejPLAAcS92b6lVIz5+U0avyYPQTG5NI"
-     192)
-    ;; hydra-guix-130
-    ;; FIXME: Disabled Nov 19 2022; waiting troubleshooting from
-    ;; Madalin (segfaults in libc).
-    ;; ("141.80.167.187"
-    ;;  "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAICZilog+9Jdim9k07baYK6QZfkZRZbQQriExjtOEfjQ5"
-    ;;  192)
-    ))
-
-(define template-x86_64
-  (match-lambda
-    ;; Prefer building on the new nodes.
-    ((ip key 128)
-     (build-machine
-      (name ip)
-      (user "hydra")
-      (systems
-       ;; Some of these machines run a childhurd, which they offload to (we
-       ;; effectively have two-level offloading, then).
-       (append (if (childhurd-ip? ip)
-                   '("i586-gnu")
-                   '())
-               '("x86_64-linux" "i686-linux")))
-      (host-key key)
-      (compression "no")
-      (speed 3)                                   ;don't increase it too much
-                                        ;or everything goes there
-      (parallel-builds 8)))
-    ((name key 192)
-     (build-machine
-      (name name)
-      (user "hydra")
-      (systems '("x86_64-linux" "i686-linux"))
-      (host-key key)
-      (compression "no")
-      (speed 3)                                   ;don't increase it too much
-                                        ;or everything goes there
-      (parallel-builds 8)))
-    ((ip key ram)
-     (build-machine
-      (name ip)
-      (user "hydra")
-      (systems '("x86_64-linux" "i686-linux"))
-      (host-key key)
-      (compression "no")
-      (speed 2)
-      (parallel-builds 2)))))
-
-(define (aarch64->armhf machine)
-  (build-machine
-   (inherit machine)
-   (systems '("armhf-linux"))
-   (speed .9)
-   (parallel-builds 1)))            ;limit to favor the "real" ARMv7 machines
-
-(define (x86_64->qemu-armhf machine)
-  (build-machine
-   (inherit machine)
-   (systems '("armhf-linux"))
-   (speed .8)                       ;prefer the "native" AArch64 machines
-   (parallel-builds 1)))
-
-(define (x86_64->qemu-aarch64 machine)
-  (build-machine
-   (inherit machine)
-   (systems '("aarch64-linux"))
-   (speed .9)
-   (parallel-builds 1)))
-
-(define overdrive
-  ;; The SoftIron OverDrive 1000 donated by ARM:
-  ;; CPU: AMD A1100 (4 Cortex A57 cores)
-  ;; RAM: 8 GB
-  (list (build-machine
-         ;;overdrive1
-         (name "10.0.0.3")
-         (user "hydra")
-         (overload-threshold 1.2)
-         (systems '("aarch64-linux" "armhf-linux"))
-         (host-key
-          "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIPf2f93c90oi9s9qGVGWC3sDgG7kEBvIEwR021NsfG+z 
root@overdrive")
-         (parallel-builds 2))
-
-        ;; 2022-02-17: cannot be reached.
-        #;
-        (build-machine
-         ;;dover
-         (name "10.0.0.4")
-         (user "hydra")
-         (overload-threshold 1.2)
-         (systems '("aarch64-linux" "armhf-linux"))
-         (host-key
-          "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIJLRYD5RXZ3Espe+Kv1SzZl8Qc3NZ356Bq+cGjnKsDHY 
root@linux")
-         (parallel-builds 2))))
-
-(define honeycomb
-  ;; SolidRun LX2160A Honeycomb
-  ;; CPU: 16 ARM Cortex-A72 cores
-  ;; RAM: 32 GB
-  (list (build-machine
-         ;;pankow
-         (name "10.0.0.8")
-         (user "hydra")
-         (overload-threshold 1.2)
-         (speed 2.0)                    ; prefer over overdrives
-         (systems '("aarch64-linux" "armhf-linux"))
-         (host-key
-          "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIMiOfBwh78K3KNEV1ZQf0pyVtYFSoLgWryMMy0GdMJ0H")
-         (parallel-builds 4))
-        (build-machine
-         ;;kreuzberg
-         (name "10.0.0.9")
-         (user "hydra")
-         (overload-threshold 1.2)
-         (speed 2.0)                    ; prefer over overdrives
-         (systems '("aarch64-linux" "armhf-linux"))
-         (host-key
-          "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIFjixKdkTBoEUflxX/n/flhg7GoqbfkfoVrhD0GROZxl")
-         (parallel-builds 4))
-        (build-machine
-         ;;grunewald
-         (name "10.0.0.10")
-         (user "hydra")
-         (overload-threshold 1.2)
-         (speed 2.0)                    ; prefer over overdrives
-         (systems '("aarch64-linux" "armhf-linux"))
-         (host-key
-          "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIIB9slskCGIBFwRRzsWmePIsMJ8W1muqvDIgPG3xQeu6")
-         (parallel-builds 4))))
-
-(define armv7
-  (list
-   ;; BeagleBoard X15 kindly hosted by Simon Josefsson.
-   ;; CPU: Cortex A15 (2 cores)
-   ;; RAM: 2 GB
-   ;; 2022-02-17: cannot be reached.
-   #;
-   (build-machine
-    (name "10.0.0.5")                   ;guix-x15
-    (user "hydra")
-    (systems '("armhf-linux"))
-    (host-key "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIOfXjwCAFWeGiUoOVXEgtIeXxbtymjOTg7ph1ObMAcJ0 
root@beaglebone"))
-
-   ;; 2022-02-17: cannot be reached.
-   #;
-   (build-machine
-    (name "10.0.0.6")                   ;guix-x15b
-    (user "hydra")
-    (systems '("armhf-linux"))
-    (host-key "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIJEbCOTTg9Tl0E23Mnc0UA4Ib2W5oDqTukk6mT98tOph 
root@beaglebone"))
-
-   #;(build-machine
-   (name "hydra-slave1.netris.org")
-   (port 7275)
-   (user "hydra")
-   (systems '("armhf-linux"))
-   (host-key "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIPDAe9mXufZXFfFlezafA/G2Nng66ssLLi5xPP+9NhGm 
root@hydra-slave1")
-   (speed 1.0)
-   (parallel-builds 2))
-
-   ;; I/O errors as of 2020-02-27
-   #;(build-machine
-   (name "hydra-slave2.netris.org")
-   (port 7276)
-   (user "hydra")
-   (systems '("armhf-linux"))
-   (host-key "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIHzlJZzZfPiEcehmLFtQVYVt3j9w4DHPL6YgSC3EHJK+ 
root@hydra-slave2")
-   (speed 1.0)
-   (parallel-builds 2))
-
-   ;; Not responding as of 2020-02-27
-   #;(build-machine
-   (name "hydra-slave3.netris.org")
-   (port 7274)
-   (user "hydra")
-   (systems '("armhf-linux"))
-   (host-key "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIBLOVhnS24E+Z1bXLUU4z4gE5+HsFxDxUPA6MbLHmnME 
root@hydra-slave3")
-   (speed 1.0)
-   (parallel-builds 2))))
-
-(define powerpc64le
-  (list
-   ;; guixp9 - A VM donated/hosted by OSUOSL & administered by nckx.
-   ;; 8 POWER9 2.2 (pvr 004e 1202) cores, 16 GiB RAM, 160 GB storage.
-   (build-machine
-    (name "10.0.0.7")
-    (user "hydra")
-    (systems '("powerpc64le-linux"))
-    (host-key "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIJEbRxJ6WqnNLYEMNDUKFcdMtyZ9V/6oEfBFSHY8xE6A nckx"))
-   ;; sjd-p9 - A VM donated/hosted by Simon Joseffson, but blame nckx for any 
problems.
-   ;; 32 POWER9 2.3 (pvr 004e 1203) cores, 64 GiB RAM, 16 GB / + 256 GB /gnu 
storage.
-   (build-machine
-    (parallel-builds 16)
-    (speed 4.0)
-    (name "10.0.0.13")
-    (user "hydra")
-    (systems '("powerpc64le-linux"))
-    (host-key "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIMUkktI2HAycb4nqWwVBn5OCe5dyF4pbjqvyPTICz/9A nckx"))))
-
-(define build-machine-name
-  (@@ (guix scripts offload) build-machine-name))
-
-(define (childhurd-ip? ip)        ;XXX: copied from (sysadmin build-machines)
-  "Return #t if IP should be running a Childhurd."
-  (member ip '("141.80.167.158" "141.80.167.159"
-               "141.80.167.160" "141.80.167.161")))
-
-(let* ((x86_64 (map template-x86_64 hosts)))
-  (append overdrive
-          honeycomb
-          ;; This has been disabled until bug# 43513 is fixed.
-          ;;(map aarch64->armhf overdrive)
-          armv7
-          powerpc64le
-          x86_64
-          ;; This has been disabled until bug# 43513 is fixed.
-          ;;(map x86_64->qemu-armhf fast)
-          ))
diff --git a/hydra/modules/sysadmin/build-machines.scm 
b/hydra/modules/sysadmin/build-machines.scm
index 409589d..2848441 100644
--- a/hydra/modules/sysadmin/build-machines.scm
+++ b/hydra/modules/sysadmin/build-machines.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix system administration tools.
 ;;;
-;;; Copyright © 2016-2017, 2019-2023 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016-2017, 2019-2024 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2017, 2018, 2019, 2024 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;;
@@ -34,11 +34,13 @@
   #:use-module (sysadmin people)
   #:use-module (gnu packages ssh)
   #:use-module (ice-9 format)
+  #:use-module (ice-9 match)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26)
   #:export (build-machine-os
             berlin-new-build-machine-os
-            childhurd-ip?))
+            childhurd-ip?
+            berlin-offloading-service-type))
 
 ;;; Commentary:
 ;;;
@@ -329,4 +331,273 @@ Match Address 141.80.167.131
                                    #\newline))
                          (list "%wheel ALL = NOPASSWD: ALL\n")) "\n")))))
 
+
+;;;
+;;; List of build machines for offloading.
+;;;
+
+;; These are all hosted at the MDC in Berlin Buch.  They are connected to
+;; a dedicated VLAN and can only be accessed from berlin.guix.gnu.org.
+(define hosts
+  '(;;; New machines.  We should use DNS for them in the future.
+    ;; hydra-guix-101
+    ("141.80.167.158"
+     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIGqLy+LVndyfuzwZmln/nrHylAN7FotSmso9kZaYPpzo"
+     128)
+    ;; hydra-guix-102
+    ("141.80.167.159"
+     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIEq4YoQHA0ShXIVbk7E4Jh4KZRPrt1EN9DYniraR8oYj"
+     128)
+    ;; hydra-guix-103
+    ("141.80.167.160"
+     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAICiFpDx+NIVHD4ffZotDyJDdEiwo8Cy8fAQU6cLt6mT/"
+     128)
+    ;; hydra-guix-104
+    ("141.80.167.161"
+     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAINuVkwaeU+ddDpDQoxyFboiBnRNyhGDT8yOy8VAyJxZ6"
+     128)
+    ;; hydra-guix-105
+    ("141.80.167.162"
+     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIH9o9VrkR2OKoGeuyJkzSsLIaDVApkbHEQvgr8aywQf8"
+     128)
+    ;; hydra-guix-106
+    ("141.80.167.163"
+     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIBWN8i6YSGaRddTUgjodvQ4+g+6qYRe+0t9Mi8zOXawG"
+     128)
+    ;; hydra-guix-107
+    ("141.80.167.164"
+     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAII+nI0XnLKShi3tZEdPdEVQ1VLlZjgQNSKMTK55FwH/4"
+     128)
+    ;; hydra-guix-108
+    ("141.80.167.165"
+     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIHvMT+OlslyCzp7PvIvG/m9aCNhk3jnGS4kh8Cxh26CK"
+     128)
+    ;; hydra-guix-109
+    ("141.80.167.166"
+     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIHkmH+o9P2kmgtjyGU9/vLEmFbxwUlq62lWu3lLc1J5o"
+     128)
+    ;; hydra-guix-110
+    ("141.80.167.167"
+     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIM2A2GxCw3oF6W2a5P9/K/jw1BWNJdAy9cr7NLRWvHVl"
+     128)
+    ;; hydra-guix-111
+    ("141.80.167.168"
+     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAILJoZitLeltTfd7dDAnRbuP1uCWmTsYjIKALcadXknMl"
+     128)
+    ;; hydra-guix-112
+    ("141.80.167.169"
+     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIFS6PDp6MVutJiieJgDaLvub83oeTvWYLJnELxqCyO7x"
+     128)
+    ;; hydra-guix-113
+    ("141.80.167.170"
+     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIMn5ujp4uTRVwYGPr2kgh7YMXISj+WyRxe8cGxzb1KrL"
+     128)
+    ;; hydra-guix-114
+    ("141.80.167.171"
+     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIF4ST+J7Xdmrft+sD1HEOAjADA+QZ+hMXRV3PnN0Rs+A"
+     128)
+    ;; hydra-guix-115
+    ("141.80.167.172"
+     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIG9zXGZ5b6QroN4RybnKLIMZwKtFuMpsNypkUXdFmH88"
+     128)
+    ;; hydra-guix-116
+    ("141.80.167.173"
+     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIFg0y4UyuTkYoa3hwqj2ByQXYBMQdbPKz7nEz7I1lquL"
+     128)
+    ;; hydra-guix-117
+    ("141.80.167.174"
+     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAINPPjhX6Z3bgt7EZmIfUdsgFnqp3yLr4msccjwsD2Q8F"
+     128)
+    ;; hydra-guix-118
+    ("141.80.167.175"
+     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIJfJfTctnzEzVBLZxIq4WIOWY0s9JHcvIztdIYSFlklH"
+     128)
+    ;; hydra-guix-119
+    ("141.80.167.176"
+     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIGE6FwL94/YDJIioQsLqh/MnwGcXmKYARd/kBGs+RWM7"
+     128)
+    ;; hydra-guix-120
+    ("141.80.167.177"
+     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIH3rXQZCQbVliJUgavSxNWvA4XUX7cXj7zd5VvUggCbv"
+     128)
+    ;; hydra-guix-121
+    ("141.80.167.178"
+     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIGNVaPCyKRrprBivEWYmtVecaJ+DIkET3gCYzGOuRAcz"
+     128)
+    ;; hydra-guix-122
+    ("141.80.167.179"
+     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIHladb6HkAEmITzNOmI1kH7A4R1MiKp0Y72aPJNwuIDB"
+     128)
+    ;; hydra-guix-123
+    ("141.80.167.180"
+     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIOM29Lj7rNDDsU5JOuDgFGfepWY9WHs6WaMLj9/7IceX"
+     128)
+    ;; hydra-guix-124
+    ("141.80.167.181"
+     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIODiKP7qIkkDeqvzKG2JsrDlNRe3CTN+icGgQ1J5ZUP+"
+     128)
+    ;; hydra-guix-125
+    ("141.80.167.182"
+     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIPrlasUtgZgKfJ0oNhBQx/2QIQ+J+jbAT842VoJlBhor"
+     192)
+    ;; hydra-guix-126
+    ("141.80.167.183"
+     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIIUprP1E2cRkMrwBnl1FkeCQ5UhZRin6dKQrB9p4WrV6"
+     192)
+    ;; hydra-guix-127
+    ("141.80.167.184"
+     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIHdrEcEoo2AQ6aDXhLUWxLhp4kTq+DJLwXxvgu4As1bo"
+     192)
+    ;; hydra-guix-128
+    ("141.80.167.185"
+     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIAIomlYpFmdaTiWGf4DWs6sc831zbNlU5XBjicHmZINA"
+     192)
+    ;; hydra-guix-129
+    ("141.80.167.186"
+     "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIMuCdrMoF25T9ejPLAAcS92b6lVIz5+U0avyYPQTG5NI"
+     192)
+    ;; hydra-guix-130
+    ;; FIXME: Disabled Nov 19 2022; waiting troubleshooting from
+    ;; Madalin (segfaults in libc).
+    ;; ("141.80.167.187"
+    ;;  "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAICZilog+9Jdim9k07baYK6QZfkZRZbQQriExjtOEfjQ5"
+    ;;  192)
+    ))
+
+(define template-x86_64
+  (match-lambda
+    ;; Prefer building on the new nodes.
+    ((ip key 128)
+     #~(build-machine
+        (name #$ip)
+        (user "hydra")
+        (systems
+         ;; Some of these machines run a childhurd, which they offload to (we
+         ;; effectively have two-level offloading, then).
+         '#$(append (if (childhurd-ip? ip)
+                        '("i586-gnu")
+                        '())
+                    '("x86_64-linux" "i686-linux")))
+        (host-key #$key)
+        (compression "no")
+        (speed 3)                                 ;don't increase it too much
+                                                  ;or everything goes there
+        (parallel-builds 8)))
+    ((name key 192)
+     #~(build-machine
+        (name #$name)
+        (user "hydra")
+        (systems '("x86_64-linux" "i686-linux"))
+        (host-key #$key)
+        (compression "no")
+        (speed 3)                                 ;don't increase it too much
+                                                  ;or everything goes there
+        (parallel-builds 8)))
+    ((ip key ram)
+     #~(build-machine
+        (name #$ip)
+        (user "hydra")
+        (systems '("x86_64-linux" "i686-linux"))
+        (host-key #$key)
+        (compression "no")
+        (speed 2)
+        (parallel-builds 2)))))
+
+(define overdrive
+  ;; The SoftIron OverDrive 1000 donated by ARM:
+  ;; CPU: AMD A1100 (4 Cortex A57 cores)
+  ;; RAM: 8 GB
+  (list #~(build-machine
+           ;;overdrive1
+           (name "10.0.0.3")
+           (user "hydra")
+           (overload-threshold 1.2)
+           (systems '("aarch64-linux" "armhf-linux"))
+           (host-key
+            "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIPf2f93c90oi9s9qGVGWC3sDgG7kEBvIEwR021NsfG+z 
root@overdrive")
+           (parallel-builds 2))
+
+        ;; 2022-02-17: cannot be reached.
+        #;
+        (build-machine
+         ;;dover
+         (name "10.0.0.4")
+         (user "hydra")
+         (overload-threshold 1.2)
+         (systems '("aarch64-linux" "armhf-linux"))
+         (host-key
+          "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIJLRYD5RXZ3Espe+Kv1SzZl8Qc3NZ356Bq+cGjnKsDHY 
root@linux")
+         (parallel-builds 2))))
+
+(define honeycomb
+  ;; SolidRun LX2160A Honeycomb
+  ;; CPU: 16 ARM Cortex-A72 cores
+  ;; RAM: 32 GB
+  (list #~(build-machine
+           ;;pankow
+           (name "10.0.0.8")
+           (user "hydra")
+           (overload-threshold 1.2)
+           (speed 2.0)                            ; prefer over overdrives
+           (systems '("aarch64-linux" "armhf-linux"))
+           (host-key
+            "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIMiOfBwh78K3KNEV1ZQf0pyVtYFSoLgWryMMy0GdMJ0H")
+           (parallel-builds 4))
+        #~(build-machine
+           ;;kreuzberg
+           (name "10.0.0.9")
+           (user "hydra")
+           (overload-threshold 1.2)
+           (speed 2.0)                            ; prefer over overdrives
+           (systems '("aarch64-linux" "armhf-linux"))
+           (host-key
+            "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIFjixKdkTBoEUflxX/n/flhg7GoqbfkfoVrhD0GROZxl")
+           (parallel-builds 4))
+        #~(build-machine
+           ;;grunewald
+           (name "10.0.0.10")
+           (user "hydra")
+           (overload-threshold 1.2)
+           (speed 2.0)                            ; prefer over overdrives
+           (systems '("aarch64-linux" "armhf-linux"))
+           (host-key
+            "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIIB9slskCGIBFwRRzsWmePIsMJ8W1muqvDIgPG3xQeu6")
+           (parallel-builds 4))))
+
+(define powerpc64le
+  (list
+   ;; guixp9 - A VM donated/hosted by OSUOSL & administered by nckx.
+   ;; 8 POWER9 2.2 (pvr 004e 1202) cores, 16 GiB RAM, 160 GB storage.
+   #~(build-machine
+      (name "10.0.0.7")
+      (user "hydra")
+      (systems '("powerpc64le-linux"))
+      (host-key "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIJEbRxJ6WqnNLYEMNDUKFcdMtyZ9V/6oEfBFSHY8xE6A nckx"))
+   ;; sjd-p9 - A VM donated/hosted by Simon Joseffson, but blame nckx for any 
problems.
+   ;; 32 POWER9 2.3 (pvr 004e 1203) cores, 64 GiB RAM, 16 GB / + 256 GB /gnu 
storage.
+   #~(build-machine
+      (parallel-builds 16)
+      (speed 4.0)
+      (name "10.0.0.13")
+      (user "hydra")
+      (systems '("powerpc64le-linux"))
+      (host-key "ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIMUkktI2HAycb4nqWwVBn5OCe5dyF4pbjqvyPTICz/9A nckx"))))
+
+(define %berlin-build-machines
+  (append overdrive
+          honeycomb
+          powerpc64le
+          (map template-x86_64 hosts)))
+
+(define berlin-offloading-service-type
+  (service-type
+   (name 'berlin-offloading)
+   (extensions
+    (list (service-extension guix-service-type
+                             (const
+                              (guix-extension
+                               (build-machines %berlin-build-machines))))))
+   (description "Offloading setup for the Berlin build farm.")
+   (default-value #t)))
+
 ;;; build-machines.scm end here
diff --git a/hydra/modules/sysadmin/services.scm 
b/hydra/modules/sysadmin/services.scm
index f68d9db..a146000 100644
--- a/hydra/modules/sysadmin/services.scm
+++ b/hydra/modules/sysadmin/services.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix system administration tools.
 ;;;
-;;; Copyright © 2016-2023 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016-2024 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2017, 2018, 2020, 2022, 2024 Ricardo Wurmus 
<rekado@elephly.net>
 ;;; Copyright © 2022 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
@@ -52,6 +52,8 @@
   #:use-module (gnu packages package-management)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages web)
+  #:use-module ((sysadmin build-machines)
+                #:select (berlin-offloading-service-type))
   #:use-module (sysadmin people)
   #:use-module (sysadmin packages)
   #:use-module (srfi srfi-1)
@@ -687,7 +689,8 @@ to a selected directory.")
                    (cache-bypass-threshold cache-bypass-threshold)
                    (workers publish-workers)))
 
-         %offload-service
+         ;; Install /etc/guix/machines.scm with all the build nodes.
+         (service berlin-offloading-service-type)
 
          %nginx-mime-types
          %nginx-cache-activation
@@ -1030,31 +1033,6 @@ to a selected directory.")
    (description "Run a crash dump HTTP web server.")))
 
 
-;;;
-;;; Offloading
-;;;
-
-(define %offload-service
-  ;; Provide /etc/guix/machines.scm file.
-  (simple-service
-   'guix-machines.scm
-   activation-service-type
-   (with-imported-modules '((guix build utils))
-     #~(begin
-         (use-modules (guix build utils))
-         (if (file-exists? "/etc/guix/machines.scm")
-             (if (and (symbolic-link? "/etc/guix/machines.scm")
-                      (store-file-name? (readlink "/etc/guix/machines.scm")))
-                 (delete-file "/etc/guix/machines.scm")
-                 (rename-file "/etc/guix/machines.scm"
-                              "/etc/guix/machines.scm.bak"))
-             (mkdir-p "/etc/guix"))
-
-         ;; Install the machines file.
-         (symlink #$(local-file "../../machines-for-berlin.scm")
-                  "/etc/guix/machines.scm")))))
-
-
 ;;;
 ;;; QA Frontpage
 ;;;



reply via email to

[Prev in Thread] Current Thread [Next in Thread]