operator-framework / operator-lifecycle-manager

A management framework for extending Kubernetes with Operators
https://olm.operatorframework.io
Apache License 2.0
1.7k stars 543 forks source link

Issues installing operators on ARM clusters #2971

Open acelinkio opened 1 year ago

acelinkio commented 1 year ago

Bug Report

In a comment pointed out in https://github.com/operator-framework/operator-lifecycle-manager/issues/2823#issuecomment-1469943243, OLM is still referencing the upstream-opm-builder image instead of opm. This is causing issues installing operators on ARM64 based Kubernetes clusters.

What did you do? Attempted to install MetalLB operator on my ARM64 based cluster.

apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
  name: my-metallb-operator
  namespace: operators
spec:
  channel: beta
  name: metallb-operator
  source: operatorhubio-catalog
  sourceNamespace: olm

What did you expect to see? No errors when installing operators.

What did you see instead? Under which circumstances? The kubernetes job controlled spawned during installation returned CPU architecture related errors.

Environment

v0.24.0

Client Version: version.Info{Major:"1", Minor:"26", GitVersion:"v1.26.4+k3s1", GitCommit:"8d0255af07e95b841952563253d27b0d10bd72f0", GitTreeState:"clean", BuildDate:"2023-04-20T00:33:13Z", GoVersion:"go1.19.8", Compiler:"gc", Platform:"linux/arm64"}
Kustomize Version: v4.5.7
Server Version: version.Info{Major:"1", Minor:"26", GitVersion:"v1.26.4+k3s1", GitCommit:"8d0255af07e95b841952563253d27b0d10bd72f0", GitTreeState:"clean", BuildDate:"2023-04-20T00:33:13Z", GoVersion:"go1.19.8", Compiler:"gc", Platform:"linux/arm64"}

Possible Solution Workaround was identified by @agelwarg 's comment https://github.com/operator-framework/operator-lifecycle-manager/issues/2823#issuecomment-1469943243. Append two additional args in the deployment/catalog-operator in the olm namespace.

image

workaround:

      - args:
        - --namespace
        - olm
        - --configmapServerImage=quay.io/operator-framework/configmap-operator-registry:latest
        - --util-image
        - quay.io/operator-framework/olm@sha256:f9ea8cef95ac9b31021401d4863711a5eec904536b449724e0f00357548a31e7
        - --set-workload-user-id=true
        - --opmImage
        - quay.io/operator-framework/opm

original:

      - args:
        - --namespace
        - olm
        - --configmapServerImage=quay.io/operator-framework/configmap-operator-registry:latest
        - --util-image
        - quay.io/operator-framework/olm@sha256:f9ea8cef95ac9b31021401d4863711a5eec904536b449724e0f00357548a31e7
        - --set-workload-user-id=true

Additional context Add any other context about the problem here.

leochr commented 1 year ago

It seems like PR https://github.com/operator-framework/operator-lifecycle-manager/pull/2890, which shipped with v0.25.0 should resolve this issue.

@acelinkio could you please try with v0.25.0 and confirm? Thank you

leochr commented 7 months ago

@acelinkio I believe this issue is resolved in v0.25.0 and above. Are you still encountering this issue?