Files
orca/examples/full-stack/postgres.md
T
Jon Chery 2c26a6d54f docs(P03): full-stack examples — 5 jobspecs + rendered artifacts + walkthrough
P03 — full-stack example with ingress configured (REQ-094; gate C-20).

examples/full-stack/:
- web-app.md: kind Service, process runtime, 3 replicas, Unix socket
  (default R-007), rolling update, constraints (node.role==web),
  affinity (zone==a weight 80), lifecycle hooks (post_start/pre_stop).
- api.md: kind Service, process runtime, 2 replicas, TCP opt-in
  (service.bind: 127.0.0.1, R-007), canary update with manual promote,
  constraints (node.role==api, node.cpus>=2), env vars.
- worker.md: kind Job, process runtime, one-shot, timeout 300s, env
  vars, lifecycle hooks (register/drain).
- log-shipper.md: kind Service (DaemonSet workaround — parser gap),
  process runtime, constraints (node.role==logs), env vars. Notes the
  v0.9 parser gap (schedule: block not wired) in a callout.
- postgres.md: kind Service, process runtime, 1 replica, blue-green
  update, volumes with replication (replicate:peer-b,peer-c via
  Syncthing), constraints (node.role==db, node.cpus>=4, node.memory>=8192).
- rendered/: Traefik dynamic YAML (web-app, api) + systemd units
  (web-app, api, log-shipper) showing what Orca generates on target nodes.
- README.md: end-to-end walkthrough (init -> node join -> capacity set
  -> ns create -> job run -> list --watch -> inspect rendered -> verify
  ingress -> drain/rollback). Cross-links to docs/ingress.md.
- examples_test.go: Go test that parses + validates all 5 jobspecs
  against the current parser and schema validators (gate C-20).

All 5 jobspecs pass jobspec.ParseFile + schema.ValidatorFor(kind).

---ci---
project: orca
phase: 3
milestone: v0.10
status: execute
---/ci---
2026-08-05 20:59:33 +00:00

1.0 KiB

kind, name, count, runtime, ports, restart, update, service, health, volumes, constraints, env
kind name count runtime ports restart update service health volumes constraints env
Service postgres 1
one_of command
process /usr/lib/postgresql/16/bin/postgres -D /var/lib/postgresql/data
name port
pg 5432
mode attempts delay
service 5 10s
strategy min_healthy_time healthy_deadline
blue-green 60s 10m
name port
postgres 5432
check_type interval timeout unhealthy_threshold
http 15s 5s 3
name type source target read_only
data host replicate:peer-b,peer-c /var/lib/postgresql/data false
node.role == "db"
node.cpus >= 4
node.memory >= 8192
POSTGRES_DB POSTGRES_USER PGDATA
appdb orca /var/lib/postgresql/data

PostgreSQL

Database service with a single replica, blue-green update strategy, and volume replication via Syncthing (replicate:peer-b,peer-c). The data volume is replicated to two peers for fault tolerance. Health check on port 5432. Constraints require DB-role nodes with >= 4 vCPUs and >= 8 GiB memory.