# IBM MQ reference material

> Copy this file to `docs/REFERENCES.md` for local notes. `docs/REFERENCES.md` is
> gitignored; this example is committed as a starting template.

Vendored and cloned samples under [`references/`](../references/) support MKurator
development. They are **not** part of the shipped operator. MKurator does **not**
implement the IBM MQ Operator (`QueueManager` lifecycle); it manages **objects on
an existing queue manager** via mqweb. See [ARCHITECTURE.md](ARCHITECTURE.md) and
[ADR-0002](adr/0002-manage-mq-via-mqweb-rest.md).

## MKurator vs IBM MQ Operator

| | IBM MQ Operator + gitops samples | MKurator |
|---|----------------------------------|---------|
| **Goal** | Install and operate Queue Managers | Reconcile queues, topics, channels on an existing QM |
| **Primary CR** | `QueueManager` (`mq.ibm.com/v1beta1`) | `Queue`, `Topic`, `Channel`, `QueueManagerConnection` (`messaging.mkurator.dev/v1alpha1`) |
| **MQ changes** | QM lifecycle + optional ConfigMap MQSC at install | Per-resource reconcile via mqweb |
| **Controller source** | Closed binary (`cpopen/ibm-mq-operator`) | This repository (Go) |

## Reference map

| Path | Verdict | Use for MKurator |
|------|---------|-----------------|
| [`references/mq-operator-eks-preview-2025/`](../references/mq-operator-eks-preview-2025/) | **Limited** | `chart/crds/queuemanagers.yaml` — prerequisite QM fields (`spec.web`, `spec.queueManager.mqsc`, PKI) when targeting a QM deployed by IBM’s operator. Ingress/LoadBalancer docs for exposing mqweb on EKS. **Skip** operator Deployment, webhook install, reconciler patterns. |
| [`references/mq-gitops-samples/queue-manager-basic-deployment/`](../references/mq-gitops-samples/queue-manager-basic-deployment/) | **High** | MQSC examples (channels, CHLAUTH), secret key conventions, sample `QueueManager` YAML showing bootstrap MQSC. Mirrored in [`test/e2e/fixtures/`](../test/e2e/fixtures/). **Do not** adopt ConfigMap-at-QM as MKurator’s primary model. |
| [`references/mq-gitops-samples/queue-manager-deployment/`](../references/mq-gitops-samples/queue-manager-deployment/) | **Low–medium** | ArgoCD/Kustomize patterns only if adding GitOps examples for **MKurator CRs**. “Dynamic MQSC” ConfigMaps are a contrast, not a target design. |
| [`references/mq-gitops-samples/queue-manager-custom-metrics/`](../references/mq-gitops-samples/queue-manager-custom-metrics/) | **Skip** | Custom QM images on IBM operator — out of scope unless extending the dev QM image. Prefer [mq-metric-samples](https://github.com/ibm-messaging/mq-metric-samples). |
| [`references/mq-gitops-samples/ccdt-deployment/`](../references/mq-gitops-samples/ccdt-deployment/) | **Defer** | CCDT/nginx client connectivity — Phase 4+ channel/listener work. |
| [`references/cluster-setup/ibm-mq/`](../references/cluster-setup/ibm-mq/) | **Partial** | Vendored mq-helm chart copy; prefer upstream [mq-helm](https://github.com/ibm-messaging/mq-helm) and [`hack/kind-cluster`](../hack/kind-cluster/README.md) for local dev. |
| [`references/cluster-setup/`](../references/cluster-setup/) (other) | **Skip** | Strimzi, GCP, PocketIDP — unrelated to MKurator. |
| [`references/KubeOps/`](../references/KubeOps/) | **Skip** | Generic pre–controller-runtime template; superseded by Kubebuilder v4. |

## Primary dev queue manager

Local and e2e testing use **mq-helm** via [`hack/kind-cluster`](../hack/kind-cluster/README.md), not the IBM MQ Operator. That matches [`config/samples/`](../config/samples/) (`endpoint: https://ibm-mq.ibm-mq.svc:9443`).

For deploying a QM when not using kind, see [Deploying a queue manager for MKurator](DEVELOPMENT.md#deploying-a-queue-manager-for-kurator) in DEVELOPMENT.md.

## Phase 5 auth planning

Channel and authority CR sketches derived from gitops MQSC are in [PHASE5_AUTH_SKETCH.md](PHASE5_AUTH_SKETCH.md).

## Upstream links (not vendored)

- [ibm-messaging/mq-helm](https://github.com/ibm-messaging/mq-helm) — sample Helm chart for MQ container
- [ibm-messaging/mq-container](https://github.com/ibm-messaging/mq-container) — MQ container build
- [ibm-messaging/mq-operator-eks-preview-2025](https://github.com/ibm-messaging/mq-operator-eks-preview-2025) — EKS preview Helm + CRD only
- [IBM MQ Operator docs](https://www.ibm.com/docs/en/ibm-mq/9.4.x?topic=configuring-deploying-queue-managers-using-mq-operator)
