OpenShift Deployments

Red Hat OpenShift Container Platform is where many enterprises run IBM MQ in production: the MQ Operator appears in OperatorHub, platform teams already manage OAuth and SCCs, and integration with Cloud Pak for Integration is a common roadmap. OpenShift deployments for MQ mean more than kubectl apply on any cluster—you work inside projects (namespaces), Routes instead of generic Ingress controllers, Security Context Constraints that gate whether the mq user may write /mnt/mqm, and often internal image registries that mirror icr.io. Beginners copy generic Kubernetes tutorials and wonder why Routes do not terminate MQI binary traffic like HTTP, or why pods fail with forbidden uid. This tutorial walks OpenShift-specific networking for listeners and consoles, installing and subscribing to the MQ Operator, projects and quotas for MQ estates, SCC selection for MQ pods, storage classes on OpenShift with persistent volumes, integrating corporate identity, monitoring with OpenShift user workload monitoring, upgrade coordination between OpenShift version and MQ fix pack, and differences from vanilla AKS or EKS runbooks.

Projects, Quotas, and Governance

Isolate production MQ in dedicated projects with ResourceQuota on CPU, memory, and PVC count. Non-production environments get separate projects and RBAC so developers cannot kubectl delete prod PVCs. Labels tie QueueManager instances to cost centers. NetworkPolicy or OpenShift SDN policies segment application projects from MQ projects—only application namespaces reach port 1414.

Routes Versus Services

Exposing MQ on OpenShift
MethodTypical useNote
ClusterIP ServiceIn-cluster clients onlyDefault for microservices in same cluster
Passthrough RouteMQI TLS end-to-endClient sees MQ server cert
Edge RouteHTTPS console or RESTRouter terminates TLS
LoadBalancer ServiceCloud integrated LBWhen Routes not used for TCP

Installing MQ Operator from OperatorHub

Cluster admins open OperatorHub, search IBM MQ, and install the operator into openshift-operators or a dedicated namespace per your standard. Choose manual install plan approval for production. Subscription channel pins operator version; upgrading OpenShift may require upgrading operator compatibility first. After install, developers create QueueManager CRs in their projects if RBAC allows custom resource creation.

bash
1
2
3
4
# Illustrative CLI — verify exact package names in your cluster oc get packagemanifests -n openshift-marketplace | grep -i mq oc describe queuemanager finance-qm -n mq-prod oc get routes -n mq-prod

Security Context Constraints

MQ images expect to run as a fixed non-root UID with group access to mounted volumes. Assign anyuid or custom SCC only when IBM documentation requires it—overly permissive SCC violates compliance. fsGroup in pod security admission sets volume group ownership so /mnt/mqm is writable. Read-only root filesystem may conflict with MQ logging paths—follow IBM OpenShift guidance for your operator version rather than inventing restricted profiles that break startup.

Explainer: OpenShift as a Managed Neighborhood

Kubernetes is the street grid. OpenShift is the same grid plus building codes (SCC), official doorways to the street (Routes), and a store that sells pre-approved building kits (OperatorHub). MQ is the post office you install using the approved kit.

Storage on OpenShift

OpenShift ships storage classes for cloud disks or NFS. MQ needs ReadWriteOnce block storage for queue manager data in most designs. Test performance before go-live. Volume expansion requires storage class allowVolumeExpansion and file system grow inside pod or node steps per platform doc.

Identity and RBAC

  • Developers: create/read QueueManager in dev project, not prod.
  • Operations: upgrade operator subscription, snapshot PVCs.
  • Applications: no cluster admin; connect via Routes or internal Services.
  • OAuth integrates console login; MQ OAM still governs queue access.

Monitoring and Logging

Forward pod logs to OpenShift logging stack or corporate SIEM. Prometheus metrics from MQ may integrate with user workload monitoring when enabled. Alert on operator reconciliation errors and transmission queue depth via custom rules. Include OpenShift infrastructure events during incident bridge calls.

Upgrade Coordination

  1. Upgrade OpenShift during maintenance window per Red Hat path.
  2. Verify MQ Operator compatibility matrix.
  3. Bump QueueManager version in CR; validate channels and apps.
  4. Regression test Routes and TLS after platform upgrade.

Troubleshooting

Pod forbidden — SCC denied uid or volume type. Route not reachable — selector mismatch or TLS mode wrong for MQI. Image pull backoff — missing pull secret for icr.io mirror. CR not Ready — describe QueueManager; check storage class and LICENSE in spec.

Explain Like I'm Five: OpenShift Deployments

OpenShift is a playground with safety rules and official gates. MQ is the mail room you set up using a kit from the playground store, with doors labeled so other kids know where to deliver letters.

Practice Exercises

Exercise 1

Install MQ Operator in lab OpenShift; create QueueManager; expose Route; connect client.

Exercise 2

Document which SCC your MQ pod uses and why.

Exercise 3

Compare passthrough versus edge Route for your REST console URL.

Frequently Asked Questions

Frequently Asked Questions

Test Your Knowledge

Test Your Knowledge

1. OpenShift Routes expose:

  • Services to clients
  • Only batch jobs
  • Db2 tables
  • JCL

2. SCC controls:

  • Pod security constraints
  • Queue depth
  • Message size
  • COBOL compile

3. MQ Operator installs from:

  • OperatorHub
  • JES
  • ISPF only
  • FTP

4. MQ pods should run:

  • Non-root mq user
  • Root always
  • As kube-admin
  • Without TLS
Published
Read time21 min
AuthorMainframeMaster
Verified: IBM MQ OpenShift documentation