Skip to content

conduct

Field Value
Purpose Multi-server orchestrator — coordinates waiter/lay across distributed nodes
Repo AmadlaOrg/conduct

Overview

conduct is like a conductor — each server plays a different part. Not all servers are equal; conduct supports heterogeneous node roles and coordinates deployment, installation, and health checking across them.

On a single server, Podman (rootless, Quadlet) with systemd handles container restarts. conduct handles what happens when you have multiple servers.

Commands

Command Description
conduct orchestrate Coordinate waiter/lay across nodes based on topology entity
conduct status Show cluster-wide status
conduct settings Manage conduct configuration

Dependencies

Library Purpose
LibraryUtils File operations, configuration
LibraryFramework CLI framework

Pipeline Position

conduct sits outside the main pipeline — it coordinates the pipeline across multiple servers.

Server A ─── lay + waiter (web tier)
Server B ─── lay + waiter (app tier)      ← conduct coordinates
Server C ─── lay + waiter (database tier)

How It Works

conduct reads topology/cluster entities that describe which servers exist, what role each plays, and how they relate. It then coordinates lay and waiter across those nodes — installing software and deploying services in the right order on the right machines.

  • Reads topology/cluster entities describing node roles and placement
  • Orchestrates waiter/lay across distributed nodes
  • Handles role-based placement, replica management, failover
  • Supports heterogeneous node roles (not all servers run the same thing)

Example Usage

# Deploy across a 3-node cluster
conduct orchestrate -f cluster.yaml

# Check status of all nodes
conduct status

# Deploy only the web tier
conduct orchestrate -f cluster.yaml --role web

Encouraged Infrastructure

  • Podman (rootless, Quadlet) — single-server container management via systemd
  • HAProxy — load balancing and traffic management
  • systemd — restarts failed containers on a single server
  • conduct — coordinates across servers when scaling beyond one

Current Gaps

  • Concept stage — no repository or code yet
  • Topology entity type not yet defined