Skip to content
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

Failure when adding catalog on macOS #18

Closed
its-dave opened this issue Aug 17, 2020 · 2 comments · Fixed by #21
Closed

Failure when adding catalog on macOS #18

its-dave opened this issue Aug 17, 2020 · 2 comments · Fixed by #21

Comments

@its-dave
Copy link

its-dave commented Aug 17, 2020

I am unable to add a particular catalog when running the command kubectl operator catalog add --display-name "IBMCS Operators" --publisher IBM --timeout 15m0s --namespace openshift-marketplace opencloud-operators docker.io/ibmcom/ibm-common-service-catalog:latest which fails with failed to add catalog: get image labels: no match for platform in manifest sha256:3e3fc1e8ff0900bf3ba9b8702a63d65b68d30e5bf4e6b4ce66966c9808fb97eb: not found
Other catalogs are able to be added successfully.

Running against OCP 4.4.9
Manifest is able to be pulled with local docker client.
Running on macOS 10.15.6, kubectl 1.16.6 / oc 4.2

@its-dave its-dave changed the title Failure when adding catalog Failure when adding catalog on macOS Aug 18, 2020
@its-dave
Copy link
Author

I cannot recreate this issue when running on Linux, so I assume it is macOS-specific.

@joelanford
Copy link
Member

joelanford commented Aug 26, 2020

It looks like docker.io/ibmcom/ibm-common-service-catalog:latest is a manifest list and the kubectl operator plugin is attempting to resolve the manifest list to a platform-specific image.

The reason for getting the labels in the first place is to auto-populate display name and publisher from catalog image labels, but that's not actually part of the index image spec. See #3. So we could consider just dropping the image label fetching.

The workaround would be to specify the platform-specific image directly in the catalog add call rather than using the manifest list reference.

For example, if targetting a linux/amd64 cluster, you could call it like this:

kubectl operator catalog add \
  --display-name "IBMCS Operators" \
  --publisher IBM \
  --timeout 15m0s \
  --namespace openshift-marketplace \
  opencloud-operators \
  docker.io/ibmcom/ibm-common-service-catalog@sha256:1cfaf28fb2d13cdc377cfa61bf2c6e945a1a42e4d901f2e116566f25b280bc53

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 a pull request may close this issue.

2 participants