IBM-MQ kubernetes helm chart ImagePullBackOff

10/29/2021

I want to deploy IBM-MQ to Kubernetes (Rancher) using helmfile. I've found this link and did everything as described in the guide: https://artifacthub.io/packages/helm/ibm-charts/ibm-mqadvanced-server-dev.

But the pod is not starting with the error: "ImagePullBackOff". What could be the problem? My helmfile:

...
repositories:
  - name: ibm-stable-charts
    url: https://raw.githubusercontent.com/IBM/charts/master/repo/stable

releases:
  - name: ibm-mq
    namespace: test
    createNamespace: true
    chart: ibm-stable-charts/ibm-mqadvanced-server-dev
    values:
      - ./ibm-mq.yaml

ibm-mq.yaml:

- - - 
license: accept
security:
  initVolumeAsRoot: true/false // I'm not sure about this, I added it just because it wasn't working.
// Both of the options don't work too 
queueManager:
  name: "QM1"
  dev:
    secret:
      adminPasswordKey: adminPassword
      name: mysecret

I've created the secret and seems like it's working, so the problem is not in the secret. The full error I'm getting:

Failed to pull image "ibmcom/mq:9.1.5.0-r1": rpc error: code = Unknown desc = Error response from daemon: manifest for ibmcom/mq:9.1.5.0-r1 not found: manifest unknown: manifest unknown

I'm using helm 3, helmfile v.0.141.0, kubectl 1.22.2

-- Arzybek
devops
helmfile
ibm-mq
kubernetes
kubernetes-helm

1 Answer

10/30/2021

I will leave some things as an exercise to you, but here is what that tutorial says:

helm repo add ibm-stable-charts https://raw.githubusercontent.com/IBM/charts/master/repo/stable

You don't really need to do this, since you are using helmfile.

Then they say to issue:

helm install --name foo 
     ibm-stable-charts/ibm-mqadvanced-server-dev 
     --set license=accept 
     --set queueManager.dev.secret.name=mysecret 
     --set queueManager.dev.secret.adminPasswordKey=adminPassword 
     --tls

which is targeted towards helm2 (because of those --name and --tls), but that is irrelevant to the problem.

When I install this, I get the same issue:

Failed to pull image "ibmcom/mq:9.1.5.0-r1": rpc error: code = NotFound desc = failed to pull and unpack image "docker.io/ibmcom/mq:9.1.5.0-r1": failed to resolve reference "docker.io/ibmcom/mq:9.1.5.0-r1": docker.io/ibmcom/mq:9.1.5.0-r1: not found

I went to the docker.io page of theirs and indeed such a tag : 9.1.5.0-r1 is not present.

OK, can we update the image then?

helm show values ibm-stable-charts/ibm-mqadvanced-server-dev

reveals:

image:
   # repository is the container repository to use, which must contain IBM MQ Advanced for Developers
  repository: ibmcom/mq
  # tag is the tag to use for the container repository
  tag: 9.1.5.0-r1

good, that means we can change it via an override value:

helm install foo 
   ibm-stable-charts/ibm-mqadvanced-server-dev 
   --set license=accept 
   --set queueManager.dev.secret.name=mysecret 
   --set queueManager.dev.secret.adminPasswordKey=adminPassword 
   --set image.tag=latest # or any other tag

so this works.

How to set-up that tag in helmfile is left as an exercise to you, but it's pretty trivial.

-- Eugene
Source: StackOverflow