-
Epic
-
Resolution: Unresolved
-
Normal
-
None
Target Support
IBM Power (ppc64le)
Background
Operators can potentially support multiple architectures and operating systems by using manifest lists, which point to the relevant image per arch / os. Investigate if and how we want to support this for our operators. If we do, don't forget to update relevant annotations.
On top of code and testing support, it might include changes/updates to our upstream and downstream docs, and how to do QE (can we get non-AMD64 Linux clusters for testing?).
Konflux
Konflux supports 4 architectures: amd64, arm64, ppc64le, and s390x. We should consider adding support for multiple architecture builds when building the operator image and a single-arch build for the bundle.
ATM, we are supporting linux/x86_64 (x86). Which platforms are relevant?
- Patner (IBM System Z and Power) seems to be interested in ppc64le and s390x support https://docs.google.com/document/d/1uW8F8E_o-3NweFx0knMOuj8GWGf40H9NfSYjWEUEDEY/edit?tab=t.0
- Customer (CNV) seems to be interested in arm64 support
- There is an open issue for arm64 support https://github.com/medik8s/self-node-remediation/issues/157
Konflux Future Considerations:
- Operator and Operand image should be built with docker-build-multi-platform-oci-ta pipeline, and the PipelineRun files should have the build-platforms value of linux/x86_64 linux/arm54, linux/ppc64le and linux/s390x so we would have an image for each architecture.
- Bundle image image should be built with a single-arch (linux/x86_64) image since it is a Metadata, and not a Binary. So it will result in one image but with many labels of supported arch (e.g., operatorframework.io/arch.amd64: supported, operatorframework.io/arch.arm64: supported, operatorframework.io/arch.ppc64le: supported, and operatorframework.io/arch.s390x: supported)
Links
- https://sdk.operatorframework.io/docs/advanced-topics/multi-arch/ and https://olm.operatorframework.io/docs/advanced-tasks/ship-operator-supporting-multiarch/ for needed labels and how to verify that with `operator-sdk bundle validate BUNDLE_DIR_RELATIVE_PATH --select-optional name=multiarch`
- https://konflux.pages.redhat.com/docs/users/getting-started/multi-platform-builds.html
- https://github.com/konflux-ci/olm-operator-konflux-sample/blob/e0fe58178ff82586cfd004065d0586f016aa6a9a/docs/konflux-onboarding.md#customize-tekton-pipleines