From ea05f400e640de3f0afcceefc03d58b4f391f03c Mon Sep 17 00:00:00 2001 From: "Brian C. Lane" Date: Thu, 13 Jul 2023 08:19:27 -0700 Subject: [PATCH] cloudapi: Listen on /run/cloudapi/api.socket Add a local socket for communicating with the cloudapi. It is started by osbuild-composer.socket and is located at /run/cloudapi/api.socket cloudapi requests can be passed to it using curl like this: curl -k --unix-socket /run/cloudapi/api.socket --header 'Content-Type: application/json' \ --data request.json http://localhost/api/image-builder-composer/v2/compose A simple request.json looks like this: { "distribution": "fedora-38", "image_request": { "architecture": "x86_64", "image_type": "guest-image", "upload_options": {}, "repositories": [ { "name": "fedora", "metalink": "https://mirrors.fedoraproject.org/metalink?repo=fedora-38&arch=x86_64", "check_gpg": false }, { "name": "updates", "metalink": "https://mirrors.fedoraproject.org/metalink?repo=updates-released-f38&arch=x86_64", "check_gpg": false } ] } } --- cmd/osbuild-composer/main.go | 10 ++++++++-- distribution/osbuild-composer.socket | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/cmd/osbuild-composer/main.go b/cmd/osbuild-composer/main.go index 0add590f5..c8df14236 100644 --- a/cmd/osbuild-composer/main.go +++ b/cmd/osbuild-composer/main.go @@ -91,14 +91,20 @@ func main() { } if l, exists := listeners["osbuild-composer.socket"]; exists { - if len(l) != 1 { - logrus.Fatal("The osbuild-composer.socket unit is misconfigured. It should contain only one socket.") + if len(l) != 2 { + logrus.Fatal("The osbuild-composer.socket unit is misconfigured. It should contain two sockets.") } err = composer.InitWeldr(repositoryConfigs, l[0], config.weldrDistrosImageTypeDenyList()) if err != nil { logrus.Fatalf("Error initializing weldr API: %v", err) } + + // Start cloudapi using the 2nd socket and no certs + err = composer.InitAPI(ServerCertFile, ServerKeyFile, false, false, false, l[1]) + if err != nil { + logrus.Fatalf("Error initializing Cloud API using local socket: %v", err) + } } if l, exists := listeners["osbuild-local-worker.socket"]; exists { diff --git a/distribution/osbuild-composer.socket b/distribution/osbuild-composer.socket index fe5dd229f..90f7547b3 100644 --- a/distribution/osbuild-composer.socket +++ b/distribution/osbuild-composer.socket @@ -3,6 +3,7 @@ Description=OSBuild Composer Weldr API socket [Socket] ListenStream=/run/weldr/api.socket +ListenStream=/run/cloudapi/api.socket SocketGroup=weldr SocketMode=660