0.12.2 - 2026-07-10
Breaking Changes
-
crds: Add generated+augmented Queue reference page (DOC-7 pilot) (#91) 848747c
-
ci: Phase C e2e pyramid and CI filters 9c9fe52
-
e2e: Phase C PR labels and main Helm pass d1eff5d
-
e2e: Phase C pyramid trim and CI labels 72c186c
-
e2e: Parallel MQ lanes and single deploy 9aaaa55
Bug Fixes
-
validation: Satisfy lint for v1beta1 admission 94b49b6
-
task: Prefer valid kind kubeconfig path 66cf2db
-
e2e: Use USERMAP mcaUser drift for observe-only spec 1056bc9
-
auth: USERMAP drift polish and validation breadth (AUTH-3b) 4a3ed71
-
ci: Use gitleaks CLI for org repo secret scan bd23f0d
-
api: Keep MQObject interface out of api package 20559e9
-
controller: Classify events via typed wrap errors 403f8d9
-
controller: Observe-only auth skips SET when missing fdb8d55
-
controller: Requeue workloads after finalizer add 1f0962e
-
controller: Stabilize QMC Ready under secret watch 09ec4f1
-
controller: Preserve QMC Ready on transient ping 9df6b39
-
mqrest: Identity-keyed cache with replace-on-rotation 2d99fbc
-
validation: Harden CHLAUTH/AUTHREC MQSC fields 43f6974
-
controller: Deletion before connection chain (ADR-0022) c483ac0
-
controller: Release without Secret; stop QMC hot loop 5e24f03
-
ci: Stop release tags from failing GitHub Pages deploy c894ae2
-
test: Stabilize Helm e2e metrics and raise coverage floor 0f2449e
-
mqrest: Treat AUTHREC NONE as not found 2c1aee8
-
ci: Expose CODECOV_TOKEN on test job env 011f545
-
ci: Skip Codecov without invalid secrets if 48b89a4
-
ci: Unblock verify, codecov, and e2e CI 75866b3
-
test: Bound kubectl in MQ e2e cleanup d298d20
-
test: Define kurator-system namespace in helpers e8e69d4
-
test: Prevent e2e AfterSuite undeploy hang 0930ebc
-
ci: Use git-cliff-action content for release notes 9fad692
-
test: Make AfterEach kubectl delete non-blocking e3a926d
-
test: Stabilize parallel MQ e2e lanes ad324a0
-
test: Avoid corrupt merged coverage.out dc7add6
-
rbac: Allow events.k8s.io for controller be9f9db
-
test: Let Helm e2e own kurator-system namespace b0685b1
-
deps: Update kubernetes packages c1376e1
-
deps: Update go dependencies 31386bc
-
helm: Add auth CR RBAC and verify in helm:lint c9c8688
-
ci: Repair Renovate workflow permissions and token 22cd170
-
ci: Drop invalid workflows permission from Renovate job 9e4fe1e
-
ci: Configure Renovate repository target and token 3d598b6
-
ci: Migrate renovate config for v43 1208bb1
-
ci: Flock mutex for e2e and integration suites f0b4227
-
e2e: Drop deprecated ginkgo.progress flag 8185002
-
mqrest: Treat empty AUTHREC authorities as not found 15b8c4d
-
auth: Unblock ChannelAuthRule delete and e2e waits 718dff1
-
ci: Skip generated files in format:check diff 4c2053a
-
auth: Parse DISPLAY text and correct SET AUTHREC MQSC 8b1075d
-
samples: Unify deploy:samples for kind e9d6849
-
e2e: Deploy operator via task deploy ff1091e
-
task: Propagate KURATOR_E2E_MQ into test:e2e task env 0df9a9a
-
e2e: Race-safe subprocess output and webhook assertion 867a201
-
task: Resolve kustomize path with go tool -n e40a0a0
-
samples: Let kustomization set namespace on Helm samples 64f82b9
-
ci: Bump Go 1.26.4 and sync verify artifacts adb9b87
-
ci: Align CRDs with go tool controller-gen 9c56489
-
makefile: Use go tool kustomize for deploy targets 87250df
-
e2e: Wait for webhook cert and rollout before MQ tests 4456aec
-
config: Fix webhook kustomize for e2e make deploy 9307cb9
-
webhook: Fix unit test race under -race 86e1f8c
-
makefile: Apply CRDs from bases on make install f740052
-
test: Pass QueueSpec to GetQueue in MQ e2e 6bf3072
-
mqrest: Normalize alias/remote DISPLAY attribute names from mqweb 71880ee
-
ci: Clear lint/verify; reconcile alias and remote queues f1a674d
-
test: Wait for CRDs after make install in MQ e2e 47d3418
-
test: Restore cmd declarations in deploy_helpers d496aff
-
test: Serialize e2e suites and idempotent namespace create dc0647c
-
test,ci: Ordered MQ e2e context; gofmt metrics imports 5831666
-
test,ci: MQ e2e redeploys operator; bump otel for Trivy 933b71c
-
ci: Set KIND via GITHUB_ENV in e2e install step 89ff433
-
ci: E2e PATH and sync deepcopy with controller-gen 4c1e294
-
ci: Unblock CI and e2e on GitHub Actions c29429c
-
ci: Pin correct setup-terraform action SHA 6ce2bb6
-
queue: Defer MQ admin client until connection is Ready 93ae3a7
-
mqrest: Drop maxmsglen from queue DISPLAY on mqweb 9.4 e947130
-
logging: Reuse err var for Setup after Load 1576255
Features
-
webhook: Add v1beta1 validating admission 1c495bb
-
samples: Default sample CRs to v1beta1 (8d-4) 3065354
-
webhook: Conversion webhook for v1beta1 hub (8d-2) 7ca807f
-
api: Scaffold v1beta1 types and multi-version CRDs (8d-1) (#71) 575c597
-
mqrest: Probe all QLOCAL define-only candidates (#69) 9bf02b8
-
auth: AUTHREC channel/namelist profile parity (AUTH-9) 1d66960
-
channel: Add RCVR receiver channel type (AUTH-8b) 4805573
-
channel: Add SDR sender channel type (AUTH-8a) (#63) 9ff4289
-
mqrest: Wire share DISPLAY probe into queue drift (Day 27 MQ-3) (#62) 8cb7d51
-
mqrest: DISPLAY capability probe spike (Day 22 MQ-1) (#58) f89e579
-
auth: QMGRMAP CHLAUTH remoteQueueManager field d3c20f1
-
channelauth: SSLPEERMAP CHLAUTH CRD and mqrest 3d00a85
-
channelauthrule: USERMAP CHLAUTH CRD and mqrest SET edea155
-
topic: Add publishScope and subscribeScope typed fields (#39) 2d94ff7
-
channel: Add sslCipherSpec and sslClientAuth fields (#36) 416de83
-
channel: Add maxInstances and maxInstancesClient fields (#35) e64e085
-
api: Add Channel.spec.transportType typed field (#32) 7fbad61
-
api: Add Channel.spec.maxMsgLength typed field (#31) 19ce060
-
api: Add Queue remote xmitQueue and remoteQueueManager de3c925
-
api: Add Queue.spec.targetQueue for alias queues cfc8f75
-
api: Add typed description field to Queue spec 5a88796
-
api: Add typed maxDepth field to Queue spec 3725b14
-
api: Add CEL admission rules per ADR-0025 5d3f86b
-
mqrest: Add mqweb retry and circuit breaker f514861
-
api: Add deletion and adoption lifecycle policies c1fb8f0
-
runtime: Scope Secret cache and warn on admin default 79ca386
-
controller: Watch referenced Secrets for QMC recovery 414ef89
-
controller: Add spec.suspend and reconcile-now e39edef
-
controller: Expose configurable requeue intervals c5f9860
-
controller: Periodic jittered drift resync 2322d7c
-
e2e: Wire Helm admission webhook e2e path 7402c3d
-
mqpcf: Scaffold PCF adapter behind MQAdmin 7dbed06
-
status: Expose desiredMQSC on Topic, Channel, auth CRs 840c4b7
-
auth: Drift-aware GET reconcile for auth CRs 26a25b7
-
operator: Gate readyz on QMC connectivity c5eaf5c
-
controller: Observe-only drift policy and Phase 4 DISPLAY 4df20cd
-
validation: ChannelAuthRule channel referential checks 37021c7
-
validation: Tighten MQ object name checks 6d701a4
-
controller: Status UX and reconcile concurrency 0ffdcf3
-
webhook: Require opt-in for insecure QMC TLS 56b7fec
-
queue: Expose status.desiredMQSC for GitOps debug 64e479e
-
auth: Add GetChannelAuth and GetAuthority MQAdmin paths fcd4dd8
-
auth: Add ChannelAuthRule and AuthorityRecord CRDs b960325
-
webhook: Deny QMC delete when dependents exist 48b5f39
-
controller: Expand Kubernetes event emission 0c267c6
-
messaging: Reconcile Topic and Channel CRs via mqweb 353135d
-
metrics: Add Prometheus metrics and Helm alerts bdc414f
-
kind: Add mq console URL and runmqsc CLI tasks 786dc55
-
chart: Add Helm chart, reference docs, and MQ e2e fixtures 0acb510
-
Add Queue and QueueManagerConnection reconcilers f34f98d
-
cluster: Haproxy ingress, Argo CD, upstream IBM MQ 6bc8ba4
-
Scaffold Kurator operator (Phase 1) b27dd50
-
logging: Add configurable slog logger f3f76bf
Refactoring
-
webhook: Split v1beta1 envtest suite 4de93de
-
mqrest: Table-drive CHLAUTH auth unit tests 69c63de
-
controller: Collapse workload type switches via MQObject c922a80
-
validation: Keep webhooks stateful-only da3dfe9
-
controller: Delete dead drift helpers and padding tests a01bcf5
-
[breaking] Rename project Kurator to MKurator d2c5f95
-
controller: Migrate to events EventRecorder API 2aa19fb
-
[breaking] Konih module path, docs hub, admission webhooks 90df81f
-
controller: Shared reconcile helpers and connection fixes 85a49cc
Merge
-
Bring dependabot go minor patch fixes 01afe8f
-
Bring task and docs fixes from chore/tst-4-blockaddr-default-samples 26b1436
-
Bring kubeconfig task fix from chore/tst-4-blockaddr-default-samples f52bb76
Container image
ghcr.io/conduit-ops/mkurator:0.12.2
Multi-arch (linux/amd64, linux/arm64), distroless nonroot base.
OCI attestations (SBOM + SLSA provenance) are attached in GHCR. Verify the signature:
cosign verify \
--certificate-oidc-issuer https://token.actions.githubusercontent.com \
--certificate-identity-regexp '^https://github.com/conduit-ops/MKurator/.+' \
ghcr.io/conduit-ops/mkurator@sha256:4bd45c7eed63ad18cca7abcab717ed92f3986f2a1128a8b82c00ad66ec8b90e3Install (Kustomize)
kubectl apply -f install-crds.yaml
kubectl apply -f install.yamlInstall (Helm — OCI)
helm upgrade --install mkurator oci://ghcr.io/conduit-ops/mkurator \
--version 0.12.2 \
--namespace mkurator-system \
--create-namespace \
--set image.repository=ghcr.io/conduit-ops/mkurator \
--set image.tag=0.12.2Install (Helm — GitHub Release tarball)
helm upgrade --install mkurator mkurator-0.12.2.tgz \
--namespace mkurator-system \
--create-namespace \
--set image.repository=ghcr.io/conduit-ops/mkurator \
--set image.tag=0.12.2Verify checksums with sha256sum -c checksums.txt.