···6464 };
6565 path = [ config.services.garage.package ];
6666 script = ''
6767- # Wait for the garage RPC port to accept connections.
6868- for i in $(seq 1 30); do
6969- if garage status >/dev/null 2>&1; then
7070- break
7171- fi
7272- sleep 1
7373- done
6767+ # Wait for garage to be reachable.
6868+ for _ in $(seq 1 30); do garage status &>/dev/null && break; sleep 1; done
74697575- status_output=$(garage status 2>&1)
7676- echo "garage status output:"
7777- echo "$status_output"
7070+ status=$(garage status 2>&1)
7171+ echo "$status"
78727979- # Only assign a layout if our node hasn't been given a role yet.
8080- if echo "$status_output" | grep -q "NO ROLE ASSIGNED"; then
7373+ if echo "$status" | grep -q "NO ROLE ASSIGNED"; then
8174 node_id=$(garage node id -q | cut -d@ -f1)
8282- echo "Assigning layout to node $node_id"
8375 garage layout assign -z dc1 -c 10G "$node_id"
8484- echo "Applying layout version 1"
8576 garage layout apply --version 1
8677 else
8778 echo "Node already has a role, skipping layout assignment"