QueueManagerConnection¶
QueueManagerConnection is the connection descriptor every other kind
references. It does not manage an MQSC object of its own — instead it holds the
mqweb REST endpoint, the TLS trust settings, and a reference to the Secret
that carries the administrative credentials. The Queue, Topic, Channel,
ChannelAuthRule, and AuthorityRecord reconcilers all resolve their
spec.connectionRef.name to a QueueManagerConnection in the same namespace and
reuse its cached client (ADR-0023).
- API group/version:
messaging.mkurator.dev/v1beta1(also served asv1alpha1via the conversion webhook — see Custom resources). - Short name:
qmc(kubectl get qmc). - Scope: namespaced;
spec.credentialsSecretRefandspec.tls.caSecretRefresolve in the same namespace as the CR.
The operator validates that the endpoint is reachable and the credentials are
usable, then reports the outcome through the Ready status condition. It never
creates or mutates the queue manager itself.
Endpoint and REST prefix¶
spec.queueManager— the IBM MQ queue manager name (case-sensitive), e.g.QM1. Required.spec.endpoint— themqwebbase URL. Must start withhttps://(plain HTTP is rejected by admission validation), e.g.https://ibm-mq.ibm-mq.svc:9443. Required.spec.restPrefix— the mqweb REST API path prefix. Must start with/; defaults to/ibmmq/rest/v3when absent. Override only for a non-default mqweb deployment.
TLS trust¶
spec.tls configures how the operator trusts the mqweb server certificate:
spec.tls.caSecretRef— the production path. References aSecretcontaining the CA bundle that signed the mqweb certificate (accepted keys:tls.crt,ca.crt, orca.pem). The operator adds it to the trust store and verifies the server certificate normally.spec.tls.insecureSkipVerify— the dev-only escape hatch. Disables server certificate verification entirely. To set it you must also opt in with themessaging.mkurator.dev/allow-insecure-tls: "true"annotation on the CR; admission validation rejectsinsecureSkipVerify: truewithout it. Never use this against a real queue manager.
When spec.tls is omitted, the operator uses the pod's default trust store.
Credentials¶
spec.credentialsSecretRef references a Secret in the same namespace
holding the mqweb credentials. Required.
- Password (required key):
password, ormqAdminPassword. - Username (optional key):
username,user, ormqAdminUser. Defaults toadminwhen absent — admission emits a warning so the default is not silent.
Examples¶
Dev connection with insecureSkipVerify (note the opt-in annotation):
apiVersion: messaging.mkurator.dev/v1beta1
kind: QueueManagerConnection
metadata:
name: qm1
namespace: mkurator-system
annotations:
messaging.mkurator.dev/allow-insecure-tls: "true"
spec:
queueManager: QM1
endpoint: https://ibm-mq.ibm-mq.svc:9443
tls:
insecureSkipVerify: true
credentialsSecretRef:
name: mq-credentials
Production connection with a CA bundle:
apiVersion: messaging.mkurator.dev/v1beta1
kind: QueueManagerConnection
metadata:
name: qm1
namespace: mkurator-system
spec:
queueManager: QM1
endpoint: https://ibm-mq.example.svc:9443
tls:
caSecretRef:
name: mqweb-ca
credentialsSecretRef:
name: mq-credentials
The sample is in
config/samples/.
Fields¶
API version: messaging.mkurator.dev/v1beta1 · Kind: QueueManagerConnection
.spec¶
| Field | Type | Required | Description |
|---|---|---|---|
credentialsSecretRef |
object | yes | CredentialsSecretRef references a Secret with mqweb credentials. Required key: password (mqAdminPassword is also accepted). Username is optional: username, user, or mqAdminUser (defaults to admin when absent; admission warns). |
credentialsSecretRef.name |
string | yes | — |
endpoint |
string | yes | Endpoint is the mqweb base URL, e.g. https://ibm-mq.ibm-mq.svc:9443 |
queueManager |
string | yes | QueueManager is the IBM MQ queue manager name (case-sensitive). |
restPrefix |
string | no | RESTPrefix is the mqweb REST API path prefix. Defaults to /ibmmq/rest/v3. |
tls |
object | no | TLS configures HTTPS trust for mqweb. |
tls.caSecretRef |
object | no | CASecretRef references a Secret containing a CA bundle (key tls.crt, ca.crt, or ca.pem). |
tls.insecureSkipVerify |
boolean | no | InsecureSkipVerify disables server certificate verification (dev only). |
.status¶
| Field | Type | Required | Description |
|---|---|---|---|
conditions |
[]object | no | Conditions represent the current state of the connection. |
observedGeneration |
integer | no | ObservedGeneration reflects the generation last reconciled. |
Readiness¶
QueueManagerConnection has no MQSC object to drift-check. Its reconcile probes
the endpoint with the resolved credentials and TLS settings and reports the
result on the Ready condition (surfaced as the Ready/Reason print columns:
kubectl get qmc). A Ready=False connection blocks the kinds that reference it
— their reconcilers requeue until the connection recovers. status.observedGeneration
reflects the spec generation last reconciled.