Repository navigation
fix(charts): refuse a mirror with no connectors; kates deploy keeps them - #585
Merged
Merged
Conversation
Helm replaces a list rather than merging it, so a mirrors: override that names only the source drops the default entry's connector blocks. Strimzi then reports the KafkaMirrorMaker2 Ready with zero connectors: healthy workers mirroring nothing. mirror-maker2.validate now refuses a mirror with neither sourceConnector nor checkpointConnector. kates deploy hit exactly this on every non-kind cluster: it sets mirrors[0].source.* with --set, which merges into a list from a values file but replaced the chart's default list, and values-generic.yaml had none. It now restates the default mirror, connectors and source authentication included. mirror-maker2 0.11.22, kates-platform 0.8.20.
bmscomp
added a commit
that referenced
this pull request
Nov 2, 2026
…tor default main fixed the connector-less mirror its own way (refused at render time, values-generic.yaml restates the default mirror). This branch's default connectors and -f values.yaml would make that refusal dead code, so both are dropped; the PR keeps only the Kafka egress fix for IPv6.
bmscomp
added a commit
that referenced
this pull request
Nov 2, 2026
…latform 0.8.21 main released 0.11.22/0.8.20 with #585, so the egress change needs its own bump.
bmscomp
added a commit
that referenced
this pull request
Nov 2, 2026
* fix(mm2): deploy gets working mirrors on every cluster, IPv6 included On any cluster but kind, `kates deploy` installed MirrorMaker 2 with the generic overlay, which has no mirrors list, and `--set mirrors[0].source…` then made Helm replace the chart's default mirror with one holding only a clusterName and a namespace: no sourceConnector, no checkpointConnector, no source credentials. Strimzi creates no connector for an absent block and still reports the KafkaMirrorMaker2 Ready, so nothing was replicated. - cli: deploy passes the chart's values.yaml as a values file ahead of the --set flags, so they merge into the default mirror. - mirror-maker2 0.11.22: a mirror without a connector block gets the connector (tasksMax 1) instead of none. Kafka egress drops ipBlock 0.0.0.0/0, which matches no IPv6 address, for the Kafka ports at any address. - kates-platform 0.8.20 packs it; the book's version table follows. Tested on a k3d cluster: both connectors RUNNING and every Helm test of the release passes. * ci(mm2): the dropped Kafka egress ipBlock 0.0.0.0/0 is a deliberate render change 0.11.22 admits the Kafka ports at any address, IPv6 included, so the additivity check reads the old ipBlock as REMOVED. It is a wider rule, not a narrower one: record it in ALLOWED_LINE_REMOVALS with the reason. * fix(mm2): the IPv6 egress fix ships as mirror-maker2 0.11.23, kates-platform 0.8.21 main released 0.11.22/0.8.20 with #585, so the egress change needs its own bump.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
A
mirrors:override that names only the source replaces the chart's default list, connector blocks and source authentication included. Strimzi then reports theKafkaMirrorMaker2Ready with zero connectors: healthy workers mirroring nothing, and nothing inkubectl getsays so.kates deployproduced exactly this on every non-kind cluster. It setsmirrors[0].source.clusterName/.namespacewith--set, which merges into a list from a values file (values-kind.yamlhas one) but replaces the chart's default list.values-generic.yamlhad nomirrorskey. This showed up on a live lab release that had zero connectors and no source credentials.Changes
mirror-maker2.validaterefuses a mirror with neithersourceConnectornorcheckpointConnector. It runs last in the helper, so the more specific checks still name their own problem first.values-generic.yamlrestates the default mirror (RF 3, both connectors,kates-mm2SCRAM credentials), so the CLI's--setmerges into it.fail_expectedcase inci-mirror-maker2.yml.Verified locally
values-generic.yamlrender both connectors with source auth. Before this change they hit the new guard.scripts/chart_bumps.py origin/main,scripts/check-versions.shandhelm lint charts/kates-platform --set mirror-maker2.enabled=trueall pass.Not run against a cluster.
Behaviour change:
kates deployon a non-kind cluster now runs a working loopback mirror (krafter into itself, assource.*topics) instead of an idle one.