cloudapi/v2: Configurable aws bucket

Fixes #1855
This commit is contained in:
sanne 2021-10-05 21:36:08 +02:00 committed by Tom Gundersen
parent b6c08f3056
commit 4eca54b6ed
6 changed files with 16 additions and 12 deletions

View file

@ -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 {

View file

@ -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,

View file

@ -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{

View file

@ -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
}

View file

@ -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

View file

@ -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