OSBuild - add support for generic S3 services
jobimpl-osbuild --------------- Add GenericS3Creds to struct Add method to create AWS with Endpoint for Generic S3 (with its own credentials file) Move uploading to S3 and result handling to a separate method (along with the special VMDK handling) adjust the AWS S3 case to the new method Implement a new case for uploading to a generic S3 service awscloud -------- Add wrapper methods for endpoint support Set the endpoint to the AWS session Set s3ForcePathStyle to true if endpoint was set Target ------ Define a new target type for the GenericS3Target and Options Handle unmarshaling of the target options and result for the Generic S3 Weldr ----- Add support for only uploading to AWS S3 Define new structures for AWS S3 and Generic S3 (based on AWS S3) Handle unmarshaling of the providers settings' upload settings main ---- Add a section in the main config for the Generic S3 service for credentials If provided pass the credentials file name to the osbuild job implementation Upload Utility -------------- Add upload-generic-s3 utility Makefile ------ Do not fail if the bin directory already exists Tests ----- Add test cases for both AWS and a generic S3 server Add a generic s3_test.sh file for both test cases and add it to the tests RPM spec Adjust the libvirt test case script to support already created images GitLabCI - Extend the libvirt test case to include the two new tests
This commit is contained in:
parent
01880a76a2
commit
bee14bf392
15 changed files with 684 additions and 137 deletions
20
internal/target/generic_s3_target.go
Normal file
20
internal/target/generic_s3_target.go
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
package target
|
||||
|
||||
type GenericS3TargetOptions struct {
|
||||
AWSS3TargetOptions
|
||||
Endpoint string `json:"endpoint"`
|
||||
}
|
||||
|
||||
func (GenericS3TargetOptions) isTargetOptions() {}
|
||||
|
||||
func NewGenericS3Target(options *GenericS3TargetOptions) *Target {
|
||||
return newTarget("org.osbuild.generic.s3", options)
|
||||
}
|
||||
|
||||
type GenericS3TargetResultOptions AWSS3TargetResultOptions
|
||||
|
||||
func (GenericS3TargetResultOptions) isTargetResultOptions() {}
|
||||
|
||||
func NewGenericS3TargetResult(options *GenericS3TargetResultOptions) *TargetResult {
|
||||
return newTargetResult("org.osbuild.generic.s3", options)
|
||||
}
|
||||
|
|
@ -83,6 +83,8 @@ func UnmarshalTargetOptions(targetName string, rawOptions json.RawMessage) (Targ
|
|||
options = new(VMWareTargetOptions)
|
||||
case "org.osbuild.oci":
|
||||
options = new(OCITargetOptions)
|
||||
case "org.osbuild.generic.s3":
|
||||
options = new(GenericS3TargetOptions)
|
||||
default:
|
||||
return nil, errors.New("unexpected target name")
|
||||
}
|
||||
|
|
|
|||
|
|
@ -55,8 +55,10 @@ func UnmarshalTargetResultOptions(trName string, rawOptions json.RawMessage) (Ta
|
|||
options = new(AzureImageTargetResultOptions)
|
||||
case "org.osbuild.oci":
|
||||
options = new(OCITargetResultOptions)
|
||||
case "org.osbuild.generic.s3":
|
||||
options = new(GenericS3TargetResultOptions)
|
||||
default:
|
||||
return nil, fmt.Errorf("Unexpected target result name: %s", trName)
|
||||
return nil, fmt.Errorf("unexpected target result name: %s", trName)
|
||||
}
|
||||
err := json.Unmarshal(rawOptions, options)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue