Requirements and Limitations

Supported Architectures

The full list of supported hardware platforms and associated architecture names is in the following table:

Platform

Architecture

Intel/AMD

amd64

IBM Z

s390x

IBM Power

ppc64le

ARM*

arm64

*The ARM platform is currently in Tech Preview for OpenShift, as recently announced.

Core Requirements

There are a number of technical and non-technical requirements that must be met before being able to certify or publish a non-Intel/AMD operator. The list of requirements are as follows:

  • A Certified Intel/AMD architecture operator and any applicable operands (container workloads deployed/managed by the operator controller)

  • At least three (3) projects created and published in Red Hat Partner Connect:

    • An Operator / Bundle project

      • Project type: Operator Bundle

      • Distribution method: Red Hat

    • An Operator Controller image project

      • Project type: Container

      • Distribution method: External

    • One or more Operand images (as applicable)

      • Project type: Container

      • Distribution method: External

  • All container images related to the operator must be hosted in an external registry

  • Your operator and operands must both support the CPU architectures that you intend to run on. In other words, you can't build an operator for another platform (such as IBM Z) if your operand only runs on AMD64 / Intel x86. The product (operands) must also support the new platform.

  • Each architecture image must be contained within a manifest list, with one manifest list for the operator and one for each of the operands. For example, a minimal multi-arch image layout might look like below (image and platform names are hypothetical):

    • An operator manifest list named/tagged as operator-image:v1.0 would be a manifest referring to these images:

      • operator-image:v1.0-amd64

      • operator-image:v1.0-othercpu

    • A single operand manifest list named/tagged as example-app:v1.0, and would refer to two other images matching the same architecture:

      • example-app:v1.0-amd64

      • example-app:v1.0-othercpu

Below is an illustration to help explain the relationship between the operator components and the various registries (RHCC, external, and scan). Please keep in mind that there could be more than one operand project/image whereas the diagram below only shows a single operand:

Current Limitations

There are a few limitations as well, which dictate the requirements:

  • Manifest lists are not yet fully supported by Red Hat Partner Connect. You can specify a manifest image by digest for scanning and mark it published in the project (should the image pass and become certified), but currently only architecture specific images are supported by catalog.redhat.com for platform identification. Automatic platform identification by parsing the manifest list contents is not supported, so you may still wish to scan each architecture image individually if you'd like the platform to be listed correctly on catalog.redhat.com.

  • Using the RHCC (Red Hat Container Catalog) registry and in turn the Red Hat distribution method will not work due to lacking support for manifest lists

  • There is no automated certification pipeline or test infrastructure in place for non-Intel/AMD architectures at this time

  • Non-Intel/AMD operators cannot be certified or published on their own, and must be published along with an Intel/AMD operator

Last updated