Add congenital-optimist support to lab tool

- Add congenital-optimist as local deployment target
- Use direct nixos-rebuild for local deployment (no SSH)
- Update all machine arrays and help text to include 4th machine
- Optimize deployment handling for local vs remote machines
This commit is contained in:
Geir Okkenhaug Jerstad 2025-06-07 18:06:25 +00:00
parent 7ac9c0fc98
commit b781252847

View file

@ -41,6 +41,20 @@ writeShellScriptBin "lab" ''
local mode="''${2:-boot}" # boot, test, or switch
case "$machine" in
"congenital-optimist")
# Local deployment - no SSH needed
log "Deploying $machine (mode: $mode) locally"
# Deploy the configuration locally
log "Running nixos-rebuild $mode locally..."
if ! sudo nixos-rebuild $mode --flake "$HOMELAB_ROOT#$machine"; then
error "Failed to deploy configuration to $machine"
exit 1
fi
success "Successfully deployed $machine"
return 0
;;
"sleeper-service")
local target_host="sma@sleeper-service"
;;
@ -52,7 +66,7 @@ writeShellScriptBin "lab" ''
;;
*)
error "Unknown machine: $machine"
error "Available machines: sleeper-service, grey-area, reverse-proxy"
error "Available machines: congenital-optimist, sleeper-service, grey-area, reverse-proxy"
exit 1
;;
esac
@ -79,7 +93,7 @@ writeShellScriptBin "lab" ''
# Update all machines function
update_all_machines() {
local mode="''${1:-boot}" # boot, test, or switch
local machines=("sleeper-service" "grey-area" "reverse-proxy")
local machines=("congenital-optimist" "sleeper-service" "grey-area" "reverse-proxy")
local failed_machines=()
log "Starting update of all machines (mode: $mode)"
@ -129,7 +143,7 @@ writeShellScriptBin "lab" ''
"deploy")
if [[ $# -lt 2 ]]; then
error "Usage: lab deploy <machine> [mode]"
error "Machines: sleeper-service, grey-area, reverse-proxy"
error "Machines: congenital-optimist, sleeper-service, grey-area, reverse-proxy"
error "Modes: boot (default), test, switch"
exit 1
fi
@ -167,13 +181,14 @@ writeShellScriptBin "lab" ''
echo ""
echo "Available commands:"
echo " deploy <machine> [mode] - Deploy configuration to a machine"
echo " Machines: sleeper-service, grey-area, reverse-proxy"
echo " Machines: congenital-optimist, sleeper-service, grey-area, reverse-proxy"
echo " Modes: boot (default), test, switch"
echo " update [mode] - Update all machines"
echo " Modes: boot (default), test, switch"
echo " status - Check infrastructure connectivity"
echo ""
echo "Examples:"
echo " lab deploy congenital-optimist boot # Deploy workstation for next boot"
echo " lab deploy sleeper-service boot # Deploy and set for next boot"
echo " lab deploy grey-area switch # Deploy and switch immediately"
echo " lab update boot # Update all machines for next boot"