hydra/berlin-nodes: Add Childhurd service to nodes 101, 102.
* hydra/modules/sysadmin/build-machines.scm (childhurd-ip?): New procedure. (berlin-new-build-machine-os): Add #:childhurd parameter. If set, add a Childhurd service. * hydra/machines-for-berlin.scm (x86_64->childhurd): New procedure. (x86_64): Use them to define childhurd offload machines. * hydra/berlin-nodes.scm: Add Childhurd service to the first two nodes.
This commit is contained in:
parent
9cabe7a053
commit
a47ab98077
|
@ -133,8 +133,9 @@
|
|||
(machine
|
||||
(operating-system
|
||||
(berlin-new-build-machine-os id
|
||||
#:emulated-architectures
|
||||
'("arm" "aarch64")))
|
||||
#:emulated-architectures
|
||||
`("arm" "aarch64")
|
||||
#:childhurd? (childhurd-ip? ip)))
|
||||
(environment managed-host-environment-type)
|
||||
(configuration (machine-ssh-configuration
|
||||
(system "x86_64-linux")
|
||||
|
|
|
@ -184,6 +184,12 @@
|
|||
(speed .9)
|
||||
(parallel-builds 1)))
|
||||
|
||||
(define (x86_64->childhurd machine)
|
||||
(build-machine
|
||||
(inherit machine)
|
||||
(system "i586-gnu")
|
||||
(parallel-builds 1)))
|
||||
|
||||
(define overdrive
|
||||
;; The SoftIron OverDrive 1000 donated by ARM:
|
||||
;; <https://softiron.com/development-tools/overdrive-1000/>.
|
||||
|
@ -295,9 +301,11 @@
|
|||
(string=? ((@@ (guix scripts offload) build-machine-name) machine) name))
|
||||
x86_64))
|
||||
(_ #f))
|
||||
hosts)))
|
||||
hosts))
|
||||
(fast/hurd (filter (compose childhurd-ip? build-machine-name) fast)))
|
||||
(append overdrive (map aarch64->armhf overdrive)
|
||||
armv7
|
||||
x86_64 (map x86_64->i686 x86_64)
|
||||
(map x86_64->qemu-aarch64 fast)
|
||||
(map x86_64->qemu-armhf fast)))
|
||||
(map x86_64->qemu-armhf fast)
|
||||
(map x86_64->childhurd fast/hurd)))
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
;;;
|
||||
;;; Copyright © 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
;;;
|
||||
;;; This program is free software: you can redistribute it and/or modify
|
||||
;;; it under the terms of the GNU General Public License as published by
|
||||
|
@ -27,10 +28,12 @@
|
|||
#:use-module (gnu services networking)
|
||||
#:use-module (gnu services virtualization)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix records)
|
||||
#:use-module (sysadmin people)
|
||||
#:use-module (gnu packages ssh)
|
||||
#:export (build-machine-os
|
||||
berlin-new-build-machine-os))
|
||||
berlin-new-build-machine-os
|
||||
childhurd-ip?))
|
||||
|
||||
;;; Commentary:
|
||||
;;;
|
||||
|
@ -73,10 +76,16 @@ HOST-NAME and accessibly by SYSADMINS, with the given AUTHORIZED-GUIX-KEYS."
|
|||
(authorized-keys
|
||||
authorized-guix-keys))))))))
|
||||
|
||||
(define (childhurd-ip? ip)
|
||||
"Return #t if IP should be running a Childhurd: the first two
|
||||
nodes."
|
||||
(member ip '("141.80.167.158" "141.80.167.159")))
|
||||
|
||||
(define* (berlin-new-build-machine-os id
|
||||
#:key
|
||||
(authorized-guix-keys '())
|
||||
(emulated-architectures '()))
|
||||
(emulated-architectures '())
|
||||
childhurd?)
|
||||
"Return the <operating-system> declaration for a build machine for
|
||||
berlin.guixsd.org with integer ID, with the given
|
||||
AUTHORIZED-GUIX-KEYS. Add a 'qemu-binfmt-service' for
|
||||
|
@ -87,6 +96,37 @@ EMULATED-ARCHITECTURES, unless it's empty."
|
|||
#~(job '(next-hour '(3 15))
|
||||
"guix gc -F 90G"))
|
||||
|
||||
(define childhurd-gc-job
|
||||
;; Run 'guix gc' at 2AM every day.
|
||||
#~(job '(next-hour '(2))
|
||||
"guix gc -F 2G"))
|
||||
|
||||
(define childhurd-os
|
||||
(operating-system
|
||||
(inherit %hurd-vm-operating-system)
|
||||
(host-name (format #f "hydra-childhurd-~3,'0d" id))
|
||||
(hosts-file
|
||||
(plain-file "hosts"
|
||||
(string-append "127.0.0.1 localhost " host-name "\n"
|
||||
"::1 localhost " host-name "\n"
|
||||
"141.80.167.131 ci.guix.gnu.org\n")))
|
||||
(services
|
||||
(cons* (service mcron-service-type
|
||||
(mcron-configuration (jobs (list gc-job))))
|
||||
(operating-system-user-services %hurd-vm-operating-system)))))
|
||||
|
||||
(define (childhurd-net-options . config)
|
||||
"Expose SSH and VNC ports on 0.0.0.0; for first Childhurd VM those
|
||||
are 10022 and 15900."
|
||||
(let ((id 0))
|
||||
(define (qemu-vm-port base)
|
||||
(number->string (+ base (* 1000 id))))
|
||||
`("--device" "rtl8139,netdev=net0"
|
||||
"--netdev" ,(string-append
|
||||
"user,id=net0"
|
||||
",hostfwd=tcp:0.0.0.0:" (qemu-vm-port 10022) "-:2222"
|
||||
",hostfwd=tcp:0.0.0.0:" (qemu-vm-port 15900) "-:5900"))))
|
||||
|
||||
(define sysadmins
|
||||
(list (sysadmin (name "ludo")
|
||||
(full-name "Ludovic Courtès")
|
||||
|
@ -170,6 +210,17 @@ Match Address 141.80.167.131
|
|||
emulated-architectures))
|
||||
(guix-support? #t)))))
|
||||
|
||||
,@(if (not childhurd?)
|
||||
'()
|
||||
(list (service hurd-vm-service-type
|
||||
(hurd-vm-configuration
|
||||
(os childhurd-os)
|
||||
;; 6G should be enough to build 'hello'
|
||||
(disk-size (* 12000 (expt 2 20))) ;12G
|
||||
(memory-size 1024)
|
||||
(net-options
|
||||
(childhurd-net-options this-record))))))
|
||||
|
||||
,@(modify-services %base-services
|
||||
(guix-service-type config =>
|
||||
(guix-configuration
|
||||
|
|
Loading…
Reference in New Issue