services: Add xen-guest-agent-service-type.

* gnu/services/virtualization.scm (xen-guest-agent-configuration,
  xen-guest-agent-service-type): New variables.
* doc/guix.texi: Document them.

Change-Id: Id1b1f4fc2b193d73f4401e74a214222dfe1b6ea7
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
Karl Hallsby 2025-01-08 14:19:01 -06:00 committed by Ludovic Courtès
parent a036a455da
commit 8d7578ba6c
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
2 changed files with 57 additions and 1 deletions

View file

@ -113,7 +113,9 @@
qemu-guest-agent-service-type
xe-guest-utilities-configuration
xe-guest-utilities-service-type))
xe-guest-utilities-service-type
xen-guest-agent-configuration
xen-guest-agent-service-type))
(define (uglify-field-name field-name)
(let ((str (symbol->string field-name)))
@ -1083,6 +1085,36 @@ specified, the QEMU default path is used."))
(default-value (xe-guest-utilities-configuration))
(description "Run the Xen guest management utilities.")))
(define-configuration/no-serialization xen-guest-agent-configuration
(package
(package xen-guest-agent)
"Xen guest agent package."))
(define (generate-xen-guest-agent-documentation)
"Generate documentation for xen-guest-agent-configuration fields"
(generate-documentation
`((xen-guest-agent-configuration ,xen-guest-agent-configuration-fields))
'xen-guest-agent-configuration))
(define (xen-guest-agent-shepherd-service config)
(list
(shepherd-service
(provision '(xen-guest-agent))
(requirement '(networking user-processes udev))
(documentation "Run the Xen guest management agent.")
(start #~(make-forkexec-constructor
(list #$(file-append xen-guest-agent "/bin/xen-guest-agent"))))
(stop #~(make-kill-destructor)))))
(define xen-guest-agent-service-type
(service-type
(name 'xen-guest-agent)
(extensions
(list (service-extension shepherd-root-service-type
xen-guest-agent-shepherd-service)))
(default-value (xen-guest-agent-configuration))
(description "Run the Xen guest management utilities.")))
;;;
;;; Secrets for guest VMs.