Skip to content

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 ownershipmkurator.managedObjects on a profile lists object name patterns (exact or PREFIX*) managed declaratively. Supported kinds: queue, channel, chlauth, and authrec.
  • Object tags (stub) — queue and channel descriptions prefixed with mkurator.platformrelay.io/managed= supply ownership when present.
  • Mutation policymkurator.mutationPolicy defaults to warn; set block to 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.*