[Amazon EKS]

Deploying a simple queue manager using the IBM MQ Operator on Amazon EKS

This example deploys a "quick start" queue manager by using the IBM® MQ Operator on Amazon EKS. The queue manager uses ephemeral (non-persistent) storage and turns off IBM MQ security. Messages are not persisted across restarts of the queue manager. You can adjust the configuration to change many queue manager settings.

Before you begin

Note: To deploy a queue manager by using the IBM MQ Operator on Red Hat® OpenShift®, see Deploying a simple queue manager using the IBM MQ Operator on Red Hat OpenShift.

Deploy the IBM MQ Operator on your Amazon EKS cluster. For more information see Installing and upgrading the IBM MQ Operator on Amazon EKS.

About this task

Queue managers can be installed by a namespace administrator.

Unless you have performed a cluster-scoped (AllNamespaces) installation of the IBM MQ Operator, deploy your queue manager in the same namespace where you installed the IBM MQ Operator.

Note: This example uses an IBM MQ Advanced license, though you can also use an IBM MQ license. For more information, see Configuring Queue Managers with IBM MQ license annotations by using the IBM MQ Operator.

Procedure

  1. Online installations only: Create an entitlement key secret.

    The IBM MQ Operator deploys queue manager images that are pulled from a container registry that performs a license entitlement check.

    Follow the instructions in Preparing to use Kubernetes by creating a pull secret.

    Note: The entitlement key is not required if you will deploy only IBM MQ Advanced for Developers (Non-Warranted) queue managers.
  2. Air gapped installations only: Create a docker-registry secret with credentials for your private registry, for use when pulling the queue manager image.
    Note: If the IBM MQ Operator installation is namespace scoped, you can reuse the same secret that you used when you installed the Operator, in which case you can skip this step.
    Run the following command:
    kubectl create secret docker-registry mq-airgap-credentials -n <NAMESPACE> --docker-server=<YOUR_IMAGE_REGISTRY> --docker-username=<USERNAME> --docker-password=<PASSWORD>
    Replace the following values in the command:
    • <NAMESPACE> is the namespace in which you will deploy the queue manager
    • <YOUR_IMAGE_REGISTRY> is your private registry, for example my-private-registry.com
    • <USERNAME> is your username to access your private registry
    • <PASSWORD> is your password to access your private registry
  3. Create a queue manager YAML file.
    Important: If you accept the license agreement, change accept: false to accept: true. See mq.ibm.com/v1beta1: Current license versions for details on the license.

    Create a file called mq-quickstart.yaml with the following contents:

    apiVersion: mq.ibm.com/v1beta1
    kind: QueueManager
    metadata:
      name: quickstart
      annotations:
        com.ibm.mq/write-defaults-spec: 'false'
    spec:
      version: 10.0.0.0-r1
      license:
        accept: false
        license: L-CXDB-XTZ9J8
      queueManager:
        name: "QUICKSTART"
        storage:
          queueManager:
            type: ephemeral
        route:
          enabled: false
        metrics:
          serviceMonitor:
            enabled: false
      web:
        enabled: false
        route:
          enabled: false
    spec.queueManager.route.enabled, spec.queueManager.metrics.serviceMonitor.enabled, and spec.web.route.enabled are set to false because these are Red Hat OpenShift specific features that are enabled by default. These features must be disabled explicitly on Amazon EKS.
  4. Air gapped installations only: Add the credentials for your private registry to the queue manager YAML file:
    spec:
      ...
      imagePullSecrets: 
        - name: "mq-airgap-credentials"
    Note: For an air-gap installation, the custom resource YAML for each queue manager must include spec.imagePullSecrets if the private registry that contains the images requires credentials. This field must reference a Kubernetes secret that contains the private registry credentials. For more information, see the Deploy an IBM MQ queue manager step of Installing the IBM MQ Operator on Amazon EKS in an air-gap environment.
  5. Create the queue manager:
    kubectl apply -f mq-quickstart.yaml -n <NAMESPACE>
  6. Verify the queue manager status:
    kubectl get queuemanager quickstart -n <NAMESPACE>