summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim@guixotic.coop>2026-05-11 10:27:26 +0900
committerMaxim Cournoyer <maxim@guixotic.coop>2026-05-19 14:15:27 +0900
commitb5e047ff9b400585cff590b7ee2f1629b24f6148 (patch)
treed3e27e8b3534dd4dcca1ec495c567e87b8863d35 /doc
parent115e10921ee145d10fdba2c00daff5f071ad4537 (diff)
machine: hetzner: Introduce the `make-hetzner-os' procedure.
All the performance and general purpose newer x86 Hetzner server types like the 'cpx22' now require an EFI bootloader, while older ones like the 'cx23' still expect a BIOS bootloader. Instead of exposing the user to errors when selecting the correct operating system template to use, provide a procedure that takes returning one based on the server type name. * gnu/machine/hetzner.scm (%hetzner-os-arm): Rename to... (%hetzner-os-arm/efi): ... this. Adjust for variable name change. (%hetzner-os-x86): Rename to... (%hetzner-os-x86/bios): ... this. Adjust for variable name change. (%hetzner-os-x86/efi): New variable. (server-type-name->arch, server-type-name->bootloader) (make-hetzner-os): New procedures. (%hetzner-os-x86, %hetzner-os-x86): Deprecate variables. (hetzner-machine-bootstrap-os-form): Use the server type name to infer whether the EFI or BIOS bootloader should be used, along the EFI partition. * doc/guix.texi (Invoking guix deploy): Updated doc. Fixes: #8523 Change-Id: I331a76e12bb3c19f5664dcbe4437a8d1cfe1d363
Diffstat (limited to 'doc')
-rw-r--r--doc/guix.texi48
1 files changed, 24 insertions, 24 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index 67c81ebe836..9df177d13ae 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -49,7 +49,7 @@ Copyright @copyright{} 2017 humanitiesNerd@*
49Copyright @copyright{} 2017, 2021 Christine Lemmer-Webber@* 49Copyright @copyright{} 2017, 2021 Christine Lemmer-Webber@*
50Copyright @copyright{} 2017, 2018, 2019, 2020, 2021, 2022 Marius Bakke@* 50Copyright @copyright{} 2017, 2018, 2019, 2020, 2021, 2022 Marius Bakke@*
51Copyright @copyright{} 2017, 2019, 2020, 2022 Hartmut Goebel@* 51Copyright @copyright{} 2017, 2019, 2020, 2022 Hartmut Goebel@*
52Copyright @copyright{} 2017, 2019--2025 Maxim Cournoyer@* 52Copyright @copyright{} 2017, 2019--2026 Maxim Cournoyer@*
53Copyright @copyright{} 2017–2022 Tobias Geerinckx-Rice@* 53Copyright @copyright{} 2017–2022 Tobias Geerinckx-Rice@*
54Copyright @copyright{} 2017 George Clemmer@* 54Copyright @copyright{} 2017 George Clemmer@*
55Copyright @copyright{} 2017 Andy Wingo@* 55Copyright @copyright{} 2017 Andy Wingo@*
@@ -50528,36 +50528,36 @@ server.
50528Once the server has been provisioned and SSH is available, deployment 50528Once the server has been provisioned and SSH is available, deployment
50529continues by delegating it to the @code{managed-host-environment-type}. 50529continues by delegating it to the @code{managed-host-environment-type}.
50530 50530
50531Servers on the Hetzner Cloud service can be provisioned on the AArch64 50531Depending on their type, x86_64 or AArch64 servers on the Hetzner Cloud
50532architecture using UEFI boot mode, or on the x86_64 architecture using 50532service can be provisioned using BIOS or UEFI boot mode. The @code{(gnu
50533BIOS boot mode. The @code{(gnu machine hetzner)} module exports the 50533machine hetzner)} module exports the @code{make-hetzner-os} procedure,
50534@code{%hetzner-os-arm} and @code{%hetzner-os-x86} operating systems that 50534which takes the server type string as an argument (e.g. @code{"cx23"})
50535are compatible with those two architectures, and can be used as a base 50535and returns a base @code{operating-system} definition compatible with
50536for defining your custom operating system. 50536it.
50537 50537
50538The following example shows the definition of two machines that are 50538The following example shows the definition of two machines that are
50539deployed on the Hetzner Cloud service. The first one uses the 50539deployed on the Hetzner Cloud service. The first one for an ARM server
50540@code{%hetzner-os-arm} operating system to run a server with 16 shared 50540type that has 16 shared vCPUs and 32 GB of RAM, the second for an x86_64
50541vCPUs and 32 GB of RAM on the @code{aarch64} architecture, the second 50541server type that has 16 shared vCPUs and 32 GB of RAM.
50542one uses the @code{%hetzner-os-x86} operating system on a server with 16
50543shared vCPUs and 32 GB of RAM on the @code{x86_64} architecture.
50544 50542
50545@lisp 50543@lisp
50546(use-modules (gnu machine) 50544(use-modules (gnu machine)
50547 (gnu machine hetzner)) 50545 (gnu machine hetzner))
50548 50546
50549(list (machine 50547(list (let ((server-type "cax41"))
50550 (operating-system %hetzner-os-arm) 50548 (machine
50551 (environment hetzner-environment-type) 50549 (operating-system (make-hetzner-os server-type))
50552 (configuration (hetzner-configuration 50550 (environment hetzner-environment-type)
50553 (server-type "cax41") 50551 (configuration (hetzner-configuration
50554 (ssh-key "/home/charlie/.ssh/id_rsa")))) 50552 (server-type server-type)
50555 (machine 50553 (ssh-key "/home/charlie/.ssh/id_rsa")))))
50556 (operating-system %hetzner-os-x86) 50554 (let ((server-type "cpx51"))
50557 (environment hetzner-environment-type) 50555 (machine
50558 (configuration (hetzner-configuration 50556 (operating-system (make-hetzner-os server-type))
50559 (server-type "cpx51") 50557 (environment hetzner-environment-type)
50560 (ssh-public-key "/home/charlie/.ssh/id_rsa.pub"))))) 50558 (configuration (hetzner-configuration
50559 (server-type server-type)
50560 (ssh-public-key "/home/charlie/.ssh/id_rsa.pub"))))))
50561@end lisp 50561@end lisp
50562 50562
50563@vindex GUIX_HETZNER_API_TOKEN 50563@vindex GUIX_HETZNER_API_TOKEN