operator-lifecycle-manager icon indicating copy to clipboard operation
operator-lifecycle-manager copied to clipboard

Issues installing operators on ARM clusters

Open acelinkio opened this issue 1 year ago • 2 comments

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

  • operator-lifecycle-manager version:

v0.24.0

  • Kubernetes version information:
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"}
  • Kubernetes cluster kind: Self hosted using ARM cluster

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.

acelinkio avatar May 27 '23 09:05 acelinkio

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 avatar Jul 27 '23 02:07 leochr

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

leochr avatar Feb 08 '24 15:02 leochr