summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/guix.texi17
-rw-r--r--gnu/services/guix.scm18
2 files changed, 34 insertions, 1 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index b75fce4dbc..e8fb346d73 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -31017,6 +31017,23 @@ coordinator.
@end table
@end deftp
+@deftp {Data Type} guix-build-coordinator-agent-dynamic-auth
+Data type representing an agent authenticating with a coordinator via a
+dyanmic auth token and agent name.
+
+@table @asis
+@item @code{agent-name}
+Name of an agent, this is used to match up to an existing entry in the
+database if there is one. When no existing entry is found, a new entry
+is automatically added.
+
+@item @code{token}
+Dynamic auth token, this is created and stored in the coordinator
+database, and is used by the agent to authenticate.
+
+@end table
+@end deftp
+
The Guix Build Coordinator package contains a script to query an
instance of the Guix Data Service for derivations to build, and then
submit builds for those derivations to the coordinator. The service
diff --git a/gnu/services/guix.scm b/gnu/services/guix.scm
index b86e20360b..b0d2c05bcf 100644
--- a/gnu/services/guix.scm
+++ b/gnu/services/guix.scm
@@ -71,6 +71,11 @@
guix-build-coordinator-agent-password-file-auth-uuid
guix-build-coordinator-agent-password-file-auth-password-file
+ guix-build-coordinator-agent-dynamic-auth
+ guix-build-coordinator-agent-dynamic-auth?
+ guix-build-coordinator-agent-dynamic-auth-agent-name
+ guix-build-coordinator-agent-dynamic-auth-token
+
guix-build-coordinator-agent-service-type
guix-build-coordinator-queue-builds-configuration
@@ -168,6 +173,13 @@
(password-file
guix-build-coordinator-agent-password-file-auth-password-file))
+(define-record-type* <guix-build-coordinator-agent-dynamic-auth>
+ guix-build-coordinator-agent-dynamic-auth
+ make-guix-build-coordinator-agent-dynamic-auth
+ guix-build-coordinator-agent-dynamic-auth?
+ (agent-name guix-build-coordinator-agent-dynamic-auth-agent-name)
+ (token guix-build-coordinator-agent-dynamic-auth-token))
+
(define-record-type* <guix-build-coordinator-queue-builds-configuration>
guix-build-coordinator-queue-builds-configuration
make-guix-build-coordinator-queue-builds-configuration
@@ -365,7 +377,11 @@
uuid password-file)
#~(#$(string-append "--uuid=" uuid)
#$(string-append "--password-file="
- password-file))))
+ password-file)))
+ (($ <guix-build-coordinator-agent-dynamic-auth>
+ agent-name token)
+ #~(#$(string-append "--name=" agent-name)
+ #$(string-append "--dynamic-auth-token=" token))))
#$(simple-format #f "--max-parallel-builds=~A"
max-parallel-builds)
#$@(if derivation-substitute-urls