summaryrefslogtreecommitdiff
path: root/gnu/services/virtualization.scm
Commit message (Collapse)AuthorAge
* services: secret-service: Turn into a Shepherd service.Ludovic Courtès2021-12-12
| | | | | | | | | | * gnu/services/virtualization.scm (secret-service-activation): Remove. (secret-service-shepherd-services): New procedure. (secret-service-type)[extensions]: Remove ACTIVATION-SERVICE-TYPE extension. Add SHEPHERD-ROOT-SERVICE-TYPE and USER-PROCESSES-SERVICE-TYPE extensions. * gnu/build/secret-service.scm (delete-file*): New procedure. (secret-service-receive-secrets): Use it.
* services: Accept <inferior-package>s in lieu of <package>s.Tobias Geerinckx-Rice2021-11-30
| | | | | | | | | | | | | | | | | | | | | | | | | * gnu/services/authentication.scm (fprintd-configuration) (nslcd-configuration): Substitute file-like objects for package ones. * gnu/services/cgit.scm (cgit-configuration, opaque-cgit-configuration): Likewise. * gnu/services/cups.scm (package-list?, cups-configuration): Likewise. * gnu/services/dns.scm (verify-knot-configuration) (ddclient-configuration): Likewise. * gnu/services/docker.scm (docker-configuration): Likewise. * gnu/services/file-sharing.scm (transmission-daemon-configuration): Likewise. * gnu/services/getmail.scm (getmail-configuration): Likewise. * gnu/services/mail.scm (dovecot-configuration) (opaque-dovecot-configuration): Likewise. * gnu/services/messaging.scm (prosody-configuration) (opaque-prosody-configuration): Likewise. * gnu/services/monitoring.scm (zabbix-server-configuration) (zabbix-agent-configuration): Likewise. * gnu/services/networking.scm (opendht-configuration): Likewise. * gnu/services/pm.scm (tlp-configuration): Likewise. * gnu/services/telephony.scm (jami-configuration): Likewise. * gnu/services/virtualization.scm (libvirt-configuration) (qemu-guest-agent-configuration): Likewise. * gnu/services/vpn.scm (openvpn-client-configuration): Likewise.
* services: Add qemu-guest-agent service.Timotej Lazar2021-11-12
| | | | | | | | | | * gnu/services/virtualization.scm (<qemu-guest-agent-configuration>): New record. (qemu-guest-agent-shepherd-service): New procedure. (qemu-guest-agent-service-type): New variable. * doc/guix.texi (Virtualization Services): Document it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* services: libvirt: Change unix-sock-group default.Brice Waegeneire2021-09-04
| | | | | | | | | When accessing libvrtd remotely, polkit can't be used unless you are logged as root. Instead allow libvirt groups member access to the control socket. * gnu/services/virtualization.scm (libvirt-configuration) [unix-sock-group]: Change default from "root" to "libvirt".
* services: libvirt: Add qemu field.Brice Waegeneire2021-09-04
| | | | | | | * gnu/services/virtualization.scm (libvirt-configuration): Add 'qemu' field. (libvirt-service-type): Replace 'qemu' package with the one specified in the service configuration.
* services: hurd-vm: Use the new 'targets' field of <bootloader-configuration>.Ludovic Courtès2021-08-30
| | | | | * gnu/services/virtualization.scm (%hurd-vm-operating-system): Use 'targets' instead of 'target' for the 'bootloader-configuration' field.
* services: Remove i486 qemu target.Efraim Flashner2021-08-29
| | | | | | | The i486 target has been removed from qemu since at least 5.2.0. * gnu/services/virtualization.scm (%i486): Remove variable. (%qemu-platforms): Remove it.
* services: qemu-binfmt: Preserve argv[0] by default.Ludovic Courtès2021-07-10
| | | | | | | | Previously, argv[0] would be replaced by the absolute file name of the executable. This could cause discrepancies, for example in the Coreutils test suite: <https://issues.guix.gnu.org/49485>. * gnu/services/virtualization.scm (<qemu-platform>)[flags]: Default to "FP".
* services/qemu-binfmt: Use the F flag and the static output of QEMU.Maxim Cournoyer2021-03-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes <https://issues.guix.gnu.org/36117>. Before this change, the 'binfmt_misc' entries registered for QEMU would not be usable in container contexts outside of guix-daemon (without manually bind mounting file names). For example: $ docker run --rm arm32v7/debian true standard_init_linux.go:207: exec user process caused "no such file or directory" After this change, any container can make use of the QEMU binfmt_misc registrations, as their corresponding QEMU static binaries are fully pre-loaded by the kernel. * gnu/services/virtualization.scm (<qemu-platform>): Define using 'define-record-type*'. [flags]: New field, which defaults to "F" (fix binary). (%i386, %i486, %alpha, %arm, %armeb, %sparc, %sparc32plus, %ppc, %ppc64) (%ppc64le, %m68k, %mips, %mipsel, %mipsn32, %mipsn32el, %mips64, %mips64el) (%riscv32, %riscv64, %sh4, %sh4eb, %s390x, %aarch64, %hppa): Adjust. (qemu-binfmt-guix-chroot): Remove variable. (qemu-binfmt-service-type): Remove the qemu-binfmt-guix-chroot extension. * gnu/services/qemu-binfmt (qemu-platform->binfmt): Use the static output of QEMU. * doc/contributing.texi (Submitting Patches): Update doc. * doc/guix.texi (Virtualization Services): Update doc.
* services: qemu-binfmt: 'guix-support?' defaults to #t.Stefan2021-01-16
| | | | | | | | | * gnu/services/virtualization.scm (qemu-binfmt-service-type)[guix-support?]: Change the default from #f to #t. * doc/guix.texi (Transparent Emulation with QEMU): Change the default of ‘guix-support?’ from #f to #t. Describe the implication of setting it to #f. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
* services: hurd-vm: Respect hurd-vm-configuration's disk-size.Jan (janneke) Nieuwenhuizen2021-01-14
| | | | | | | This is a follow-up to commit 859b362f81598830d7ff276b96a8724aee3c4db7. * gnu/services/virtualization.scm (hurd-vm-disk-image): Use diks-size from config to set image's size.
* services: hurd-vm: Avoid circular dependency with (gnu system images hurd).Ludovic Courtès2020-12-07
| | | | | | * gnu/services/virtualization.scm (hurd-vm-disk-image): Use 'lookup-image-type-by-name' instead of referring to 'hurd-disk-image' from (gnu system images hurd).
* services: guix: Make /etc/guix/acl really declarative by default.Ludovic Courtès2020-10-25
| | | | | | | | | | | | Fixes <https://bugs.gnu.org/39819>. Reported by Maxim Cournoyer <maxim.cournoyer@gmail.com>. * gnu/services/base.scm (substitute-key-authorization): Symlink DEFAULT-ACL to /etc/guix/acl unconditionally. Add code to optionally back up /etc/guix/acl if it was possibly modified by hand. * doc/guix.texi (Base Services): Clarify the effect of setting 'authorize-keys?' to true. Mention the backup. Give an example showing how to authorize substitutes from another server.
* services: hurd-vm: Add 'gdb-minimal' to the default OS.Ludovic Courtès2020-10-09
| | | | | * gnu/services/virtualization.scm (%hurd-vm-operating-system)[packages]: New field.
* services: hurd-vm: Add childhurd user to kvm group.Jan (janneke) Nieuwenhuizen2020-09-30
| | | | | | | | | This is a follow-up to commit d692ebf98077d6b651d426aba92bf2a38599c4dc. * gnu/services/virtualization.scm (%hurd-vm-accounts)[supplementary-groups]: Add ’kvm’. * gnu/services/virtualization.scm (hurd-vm-shepherd-service): Use #:group "kvm"
* services: virtualization: Use a compressed qcow2 hurd disk-image.Mathieu Othacehe2020-09-30
| | | | | * gnu/services/virtualization.scm (hurd-vm-disk-image): Use 'compressed-qcow2 format.
* services: secret-service: Add initial client/server handshake.Ludovic Courtès2020-09-29
| | | | | | | | | | | | | | | This allows the client running on the host to know when it's actually connect to the server running in the guest. Failing that, the client would connect right away to QEMU and send secrets even though the server is not running yet in the guest, which is unreliable. * gnu/build/secret-service.scm (secret-service-send-secrets): Add #:handshake-timeout. Read from SOCK an initial message from the server. Return #f on error. (secret-service-receive-secrets): Send 'secret-service-server' message to the client. Close SOCK upon timeout. * gnu/services/virtualization.scm (hurd-vm-shepherd-service): 'start' method returns #f when 'secret-service-send-secrets' returns #f.
* services: secret-service: Move instance last in the list of services.Ludovic Courtès2020-09-29
| | | | | * gnu/services/virtualization.scm (secret-service-operating-system): Add the SECRET-SERVICE-TYPE instance to the end of the list.
* services: hurd-vm: Pass "-no-reboot" when spawning the Hurd VM.Ludovic Courtès2020-09-29
| | | | | * gnu/services/virtualization.scm (hurd-vm-shepherd-service)[vm-command]: Add "--no-reboot".
* services: hurd-vm: Initialize the guest's SSH/Guix keys at activation time.Ludovic Courtès2020-09-29
| | | | | | | | | | * gnu/services/virtualization.scm (initialize-hurd-vm-substitutes) (hurd-vm-activation): New procedures. (hurd-vm-service-type)[extensions]: Add ACTIVATION-SERVICE-TYPE extension. * doc/guix.texi (Transparent Emulation with QEMU): Mention GNU/Hurd. (The Hurd in a Virtual Machine): Explain which files are automatically installed and mention offloading.
* services: hurd-vm: Check whether /dev/kvm exists at run time.Ludovic Courtès2020-09-29
| | | | | | | This change allows a childhurd to run within Guix System in a VM. * gnu/services/virtualization.scm (hurd-vm-shepherd-service)[vm-command]: Stage the 'file-exists?' call.
* services: childhurd: Tweak description.Ludovic Courtès2020-09-29
| | | | | * gnu/services/virtualization.scm (hurd-vm-service-type)[description]: Mention "childhurd".
* services: hurd-vm: Run QEMU as an unprivileged user.Ludovic Courtès2020-09-29
| | | | | | | Until qemu was running as "root", which is unnecessary. * gnu/services/virtualization.scm (%hurd-vm-accounts): New variable. (hurd-vm-service-type)[extensions]: Add ACCOUNT-SERVICE-TYPE extension.
* services: childhurd: Always include the secret-service.Jan (janneke) Nieuwenhuizen2020-09-02
| | | | | | | | | | * gnu/services/virtualization.scm (secret-service-operating-system): New procedure. (hurd-vm-disk-image): Use it to ensure a Childhurd always includes the secret-service. (%hurd-vm-operating-system): Remove secret-service. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
* services: childhurd: Support installing secrets from the host.Jan (janneke) Nieuwenhuizen2020-09-01
| | | | | | | * gnu/services/virtualization.scm (%hurd-vm-operating-system): Add secret-service. (hurd-vm-shepherd-service): Use it to install secrets. * doc/guix.texi (The Hurd in a Virtual Machine): Document it.
* services: Add secret-service-type.Jan (janneke) Nieuwenhuizen2020-09-01
| | | | | | | | | | | | This adds a "secret-service" that can be added to a Childhurd VM to receive out-of-band secrets (keys) sent from the host. Co-authored-by: Ludovic Courtès <ludo@gnu.org> * gnu/services/virtualization.scm (secret-service-activation): New procedure. (secret-service-type): New variable. * gnu/build/secret-service.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
* services: virtualization: Export hurd-vm-configuration accessors.Jan (janneke) Nieuwenhuizen2020-06-28
| | | | | | | | | | | | * gnu/services/virtualization.scm (hurd-vm-id, hurd-vm-options): Rename export to ... (hurd-vm-configuration-id, hurd-vm-configuration-options): ... these correct accessor names. (hurd-vm-configuration?, hurd-vm-configuration-os, hurd-vm-configuration-qemu, hurd-vm-configuration-image, hurd-vm-configuration-disk-size, hurd-vm-configuration-memory-size, hurd-vm-configuration-options, hurd-vm-configuration-id, hurd-vm-configuration-net-options): Export record predicate and accessors.
* services: childhurd: Adjust for hurd-disk-image move.Marius Bakke2020-06-25
| | | | | | This is a follow-up to commit b904b59ce592c89dfb4675a8c06757afed6738a0. * gnu/services/virtualization.scm: Import (gnu system images hurd).
* services: childhurd: Support more than one instance.Jan (janneke) Nieuwenhuizen2020-06-21
| | | | | | | | | | | * gnu/services/virtualization.scm (<hurd-vm-configuration>)[options]: Remove "--hda" option. [id,net-options]: New fields. (hurd-vm-net-options): New procedure. Parameterize port forwarding with ID. * gnu/services/virtualization.scm (hurd-vm-shepherd-service): Use them. Parameterize provision with ID, if set. Hardcode "--hda" option for image. * doc/guix.texi (Virtualization Services): Document new fields. Update for hardcoding of "--hda".
* services: Add 'hurd-vm service-type'.Jan (janneke) Nieuwenhuizen2020-06-14
| | | | | | | | | | * gnu/services/virtualization.scm (hurd-vm-shepherd-service, hurd-vm-disk-image): New procedures. (%hurd-vm-operating-system, hurd-vm-service-type): New variables. (<hurd-vm-configuration>): New record type. * doc/guix.texi (Virtualization Services): Document it. * gnu/services/shepherd.scm (scm->go): Use let-system, remove FIXME. Fixes fixes cross-building of shepherd modules for the Hurd image.
* services: libvirt-configuration: Fix grammar of "allows to select" to "allowsVagrant Cascadian2020-04-12
| | | | | | selecting". * gnu/services/virtualization (libvirt-configuration): Fix grammar.
* services: virtualization: Add riscv32 and riscv64 to qemu platforms.Vagrant Cascadian2020-02-01
| | | | | | * gnu/services/virtualization (%riscv32): New variable. (%riscv64): New variable. (%qemu-platforms): Add riscv32 and riscv64.
* services: libvirtd: Provide ip binary at runtime.Miguel Ángel Arruga Vivas2019-11-05
| | | | | | | * gnu/services/virtualization.scm (libvirt-shepherd-service): Add sbin to the PATH variable, as ip binary is installed there. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* services: virtualization: Change libvirtd use syslog by default.Christopher Baines2019-09-21
| | | | | | | | | As defaulting by stderr, along with the shepherd service not directing the output to a log file makes seeing the output difficult, compared to logging to syslog. * gnu/services/virtualization.scm (libvirt-configuration)[log-outputs]: Change default from "3:stderr" to "3:syslog:libvirtd".
* services: libvirtd: Use '/run/current-system/profile/bin' as PATH.宋文武2019-09-11
| | | | | | | This is a followup to ef640db2f509f51ebfe3a6a66ba837ef3103bbb7. * gnu/services/virtualization.scm (libvirt-shepherd-service): Set '#:environment-variables' for 'make-forkexec-constructor'.
* gnu: libvirt: Don't wrap with PATH.宋文武2019-09-11
| | | | | | | | | | | This reverts commit 903e051a71467bc96a054c9b4ed89348fdae8977 to fix <https://bugs.gnu.org/31365>. The full path of the 'ip' command is already embedded, and we want to search 'qemu' in PATH. * gnu/packages/virtualization.scm (libvirt): Remove 'wrap-libvirtd phase. Add configure flags to run qemu as 'nobody:kvm'. * gnu/services/virtualization.scm (libvirt-service-type): Add 'qemu' to the system profile.
* gnu: services: Export virtlog-configuration.Julien Lepiller2018-07-14
| | | | * gnu/services/virtualization.scm (virtlog-configuration): Export.
* services: qemu-binfmt: Extend guix-daemon with extra chroot directories.Ludovic Courtès2018-01-11
| | | | | | | | | | | | Fixes <https://bugs.gnu.org/20239>. * gnu/services/virtualization.scm (<qemu-binfmt-configuration>)[guix-support?]: New field. (qemu-binfmt-guix-chroot): New procedure. (qemu-binfmt-service-type)[extensions]: Add GUIX-SERVICE-TYPE. * doc/guix.texi (Virtualization Services): Document 'guix-support?'. (Additional Build Options): Mention binfmt_misc and offloading under '--system'.
* services: Add qemu-binfmt.Ludovic Courtès2018-01-11
| | | | | | | | | | | | | | | | | | | * gnu/services/virtualization.scm (<qemu-platform>): New record type. (bv): New macro. (%i386, %i486, %alpha, %arm, %armeb, %sparc, %sparc32plus) (%ppc, %ppc64, %ppc64le, %m68k, %mips, %mipsel, %mipsn32el) (%mips64, %mips64el, %sh4, %sh4eb, %s390x, %aarch64, %hppa) (%qemu-platforms): New variables. (lookup-qemu-platforms): New procedure. (<qemu-binfmt-configuration>): New record type. (qemu-platform->binfmt): New procedures. (%binfmt-mount-point, %binfmt-register-file, %binfmt-file-system) (qemu-binfmt-service-type): New variables. (qemu-binfmt-shepherd-services): New procedures. * doc/guix.texi (Virtualization Services): Add "Transparent Emulation with QEMU" heading. binfmt fixlet
* services: Add libvirt servicesRyan Moe2017-08-23
* gnu/services/virtualization.scm: New file. * doc/guix.texi (Virtualization Services): Document it. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. Signed-off-by: Christopher Baines <mail@cbaines.net>