Common questions about using MKurator with an existing IBM MQ queue manager on Kubernetes.
No. MKurator assumes a queue manager already exists and exposes the IBM MQ Administrative REST
API (mqweb) over HTTPS. It reconciles administrative objects (queues, topics, channels, auth
rules) on that queue manager — it does not deploy MQ pods or manage MQ licensing.
The IBM MQ Operator focuses on deploying and operating queue manager instances on Kubernetes.
MKurator focuses on declarative administration of objects on a queue manager you already run
(on or off cluster). They can complement each other: deploy MQ with IBM's operator, connect with
QueueManagerConnection, then manage objects with MKurator CRs.
messaging.mkurator.dev/v1beta1 is the current API — the only served and stored version
(the earlier v1alpha1 was removed in v0.15.0, see ADR-0029).
As a beta API, field-level shapes may still change between releases, deliberately and
documented. What is and is not guaranteed is in API_STABILITY.md. Breaking changes are documented in
CHANGELOG.md and UPGRADE.md before release.
A QueueManagerConnection stores how the operator reaches a queue manager: HTTPS endpoint, queue
manager name, and credentials via a referenced Kubernetes Secret. Resource CRs (Queue, Topic,
Channel, auth CRs) reference a QMC by name in the same namespace.
See INSTALL_AND_USE.md and the queue walkthrough.
Yes. Create one QueueManagerConnection per queue manager (each with its own endpoint and Secret).
Resource CRs point at the QMC they target.
MKurator validates the mqweb server certificate unless you configure trust for private CAs. On kind with mkcert, follow LOCAL_SETUP.md. In production, prefer proper CA-issued certs or a documented trust bundle — see Engineering guidelines.
Finalizers block removal until the operator deletes (or confirms absence of) the corresponding MQ
object. If MQ deletion fails, the CR stays with a Deleting condition explaining why.
Drift is when someone changes an MQ object outside Kubernetes (for example via runmqsc). For
supported attributes, MKurator compares desired spec to MQ DISPLAY output and re-applies DEFINE when
values differ. See ATTRIBUTE_RECONCILIATION.md.
Set spec.suspend: true on a workload CR (Queue, Topic, Channel,
ChannelAuthRule, or AuthorityRecord) to pause MQ reconciliation for that object
without deleting it. Status shows Synced=False with Reason=Suspended. Set
spec.suspend: false (or omit the field) to resume.
To force an immediate reconcile after clearing suspend or changing spec, update the
annotation messaging.mkurator.dev/reconcile-requested-at to a new value (for
example the current UTC time in RFC3339).
ChannelAuthRule—SET CHLAUTHrules (for exampleADDRESSMAP,BLOCKUSER).AuthorityRecord—SET AUTHRECobject authority (OAM) for queue-style profiles.
Rule types accepted by the API but not yet fully exercised in CI are listed in PHASE5_AUTH_SKETCH.md.
Admission checks schema and cross-field rules. Some failures (invalid MQ rule combinations) surface
only when MQ applies the rule — check CR .status.conditions and operator logs. See the
channel authentication example.
Follow UPGRADE.md: upgrade CRDs and the manager deployment (Helm or manifests), then verify webhooks and sample CRs. The upgrade walkthrough shows a typical path.
This usually means the cluster cannot reach the validating webhook Service or TLS is misconfigured. See INSTALL_AND_USE.md#diagnostics-and-troubleshooting and ensure webhook certificates and network policies allow apiserver → webhook traffic.
Prometheus metrics and structured logging are documented in OBSERVABILITY.md and LOGGING.md.
Use the process in SECURITY.md — do not open public issues for vulnerabilities.
Published docs: platformrelay.github.io/MKurator. Source lives under
docs/.