Skip to content

Add PowerVS as a new platform#2200

Merged
cgwalters merged 5 commits intocoreos:mainfrom
Prashanth684:powervs-support
Jun 28, 2021
Merged

Add PowerVS as a new platform#2200
cgwalters merged 5 commits intocoreos:mainfrom
Prashanth684:powervs-support

Conversation

@Prashanth684
Copy link
Copy Markdown
Contributor

@Prashanth684 Prashanth684 commented Jun 1, 2021

Adding support for building ova image for PowerVS - an extension of IBMCloud platform and also support uploading images to ibmcloud (coreos/fedora-coreos-tracker#817). This PR includes the following:

  • add support for a new buildextend-powervs command which supports building powervs ovas and uploading them to ibmcloud - make buildextend-ibmcloud symlink to cmd-ore-wrapper now that image uploads are supported
  • move ibmcloud and powervs specifics into one file as powervs is an extension of ibmcloud
  • add the ovf template file for powervs
  • add powervs platform to the schema
  • add powervs and ibcmloud platform to the cloud artifact schema

PowerVS image specifics - the powervs ova contains:

  • raw disk image (with the default size 16G)
  • a meta file which contains some details for display purposes in the ibmcloud UI
  • the powervs ovf template

The meta file contains information such as the os type, architecture and image name. the powervs ovf template hard codes the size of the disk image to 128G (required for PowerVS as they copy to SANs which are 128G) so the virtual size of the disk is unchanged

@darkmuggle
Copy link
Copy Markdown
Contributor

darkmuggle commented Jun 2, 2021

I'm waiting for a clean CI pass to review more fully, but off the cuff, this looks fine.
/assign @darkmuggle

@dustymabe
Copy link
Copy Markdown
Member

I'd like to review these changes to see how they intersect with the current image building we do for ibmcloud. Will try to do that soon.

@dustymabe dustymabe self-requested a review June 2, 2021 15:29
For IBMCloud and specifically Power VS these properties are needed when importing the Power VS image from the IBMCloud to the Power VS cloud instance through the terraform provider. This import is needed so that bootimages can be created off of the imported ova which can be used to spin up VMs
This commit does a few things:

- add support for a new `buildextend-powervs` command which supports building powervs ovas and uploading them to ibmcloud
- make `buildextend-ibmcloud` symlink to cmd-ore-wrapper now that image uploads are supported
- move ibmcloud and powervs specifics into one file as powervs is an extension of ibmcloud
- add the ovf template file for powervs

PowerVS image specifics - the powervs ova contains:
- raw disk image (with the default size 16G)
- a meta file which contains some details for display purposes in the ibmcloud UI
- the powervs ovf template

The meta file contains information such as the os type, architecture and image name. the powervs ovf template hardcodes the size of the disk image to 128G (required for PowerVS as they copy to SANs) so the virtual size of the disk is unchanged
@Prashanth684
Copy link
Copy Markdown
Contributor Author

added a new commit which adds a couple of optional properties to the cloud artifact schema- mainly needed for import of the images in IBMCloud to the Power VS cloud instance (e8f0096).

Copy link
Copy Markdown
Contributor

@darkmuggle darkmuggle left a comment

Choose a reason for hiding this comment

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

The code on its face is fine, however, the resultant image would not boot. Before merging, I think let's figure out the plan for Ignition and Afterburn.

Comment thread mantle/cmd/ore/ibmcloud/upload.go Outdated
Comment thread mantle/cosa/schema_doc.go
"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.

Comment thread src/cosalib/ibmcloud.py
"powervs": {
"image_format": "raw",
"image_suffix": "ova",
"platform": "powervs",
Copy link
Copy Markdown
Contributor

@darkmuggle darkmuggle Jun 9, 2021

Choose a reason for hiding this comment

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

The resultant image will have the ignition.platform.id=powervs set. I do not see any powervs providers in the Ignition code base for the platform for powervs. The resultant image will actually fail to boot until Ignition supports it. I would suggest metal for now.

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.

Co-authored-by: Ben Howard <me@muggle.dev>
@Prashanth684
Copy link
Copy Markdown
Contributor Author

I'd like to review these changes to see how they intersect with the current image building we do for ibmcloud. Will try to do that soon.

@dustymabe any chance that you could get to this in the next day or so as I will be away for a couple weeks after that and i'd like to ideally get it in before. thank you!

Copy link
Copy Markdown
Member

@cgwalters cgwalters left a comment

Choose a reason for hiding this comment

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

This still LGTM - anyone have objections?

@cgwalters cgwalters merged commit 07abfc7 into coreos:main Jun 28, 2021
Prashanth684 added a commit to Prashanth684/machine-config-operator that referenced this pull request Oct 21, 2021
Enable Power VS(Virtual Servers) as a platform. PowerVS is an extension of IBMCloud which supports deploying ppc64le VMs.
Details here: openshift/enhancements#736

The hostname for the VMs are set through afterburn which reads the metadata provided through the config drive which is the primary mechanism through which ignition and hostname are provided.
(coreos/afterburn#592)

Cross referencing some other PRs for completeness:
openshift/installer#5270
openshift/installer#5224 (closed, WIP to split into multiple PRs)

ova images for PowerVS are already generated today:
coreos/coreos-assembler#2200
coreos/coreos-assembler#2361
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants