MKurator coexistence¶
IBM MQ MCP Server targets generic IBM MQ deployments. MKurator (Kubernetes operator for declarative MQ) is an optional coexistence partner — not a runtime prerequisite.
ADR-0007 accepted
v0 is advisory only: the MCP server does not create or apply MKurator custom resources. Ownership is declared in profile catalog metadata; live Kubernetes discovery is deferred. See ADR-0007.
Principles¶
| Principle | Detail |
|---|---|
| No Kubernetes required | The same binary must operate for non-Kubernetes MQ estates |
| No reconciliation duplication | This server does not replace MKurator controllers |
| Explicit degradation | Missing ownership metadata is treated as unmanaged |
| Policy before mutation | INT-001 pre-mutation hook runs before ADM-001 queue mutations |
v0 behaviour¶
- Catalog ownership —
mkurator.managedObjectson a profile lists object name patterns (exact orPREFIX*) managed declaratively. Supported kinds:queue,channel,chlauth, andauthrec. - Object tags (stub) — queue and channel descriptions prefixed with
mkurator.platformrelay.io/managed=supply ownership when present. - Mutation policy —
mkurator.mutationPolicydefaults towarn; setblockto fail closed before mqweb I/O. - Block + tag-only ownership — under
mutationPolicy: block, catalog patterns are evaluated before any mqweb I/O. Tag-only ownership (object description prefix without a matching catalog pattern) is not consulted on the block path; declare catalog patterns for objects that must fail closed. - No CR apply — mutations remain imperative mqweb calls; operators reconcile via MKurator/GitOps separately.
Configuration example¶
yaml
profiles:
prod:
queueManager: QM1
endpoint: https://mq.example:9443
authentication: { type: basic, secretRef: env:MQ_SECRET }
tls: { insecureSkipVerify: true }
capabilities: [inspect, administer]
mkurator:
mutationPolicy: warn
managedObjects:
- kind: queue
name: APP.*