How can I certify a multi-architecture operator and operator bundle in Red Hat Partner Connect?

Updated -

Enviroment
Red Hat OpenShift Container Platform
Partner Operator and Operator Bundle certification in Red Hat Partner Connect for Technical Partners

Issue
How do I certify a Multi-arch Operator using the regular Operator/Operator Bundle workflow in Red Hat Partner Connect?

Resolution
Red Hat's hosted registry and operator certification tooling now fully supports certifying multi-architecture container images as well as operator bundles.

Steps
1. Build the image manifest with the podman command, and run the preflight test against the built image:

a.# PLATARCH=linux/amd64,linux/ppc64le,linux/arm64,linux/s390x
b.# podman build --jobs=4 --platform=$PLATARCH --manifest shazam:v1.0 .
c.# podman manifest push --all shazam:v1.0  quay.io/jinhli0/shazam:v1.0
d.# preflight check container quay.io/jinhli0/shazam:v1.0  --pyxis-api-token xxx --submit --certification-project-id xxxx --docker-config /tmp/auth.json

In step (d), Preflight will automatically run a full check against each architecture found in the image manifest, and submit the test results to Red Hat.

  1. Make sure all the preflight results are "pass" and the Health index grade is in the range "A-C" for each platform.

  2. Edit the operator bundle clusterserviceversion.yaml file to add a reference to the operator image manifest list sha256 hash to replace the single arch image reference (if present).
    Example:

spec:
  install:
    spec:
      deployment:
        ...
        ...
        containers:
          image: xxxx
...
...
relatedImages:
  - image: xxx

  1. Add appropriate "supported" labels for each architecture in your bundle's CSV file (xxx.clusterserviceversion.yaml):
   metadata:
     labels:
        operatorframework.io/os.zos: supported
        operatorframework.io/os.linux: supported
        operatorframework.io/arch.s390x: supported
        operatorframework.io/arch.amd64: supported
        operatorframework.io/arch.ppc64le: supported
        operatorframework.io/arch.arm64: supported

For how to add the labels, please refer to Shipping an operator that supports Multiple Architectures and Operating Systems in the upstream Operator Lifecycle Manager documentation.

Comments