Use this file to discover all available pages before exploring further.
The machine command is the primary surface for managing the physical and virtual nodes that make up a Ployz cluster. Each node is a peer — there is no master. Machine operations are explicit commands with visible preconditions and structured results. They do not trigger background reconciliation.
ployzctl machine <subcommand> [flags]
All machine operations communicate with the running ployzd daemon over the local Unix socket. Ensure the daemon is running before issuing machine commands.
List all machines currently known to the cluster, including their lifecycle state, overlay IP, region, and role.
ployzctl machine lsployzctl machine list
The response includes each machine’s ID, lifecycle, authority posture, region, region role, overlay IP, optional subnet, and creation timestamp. Use --json to get the full structured payload for scripting.
ployzctl --json machine ls
rtt — round-trip time between machines
Probe round-trip latency between all machine pairs in the cluster. Reports median and standard deviation in milliseconds.
ployzctl machine rtt
Any reachability warnings (e.g., machines that could not be probed) are included in the warnings field of the response. Use --json to surface them in scripts.
init — initialize a remote machine
Initialize a remote machine and join it to the cluster over SSH. The target must be reachable via SSH from the local machine. The daemon installs itself on the remote host and joins the named network.
Git ref (branch, tag, or commit SHA) to check out when using --install-source git.
add — add machines to the cluster
Add one or more already-running machines to the cluster. The targets must already have ployzd installed and running. Unlike init, add does not SSH in to install the daemon.
Git ref to check out when --install-source git is set.
The response reports which machines joined successfully, which are awaiting self-publication, and which failed at each stage (preflight, join, self-record, ready, enable).
storage promote — promote machines to storage role
Promote one or more machines to the storage role, configuring them to participate in the replicated NATS control-plane store. This is an irreversible role assignment.
The target replica count for the storage cluster after promotion.
Promoting a machine to the storage role grants it access to all cluster-private material stored in NATS, including TLS keys and invite tokens. Only promote machines you control and trust.
update — update machine daemon versions
Update the ployzd daemon on one or more machines. If no machine IDs are provided, all machines in the cluster are updated.
Force the standby transition without waiting for workloads to migrate away.
rm — remove a machine
Remove a machine from the cluster. By default, the daemon attempts to perform online cleanup (draining workloads, transferring state) before removing the membership record.
Skip online target cleanup and remove only the membership record from the cluster store. Use when the machine is unreachable or already destroyed.
--force skips workload migration and state transfer. Any persistent volumes on the machine will be lost. Drain and migrate workloads first if their data matters.
Invite tokens allow a machine to join a cluster without direct SSH access from the coordinator. The inviting machine creates a token with a TTL; the joining machine imports it.
invite create — create an invite token
Create a new invite token that a machine can use to join the cluster.
# List all machinesployzctl machine ls# Initialize a remote machine and join it to the 'prod' networkployzctl machine init ubuntu@10.0.1.5 --network prod --runtime docker# Add a machine that already has ployzd runningployzctl machine add --identity ~/.ssh/id_ed25519 10.0.1.6# Promote two machines to storage role with 3 replicasployzctl machine storage promote --replicas 3 machine-a machine-b machine-c# Update all machines to the latest daemon versionployzctl machine update# Drain a machine before maintenanceployzctl machine drain machine-a# Force-remove an unreachable machineployzctl machine rm machine-a --force# Create a 10-minute invite tokenployzctl machine invite create --ttl-secs 600# Import an invite token on the joining machineployzctl machine invite import --token eyJ...