Skip to content

Support multiple IP addresses per remote member #264

@kumaakh

Description

@kumaakh

Summary

Some server devices (NVRs, embedded systems, multi-homed servers) expose more than one network interface / IP address. Fleet should be able to store all known IP addresses for a member and fall back to the next one if the primary is unreachable.

Motivation

Today update_member accepts a single host field. If that IP becomes unreachable (interface down, VLAN change, etc.), the member is effectively offline even if another interface on the same device is healthy. Operators must manually update the host to recover.

Proposed Behaviour

  • register_member / update_member accept a list of host addresses (e.g. ["192.168.1.12", "10.0.0.5"]).
  • Fleet tries addresses in order; on connection failure it automatically retries the next address.
  • member_detail / list_members surfaces the full address list and which one is currently active.
  • The fallback order is user-configurable (priority index).

Acceptance Criteria

  • update_member accepts an alternate_hosts array in addition to the existing host field.
  • execute_command and execute_prompt transparently retry alternate hosts on TCP-level connection failure.
  • Active host is visible in member_detail output.
  • Fallback is logged at INFO level (not silently swallowed).

Notes

Similar to how SSH clients support HostName aliases or load balancer health checks — store all, try in order.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions