-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Feature s390x multiarch support #12214
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature s390x multiarch support #12214
Conversation
|
Congratulations on your first Pull Request and welcome to the Apache CloudStack community! If you have any issues or are unsure about any anything please check our Contribution Guide (https://github.com/apache/cloudstack/blob/main/CONTRIBUTING.md)
|
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #12214 +/- ##
============================================
+ Coverage 3.58% 17.46% +13.88%
- Complexity 0 15528 +15528
============================================
Files 445 5913 +5468
Lines 37552 529410 +491858
Branches 6914 64685 +57771
============================================
+ Hits 1347 92475 +91128
- Misses 36039 426513 +390474
- Partials 166 10422 +10256
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR adds multi-architecture support for IBM Z (s390x) to Apache CloudStack, enabling key components to be built and run on both x86_64 and s390x architectures. The implementation enables cross-architecture interoperability between x86_64 management servers and s390x agents.
Key Changes:
- Added s390x as a supported CPU architecture alongside existing x86_64 and aarch64 support
- Updated UI components to include s390x in architecture selection dropdowns
- Modified KVM hypervisor code to handle s390x-specific requirements (ACPI/SMBIOS exclusions)
Reviewed changes
Copilot reviewed 19 out of 19 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
ui/src/views/infra/zone/ZoneWizardAddResources.vue |
Adds s390x architecture option to zone wizard |
ui/src/views/infra/ClusterUpdate.vue |
Adds s390x architecture option to cluster update UI |
ui/src/utils/plugins.js |
Adds s390x to global CPU architecture types utility |
ui/src/components/view/DeployVMFromBackup.vue |
Adds s390x architecture option to VM deployment |
plugins/integrations/kubernetes-service/.../ListKubernetesSupportedVersionsCmd.java |
Updates API documentation to include s390x |
plugins/integrations/kubernetes-service/.../AddKubernetesSupportedVersionCmd.java |
Updates API documentation to include s390x |
plugins/hypervisors/kvm/src/test/java/.../LibvirtComputingResourceTest.java |
Adds conditional test logic for s390x ACPI feature |
plugins/hypervisors/kvm/src/main/java/.../LibvirtVMDef.java |
Excludes SMBIOS mode for s390x architecture |
api/src/test/java/com/cloud/cpu/CPUTest.java |
Adds test coverage for s390x CPU architecture |
api/src/main/java/.../template/RegisterTemplateCmd.java |
Updates API documentation to include s390x |
api/src/main/java/.../template/ListTemplatesCmd.java |
Updates API documentation to include s390x |
api/src/main/java/.../template/GetUploadParamsForTemplateCmd.java |
Updates API documentation to include s390x |
api/src/main/java/.../template/CreateTemplateCmd.java |
Updates API documentation to include s390x |
api/src/main/java/.../iso/RegisterIsoCmd.java |
Updates API documentation to include s390x |
api/src/main/java/.../iso/ListIsosCmd.java |
Updates API documentation to include s390x |
api/src/main/java/.../cluster/UpdateClusterCmd.java |
Updates API documentation to include s390x |
api/src/main/java/.../cluster/AddClusterCmd.java |
Updates API documentation to include s390x |
api/src/main/java/.../BaseUpdateTemplateOrIsoCmd.java |
Updates API documentation to include s390x |
api/src/main/java/com/cloud/cpu/CPU.java |
Adds s390x to CPUArch enum |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
shwstppr
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
code looks good. Some suggestions. Copilot comments on UI consistency make sense
@blueorangutan package
| } | ||
| } | ||
| guestDef.append("<smbios mode='sysinfo'/>\n"); | ||
| if (!(_arch != null && _arch.equals("s390x"))) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| if (!(_arch != null && _arch.equals("s390x"))) { | |
| if (!CPU.CPUArch.s390x.getType().equalsIgnoreCase(_arch)) { |
| assertNodeExists(domainDoc, "/domain/features/pae"); | ||
| assertNodeExists(domainDoc, "/domain/features/apic"); | ||
| assertNodeExists(domainDoc, "/domain/features/acpi"); | ||
| if (!"s390x".equals(System.getProperty("os.arch"))) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| if (!"s390x".equals(System.getProperty("os.arch"))) { | |
| if (!CPU.CPUArch.s390x.getType().equalsIgnoreCase(System.getProperty("os.arch"))) { |
|
@blueorangutan package |
|
@sureshanaparti a [SL] Jenkins job has been kicked to build packages. It will be bundled with KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress. |
|
Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ el10 ✔️ debian ✔️ suse15. SL-JID 15974 |
279c6a6 to
6fd6f8e
Compare
Signed-off-by: Niyam Siwach <niyam@ibm.com> Signed-off-by: Viddya K <viddya.k@ibm.com>
6fd6f8e to
1dcf314
Compare
|
LGTM, great to see support for a new architecture @viddya673 |
|
@blueorangutan test |
|
@DaanHoogland a [SL] Trillian-Jenkins test job (ol8 mgmt + kvm-ol8) has been kicked to run smoke tests |
|
[SF] Trillian test result (tid-15025)
|
weizhouapache
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
code lgtm
|
Awesome work, congrats on your first merged pull request! |
|
@viddya673, will you be maintaining a regression suite on a s390 to make sure no regression creeps in from other code? |
|
Yes — we’re working on adding GitHub Actions CI for s390x, now that it’s supported. This is currently a work in progress. |
Description
This PR adds multi-architecture support for IBM Z (s390x) to Apache CloudStack. The updates enable key CloudStack components to be built and run on both x86_64 (Intel/AMD) and s390x.
The implementation has been tested using s390x KVM hosts with full cross-architecture interoperability:
x86_64 Management Server <=> s390x Agent
Compatibility and functionality have been validated across the following distributions:
• RHEL
• SLES
• Ubuntu
Types of changes
Feature/Enhancement Scale or Bug Severity
Feature/Enhancement Scale
Bug Severity
Screenshots (if appropriate):
How Has This Been Tested?
How did you try to break this feature and the system with this change?