Add support for importing the GCE image into GCP using Weldr API. The credentials to be used can be specified in the upload settings and will be then used by the worker to authenticate with GCP. The GCP target credentials are passed to Weldr API as base64 encoded content of the GCP credentials JSON file. The reason is that the JSON file contains many values and its format could change in the future. This way, the Weldr API does not rely on the credentials file content format in any way. Add a new test case for the GCP upload via Weldr and run it in CI. Signed-off-by: Tomas Hozza <thozza@redhat.com>
32 lines
1 KiB
Go
32 lines
1 KiB
Go
package target
|
|
|
|
type GCPTargetOptions struct {
|
|
Filename string `json:"filename"`
|
|
Region string `json:"region"`
|
|
Os string `json:"os"` // not exposed in cloudapi for now
|
|
Bucket string `json:"bucket"`
|
|
Object string `json:"object"`
|
|
ShareWithAccounts []string `json:"shareWithAccounts,omitempty"`
|
|
|
|
// If provided, these credentials are used by the worker to import the image
|
|
// to GCP. If not provided, the worker will try to authenticate using the
|
|
// credentials from worker's configuration.
|
|
Credentials []byte `json:"credentials,omitempty"`
|
|
}
|
|
|
|
func (GCPTargetOptions) isTargetOptions() {}
|
|
|
|
func NewGCPTarget(options *GCPTargetOptions) *Target {
|
|
return newTarget("org.osbuild.gcp", options)
|
|
}
|
|
|
|
type GCPTargetResultOptions struct {
|
|
ImageName string `json:"image_name"`
|
|
ProjectID string `json:"project_id"`
|
|
}
|
|
|
|
func (GCPTargetResultOptions) isTargetResultOptions() {}
|
|
|
|
func NewGCPTargetResult(options *GCPTargetResultOptions) *TargetResult {
|
|
return newTargetResult("org.osbuild.gcp", options)
|
|
}
|