Skip to content

fix(mm2): Kafka egress admits any address, IPv6 included - #584

Merged
bmscomp merged 4 commits into
mainfrom
fix/mm2-generic-clusters
Nov 2, 2026
Merged

bmscomp merged 4 commits into
mainfrom
fix/mm2-generic-clusters

Conversation

@bmscomp

@bmscomp bmscomp commented Nov 2, 2026 •

Copy link
Copy Markdown
Owner

The MirrorMaker 2 workers' Kafka egress rule named ipBlock 0.0.0.0/0, which matches no IPv6 address: on an IPv6 or IPv6-first cluster the workers reached no broker. The rule now admits the Kafka ports at any address, as the hook Jobs' policy already did.

The connector-less mirror this PR first fixed is handled by #585 on main (refused at render time, values-generic.yaml restates the default mirror); this branch's own connector default and deploy -f values.yaml were dropped in the merge so that refusal stays live.

  • mirror-maker2 0.11.22: Kafka egress without the ipBlock; README and values wording follow; changelog entry added.
  • kates-platform 0.8.20: changelog notes it.
  • ci-mirror-maker2: the dropped ipBlock line is recorded as a deliberate render change (the rule gets wider, not narrower).

Tested

  • make mm2-chart-lint mm2-chart-template mm2-chart-guards, scripts/check-versions.sh, scripts/gen-version-matrix.sh --check.
  • The Chart validation additivity step run locally against 0.11.21: base and all 14 overlays additive.

Not covered

  • Not exercised on a real IPv6 cluster.
  • An external source on a port outside networkPolicy.kafka.ports still needs that port added, as the README says.

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.
…ender 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.
…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 bmscomp changed the title fix(mm2): deploy gets working mirrors on every cluster, IPv6 included fix(mm2): Kafka egress admits any address, IPv6 included 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
bmscomp merged commit a5a18ee into main Nov 2, 2026
64 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant