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 ownership — mkurator.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 policy — mkurator.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

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.*