From 4eca54b6edc9fd0ccfff472f778ab9f6b213a126 Mon Sep 17 00:00:00 2001 From: sanne Date: Tue, 5 Oct 2021 21:36:08 +0200 Subject: [PATCH] cloudapi/v2: Configurable aws bucket Fixes #1855 --- cmd/osbuild-composer/composer.go | 2 +- cmd/osbuild-composer/config.go | 5 ++++- cmd/osbuild-composer/config_test.go | 3 +++ internal/cloudapi/server.go | 4 ++-- internal/cloudapi/v2/v2.go | 12 +++++------- internal/cloudapi/v2/v2_test.go | 2 +- 6 files changed, 16 insertions(+), 12 deletions(-) diff --git a/cmd/osbuild-composer/composer.go b/cmd/osbuild-composer/composer.go index 396898c01..a089ba98b 100644 --- a/cmd/osbuild-composer/composer.go +++ b/cmd/osbuild-composer/composer.go @@ -104,7 +104,7 @@ func (c *Composer) InitWeldr(repoPaths []string, weldrListener net.Listener, } func (c *Composer) InitAPI(cert, key string, enableTLS bool, enableMTLS bool, enableJWT bool, l net.Listener) error { - c.api = cloudapi.NewServer(c.workers, c.rpm, c.distros) + c.api = cloudapi.NewServer(c.workers, c.rpm, c.distros, c.config.Koji.AWS.Bucket) c.koji = kojiapi.NewServer(c.logger, c.workers, c.rpm, c.distros) if !enableTLS { diff --git a/cmd/osbuild-composer/config.go b/cmd/osbuild-composer/config.go index 8ba4c3136..899389f0d 100644 --- a/cmd/osbuild-composer/config.go +++ b/cmd/osbuild-composer/config.go @@ -25,7 +25,7 @@ type KojiAPIConfig struct { JWTKeysURL string `toml:"jwt_keys_url"` JWTKeysCA string `toml:"jwt_ca_file"` JWTACLFile string `toml:"jwt_acl_file"` - AWSConfig AWSConfig `toml:"aws_config"` + AWS AWSConfig `toml:"aws_config"` } type AWSConfig struct { @@ -80,6 +80,9 @@ func GetDefaultConfig() *ComposerConfigFile { EnableTLS: true, EnableMTLS: true, EnableJWT: false, + AWS: AWSConfig{ + Bucket: "image-builder.service", + }, }, Worker: WorkerAPIConfig{ EnableTLS: true, diff --git a/cmd/osbuild-composer/config_test.go b/cmd/osbuild-composer/config_test.go index c75f73d2a..b204766d0 100644 --- a/cmd/osbuild-composer/config_test.go +++ b/cmd/osbuild-composer/config_test.go @@ -33,6 +33,9 @@ func TestDefaultConfig(t *testing.T) { EnableTLS: true, EnableMTLS: true, EnableJWT: false, + AWS: AWSConfig{ + Bucket: "image-builder.service", + }, }, defaultConfig.Koji) require.Equal(t, WorkerAPIConfig{ diff --git a/internal/cloudapi/server.go b/internal/cloudapi/server.go index a97d7096d..13ec1043a 100644 --- a/internal/cloudapi/server.go +++ b/internal/cloudapi/server.go @@ -16,10 +16,10 @@ type Server struct { v2 *v2.Server } -func NewServer(workers *worker.Server, rpmMetadata rpmmd.RPMMD, distros *distroregistry.Registry) *Server { +func NewServer(workers *worker.Server, rpmMetadata rpmmd.RPMMD, distros *distroregistry.Registry, awsBucket string) *Server { server := &Server{ v1: v1.NewServer(workers, rpmMetadata, distros), - v2: v2.NewServer(workers, rpmMetadata, distros), + v2: v2.NewServer(workers, rpmMetadata, distros, awsBucket), } return server } diff --git a/internal/cloudapi/v2/v2.go b/internal/cloudapi/v2/v2.go index cec83fcae..59b1121cc 100644 --- a/internal/cloudapi/v2/v2.go +++ b/internal/cloudapi/v2/v2.go @@ -28,15 +28,12 @@ import ( "github.com/osbuild/osbuild-composer/internal/worker" ) -const ( - Bucket = "image-builder.service" -) - // Server represents the state of the cloud Server type Server struct { workers *worker.Server rpmMetadata rpmmd.RPMMD distros *distroregistry.Registry + awsBucket string } type apiHandlers struct { @@ -45,11 +42,12 @@ type apiHandlers struct { type binder struct{} -func NewServer(workers *worker.Server, rpmMetadata rpmmd.RPMMD, distros *distroregistry.Registry) *Server { +func NewServer(workers *worker.Server, rpmMetadata rpmmd.RPMMD, distros *distroregistry.Registry, bucket string) *Server { server := &Server{ workers: workers, rpmMetadata: rpmMetadata, distros: distros, + awsBucket: bucket, } return server } @@ -294,7 +292,7 @@ func (h *apiHandlers) PostCompose(ctx echo.Context) error { t := target.NewAWSTarget(&target.AWSTargetOptions{ Filename: imageType.Filename(), Region: awsUploadOptions.Region, - Bucket: Bucket, + Bucket: h.server.awsBucket, Key: key, ShareWithAccounts: awsUploadOptions.ShareWithAccounts, }) @@ -322,7 +320,7 @@ func (h *apiHandlers) PostCompose(ctx echo.Context) error { t := target.NewAWSS3Target(&target.AWSS3TargetOptions{ Filename: imageType.Filename(), Region: awsS3UploadOptions.Region, - Bucket: Bucket, + Bucket: h.server.awsBucket, Key: key, }) t.ImageName = key diff --git a/internal/cloudapi/v2/v2_test.go b/internal/cloudapi/v2/v2_test.go index 248c93161..ae97c3237 100644 --- a/internal/cloudapi/v2/v2_test.go +++ b/internal/cloudapi/v2/v2_test.go @@ -28,7 +28,7 @@ func newV2Server(t *testing.T, dir string) (*v2.Server, *worker.Server) { require.NoError(t, err) require.NotNil(t, distros) - v2Server := v2.NewServer(rpmFixture.Workers, rpm, distros) + v2Server := v2.NewServer(rpmFixture.Workers, rpm, distros, "image-builder.service") require.NotNil(t, v2Server) return v2Server, rpmFixture.Workers