diff --git a/cli/src/wildpc_cli/manifest.py b/cli/src/wildpc_cli/manifest.py index 91a1757..20b9841 100644 --- a/cli/src/wildpc_cli/manifest.py +++ b/cli/src/wildpc_cli/manifest.py @@ -18,7 +18,6 @@ from wildpc_core.manifest import ( # noqa: F401 — explicit re-exports for typ PathDeployment, ProgramSpec, Reach, - ReadinessHttpGet, RemoteDeployment, Requirement, RestartPolicy, diff --git a/core/src/wildpc_core/manifest.py b/core/src/wildpc_core/manifest.py index 70d4696..cbe2254 100644 --- a/core/src/wildpc_core/manifest.py +++ b/core/src/wildpc_core/manifest.py @@ -142,19 +142,16 @@ LaunchSpec = Annotated[ # --------------------- -class ReadinessHttpGet(BaseModel): - http_get: str - timeout_seconds: int = 2 - interval_seconds: int = 2 - success_codes: list[int] = Field(default_factory=lambda: [200]) - - class SystemdSpec(BaseModel): enable: bool = True user: bool = True description: str | None = None + # Unit ordering (systemd ``After=``). There is deliberately no ``requires:`` + # partner emitting ``Requires=``: that binds lifecycles, so stopping postgres + # would stop everything downstream, and ordering is what callers actually + # want. A deployment's own ``requires:`` list is the relationship model (see + # docs/relationships.md), not systemd wiring. after: list[str] = Field(default_factory=list) - requires: list[str] = Field(default_factory=list) wanted_by: list[str] = Field(default_factory=lambda: ["default.target"]) restart: RestartPolicy = RestartPolicy.ON_FAILURE restart_sec: int = 2 @@ -172,7 +169,6 @@ class SystemdSpec(BaseModel): start_limit_burst: int = 10 start_limit_interval_sec: int = 3600 no_new_privileges: bool = True - readiness: ReadinessHttpGet | None = None exec_reload: str | None = None # Commands run after the main process starts (systemd ``ExecStartPost=``), one # line each — e.g. an OpenBao auto-unseal step. Failures don't fail the unit.