Skip to content

Gateway advertisement names collide when rule or node names contain a dash #762

Closed

Description

@privateip

Summary

The gateway names each rule advertisement <rule>-<node>-v4 or -v6. A dash can appear inside both rule and node names, so two different rule/node pairs can produce the same name. Rule a-b on node c and rule a on node b-c both produce a-b-c-v4.

When that happens, two gateway nodes write the same BGPAdvertisement:

  1. Each node's applyBGPAdvertisements sees the object exists and backfills its own galactic.datum.net/network-rule and galactic.datum.net/gateway-node labels and owner reference, so the labels flip on every pass.
  2. Its prefixes flip between the two rules' VIPs.
  3. withdrawRuleAdvertisements deletes by constructed name, so withdrawing one rule from one node deletes the other rule's advertisement.

Where

Reproduce

  1. Two gateway nodes named c and b-c in one namespace.
  2. NetworkRules a-b and a in that namespace, each loaded on a different one of those nodes.
  3. Both nodes reconcile the same a-b-c-v4 BGPAdvertisement.

Expected

Every rule/node pair maps to its own advertisement. One option is to keep the readable prefix and append a short hash of the rule and node names, then select by the two labels everywhere instead of rebuilding the name.

Found while fixing #714 (#758).

Activity

  1. added
    bugSomething isn't working
    needs triageIssues that need to be triaged before implementing
    on Oct 7, 2026
  2. removed
    needs triageIssues that need to be triaged before implementing
    on Oct 7, 2026
  3. added theissue type on Oct 7, 2026
  4. self-assigned this
    on Oct 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't workinggalactic-gatewayRelated to galactic-gateway

Type

Fields

Priority

None yet

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions