Skip to content

operator: a site with a ClusterIP gateway never reaches Connected, and gateway.address does not help #457

Closed

Description

@hexfusion

Problem

When the operator creates this site's own GridSite and the gateway is a ClusterIP Service, the site never leaves Discovered. Connected and Available stay False with the message "gateway address not yet available", and setting gateway.address does not help.

Sites whose own GridSite is declared with a gateway endpoint are not affected.

Cause

  • gateway.rs resolve returns the gateway.address override or a LoadBalancer address. classify treats every other Service type as no address.
  • main.rs maybe_start_swim is the only caller of resolve, so the address only reaches SWIM's advertisement to peers. Without SWIM, as under Local membership, nothing reads gateway.address.
  • local_records.rs creates the own GridSite with no gatewayEndpoint, and the phase step in controller/grid_site.rs reads only spec.gatewayEndpoint.

Fix

  1. Resolve this site's gateway address independent of SWIM, from the override or LoadBalancer discovery, and pass it to the GridSite controller.
  2. For the own GridSite, use spec.gatewayEndpoint when set, else the resolved address. The operator never writes the spec.
  3. With neither set, report a steady reason such as GatewayAddressUndeclared, with a message telling the admin to set gateway.address.

Tests

  • ClusterIP gateway with gateway.address set reaches Connected.
  • ClusterIP gateway with neither set reads the new reason.
  • Local membership without SWIM reads the override.

Activity

  1. added this to the v0.3.0 milestone on Oct 28, 2026
  2. evacchi commented on Oct 29, 2026

    @evacchi
    Contributor

    working on this #463

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions