kubernetesdevopskubernetes-helmibm-mqhelmfile

IBM-MQ kubernetes helm chart ImagePullBackOff


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


Solution

  • 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.