Skip to content

First-class multi-host stacks (one stack → N nodes, per-host config overlay, fan-out deploy/status) #188

Description

@gfargo

First-class multi-host stacks (one stack deployed to N nodes with per-host config)

strut.conf [stacks] maps each stack to a single host. But some stacks legitimately run on every node — e.g. our buoy per-node homelab dashboard runs on compass + watch + harbor, one image (ghcr.io/gfargo/buoy), with a per-node config file (buoy.<node>.yaml) selected via BUOY_CONFIG_FILE.

Today there's no way to express "buoy deploys to these 3 hosts" — you'd deploy it 3× with --host overrides and manually pick the right per-node yaml, and strut list/drift/status only know about the one mapped host.

Ask

  • Allow a stack → multiple hosts in [stacks] (e.g. buoy = compass watch harbor).
  • Support a per-host config/compose overlay convention (<stack>.<host>.yaml, compose.<host>.yml, .<host>.env) auto-selected per target host.
  • Make deploy/release/status/drift/health fan out across all mapped hosts (with per-host results), so "deploy buoy everywhere" and "is buoy healthy on all nodes" are one command each.

This is the natural home for fleet-wide agents (dashboards, log shippers, node exporters).

Activity

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

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions