Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 30 additions & 25 deletions gangplank/cosa/cosa_v1.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ type Build struct {
FedoraCoreOsParentVersion string `json:"fedora-coreos.parent-version,omitempty"`
Gcp *Gcp `json:"gcp,omitempty"`
GitDirty string `json:"coreos-assembler.config-dirty,omitempty"`
IbmCloud *Cloudartifact `json:"ibmcloud,omitempty"`
ImageInputChecksum string `json:"coreos-assembler.image-input-checksum,omitempty"`
InputHasOfTheRpmOstree string `json:"rpm-ostree-inputhash"`
Koji *Koji `json:"koji,omitempty"`
Expand All @@ -69,38 +70,42 @@ type Build struct {
OverridesActive bool `json:"coreos-assembler.overrides-active,omitempty"`
PkgdiffAgainstParent PackageSetDifferences `json:"parent-pkgdiff,omitempty"`
PkgdiffBetweenBuilds PackageSetDifferences `json:"pkgdiff,omitempty"`
PowerVirtualServer *Cloudartifact `json:"powervs,omitempty"`
ReleasePayload *Image `json:"release-payload,omitempty"`
}

type BuildArtifacts struct {
Aliyun *Artifact `json:"aliyun,omitempty"`
Aws *Artifact `json:"aws,omitempty"`
Azure *Artifact `json:"azure,omitempty"`
AzureStack *Artifact `json:"azurestack,omitempty"`
Dasd *Artifact `json:"dasd,omitempty"`
DigitalOcean *Artifact `json:"digitalocean,omitempty"`
Exoscale *Artifact `json:"exoscale,omitempty"`
Gcp *Artifact `json:"gcp,omitempty"`
IbmCloud *Artifact `json:"ibmcloud,omitempty"`
Initramfs *Artifact `json:"initramfs,omitempty"`
Iso *Artifact `json:"iso,omitempty"`
Kernel *Artifact `json:"kernel,omitempty"`
LiveInitramfs *Artifact `json:"live-initramfs,omitempty"`
LiveIso *Artifact `json:"live-iso,omitempty"`
LiveKernel *Artifact `json:"live-kernel,omitempty"`
LiveRootfs *Artifact `json:"live-rootfs,omitempty"`
Metal *Artifact `json:"metal,omitempty"`
Metal4KNative *Artifact `json:"metal4k,omitempty"`
OpenStack *Artifact `json:"openstack,omitempty"`
Ostree Artifact `json:"ostree"`
Qemu *Artifact `json:"qemu,omitempty"`
Vmware *Artifact `json:"vmware,omitempty"`
Vultr *Artifact `json:"vultr,omitempty"`
Aliyun *Artifact `json:"aliyun,omitempty"`
Aws *Artifact `json:"aws,omitempty"`
Azure *Artifact `json:"azure,omitempty"`
AzureStack *Artifact `json:"azurestack,omitempty"`
Dasd *Artifact `json:"dasd,omitempty"`
DigitalOcean *Artifact `json:"digitalocean,omitempty"`
Exoscale *Artifact `json:"exoscale,omitempty"`
Gcp *Artifact `json:"gcp,omitempty"`
IbmCloud *Artifact `json:"ibmcloud,omitempty"`
Initramfs *Artifact `json:"initramfs,omitempty"`
Iso *Artifact `json:"iso,omitempty"`
Kernel *Artifact `json:"kernel,omitempty"`
LiveInitramfs *Artifact `json:"live-initramfs,omitempty"`
LiveIso *Artifact `json:"live-iso,omitempty"`
LiveKernel *Artifact `json:"live-kernel,omitempty"`
LiveRootfs *Artifact `json:"live-rootfs,omitempty"`
Metal *Artifact `json:"metal,omitempty"`
Metal4KNative *Artifact `json:"metal4k,omitempty"`
OpenStack *Artifact `json:"openstack,omitempty"`
Ostree Artifact `json:"ostree"`
PowerVirtualServer *Artifact `json:"powervs,omitempty"`
Qemu *Artifact `json:"qemu,omitempty"`
Vmware *Artifact `json:"vmware,omitempty"`
Vultr *Artifact `json:"vultr,omitempty"`
}

type Cloudartifact struct {
Image string `json:"image"`
URL string `json:"url"`
Bucket string `json:"bucket,omitempty"`
Image string `json:"image"`
Region string `json:"region,omitempty"`
URL string `json:"url"`
}

type Extensions struct {
Expand Down
3 changes: 1 addition & 2 deletions mantle/cmd/ore/ibmcloud/upload.go
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,7 @@ func runUpload(cmd *cobra.Command, args []string) error {

// check if the s3 bucket exists
// create s3 client
err = API.NewS3Client(cloudObjectStorage, region)
if err != nil {
if err := API.NewS3Client(uploadCloudObjectStorage, region); err != nil {
return err
}

Expand Down
55 changes: 30 additions & 25 deletions mantle/cosa/cosa_v1.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ type Build struct {
FedoraCoreOsParentVersion string `json:"fedora-coreos.parent-version,omitempty"`
Gcp *Gcp `json:"gcp,omitempty"`
GitDirty string `json:"coreos-assembler.config-dirty,omitempty"`
IbmCloud *Cloudartifact `json:"ibmcloud,omitempty"`
ImageInputChecksum string `json:"coreos-assembler.image-input-checksum,omitempty"`
InputHasOfTheRpmOstree string `json:"rpm-ostree-inputhash"`
Koji *Koji `json:"koji,omitempty"`
Expand All @@ -69,38 +70,42 @@ type Build struct {
OverridesActive bool `json:"coreos-assembler.overrides-active,omitempty"`
PkgdiffAgainstParent PackageSetDifferences `json:"parent-pkgdiff,omitempty"`
PkgdiffBetweenBuilds PackageSetDifferences `json:"pkgdiff,omitempty"`
PowerVirtualServer *Cloudartifact `json:"powervs,omitempty"`
ReleasePayload *Image `json:"release-payload,omitempty"`
}

type BuildArtifacts struct {
Aliyun *Artifact `json:"aliyun,omitempty"`
Aws *Artifact `json:"aws,omitempty"`
Azure *Artifact `json:"azure,omitempty"`
AzureStack *Artifact `json:"azurestack,omitempty"`
Dasd *Artifact `json:"dasd,omitempty"`
DigitalOcean *Artifact `json:"digitalocean,omitempty"`
Exoscale *Artifact `json:"exoscale,omitempty"`
Gcp *Artifact `json:"gcp,omitempty"`
IbmCloud *Artifact `json:"ibmcloud,omitempty"`
Initramfs *Artifact `json:"initramfs,omitempty"`
Iso *Artifact `json:"iso,omitempty"`
Kernel *Artifact `json:"kernel,omitempty"`
LiveInitramfs *Artifact `json:"live-initramfs,omitempty"`
LiveIso *Artifact `json:"live-iso,omitempty"`
LiveKernel *Artifact `json:"live-kernel,omitempty"`
LiveRootfs *Artifact `json:"live-rootfs,omitempty"`
Metal *Artifact `json:"metal,omitempty"`
Metal4KNative *Artifact `json:"metal4k,omitempty"`
OpenStack *Artifact `json:"openstack,omitempty"`
Ostree Artifact `json:"ostree"`
Qemu *Artifact `json:"qemu,omitempty"`
Vmware *Artifact `json:"vmware,omitempty"`
Vultr *Artifact `json:"vultr,omitempty"`
Aliyun *Artifact `json:"aliyun,omitempty"`
Aws *Artifact `json:"aws,omitempty"`
Azure *Artifact `json:"azure,omitempty"`
AzureStack *Artifact `json:"azurestack,omitempty"`
Dasd *Artifact `json:"dasd,omitempty"`
DigitalOcean *Artifact `json:"digitalocean,omitempty"`
Exoscale *Artifact `json:"exoscale,omitempty"`
Gcp *Artifact `json:"gcp,omitempty"`
IbmCloud *Artifact `json:"ibmcloud,omitempty"`
Initramfs *Artifact `json:"initramfs,omitempty"`
Iso *Artifact `json:"iso,omitempty"`
Kernel *Artifact `json:"kernel,omitempty"`
LiveInitramfs *Artifact `json:"live-initramfs,omitempty"`
LiveIso *Artifact `json:"live-iso,omitempty"`
LiveKernel *Artifact `json:"live-kernel,omitempty"`
LiveRootfs *Artifact `json:"live-rootfs,omitempty"`
Metal *Artifact `json:"metal,omitempty"`
Metal4KNative *Artifact `json:"metal4k,omitempty"`
OpenStack *Artifact `json:"openstack,omitempty"`
Ostree Artifact `json:"ostree"`
PowerVirtualServer *Artifact `json:"powervs,omitempty"`
Qemu *Artifact `json:"qemu,omitempty"`
Vmware *Artifact `json:"vmware,omitempty"`
Vultr *Artifact `json:"vultr,omitempty"`
}

type Cloudartifact struct {
Image string `json:"image"`
URL string `json:"url"`
Bucket string `json:"bucket,omitempty"`
Image string `json:"image"`
Region string `json:"region,omitempty"`
URL string `json:"url"`
}

type Extensions struct {
Expand Down
34 changes: 34 additions & 0 deletions mantle/cosa/schema_doc.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,10 @@ var generatedSchemaJSON = `{
"image",
"url"
],
"optional": [
"bucket",
"region"
],
"properties": {
"image": {
"$id":"#/cloudartifact/image",
Expand All @@ -87,6 +91,16 @@ var generatedSchemaJSON = `{
"$id":"#/cloudartifact/url",
"type":"string",
"title":"URL"
},
"bucket": {
"$id":"#/cloudartifact/bucket",
"type":"string",
"title":"Bucket"
},
"region": {
"$id":"#/cloudartifact/region",
"type":"string",
"title":"Region"
}
}
},
Expand Down Expand Up @@ -187,6 +201,7 @@ var generatedSchemaJSON = `{
"exoscale",
"gcp",
"ibmcloud",
"powervs",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the past we have discussed the naming of a platform at a community meeting. COSA usually has used the agreed upon name for Ignition and Afterburn (cc @bgilbert). Digging around the docs [1] I found references to cloud-init which begs the question if we're going to need Ignition and Afterburn support down the line.

[1] https://www.ibm.com/docs/en/powervc/1.4.0?topic=machine-installing-configuring-cloud-init

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We've already discussed the platform in a community meeting. See coreos/fedora-coreos-tracker#817 for more.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes. also with regards to Afterburn there will be a new powervs provider added which will be similar to ibmcloud_classic.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"images",
"koji",
"oscontainer",
Expand Down Expand Up @@ -380,6 +395,7 @@ var generatedSchemaJSON = `{
"exoscale",
"gcp",
"ibmcloud",
"powervs",
"initramfs",
"iso",
"kernel",
Expand Down Expand Up @@ -527,6 +543,12 @@ var generatedSchemaJSON = `{
"title":"IBM Cloud",
"$ref": "#/definitions/artifact"
},
"powervs": {
"$id":"#/properties/images/properties/powervs",
"type":"object",
"title":"Power Virtual Server",
"$ref": "#/definitions/artifact"
},
"gcp": {
"$id":"#/properties/images/properties/gcp",
"type":"object",
Expand Down Expand Up @@ -797,6 +819,18 @@ var generatedSchemaJSON = `{
}
}
},
"ibmcloud": {
"$id":"#/properties/ibmcloud",
"type":"object",
"title":"IBM Cloud",
"$ref": "#/definitions/cloudartifact"
},
"powervs": {
"$id":"#/properties/powervs",
"type":"object",
"title":"Power Virtual Server",
"$ref": "#/definitions/cloudartifact"
},
"release-payload": {
"$id":"#/properties/release-payload",
"type":"object",
Expand Down
2 changes: 1 addition & 1 deletion src/cmd-buildextend-ibmcloud
1 change: 1 addition & 0 deletions src/cmd-buildextend-powervs
6 changes: 5 additions & 1 deletion src/cmd-ore-wrapper
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ from cosalib.cli import (
BuildCli
)
from cosalib.qemuvariants import get_qemu_variant
from cosalib.ibmcloud import get_ibmcloud_variant

if __name__ == '__main__':
log.basicConfig(
Expand Down Expand Up @@ -96,7 +97,10 @@ Each target has its own sub options. To access them us:
sys.exit()

# Now _extend the parser with the cloud targets_
build = get_qemu_variant(target, args)
if target in ['ibmcloud', 'powervs']:
build = get_ibmcloud_variant(target, args)
else:
build = get_qemu_variant(target, args)
log.info(f"operating on {build.image_name}")
if args.build_artifact:
if args.force:
Expand Down
9 changes: 8 additions & 1 deletion src/cosalib/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@
digitalocean,
gcp,
vultr,
exoscale
exoscale,
ibmcloud
)

CLOUD_CLI_TARGET = {
Expand All @@ -37,6 +38,12 @@
"exoscale": (exoscale.exoscale_cli,
exoscale.exoscale_run_ore,
exoscale.exoscale_run_ore_replicate),
"ibmcloud": (ibmcloud.ibmcloud_cli,
ibmcloud.ibmcloud_run_ore,
ibmcloud.ibmcloud_run_ore_replicate),
"powervs": (ibmcloud.ibmcloud_cli,
ibmcloud.ibmcloud_run_ore,
ibmcloud.ibmcloud_run_ore_replicate),
}


Expand Down
Loading