mirror of
https://github.com/Studio-Saelix/sencho.git
synced 2026-09-04 14:45:41 +00:00
fix: recognize clean one-shot completions in health gate and drift (#1691)
* fix: recognize clean one-shot completions in health gate and drift Treat exit 0 with restart policy no/absent as successful completion so init and migration jobs no longer fail post-update observation or show as service-missing, while long-running restart policies still fail closed. * fix: ignore residual health on clean one-shots and honor deploy.restart_policy Completed exit-0 jobs with no-restart intent no longer fail the health gate on leftover starting/unhealthy state, and Drift treats deploy.restart_policy with Compose precedence so any/on-failure services are not mistaken for one-shots. * fix: require explicit Compose restart no for one-shot recognition Docker inspect reports restart no for both intentional jobs and bare services that omit restart, so Health Gate and Drift now require declared restart:""no"" (or deploy.restart_policy condition none) and load Compose intent once per gate.
This commit is contained in:
@@ -26,6 +26,8 @@ export interface DeclaredService {
|
||||
image?: string;
|
||||
/** Service `network_mode:` as declared (e.g. `host`), or undefined. */
|
||||
networkMode?: string;
|
||||
/** Service `restart` from raw YAML parse. The effective-model path may set this via normalizeComposeRestartIntent (including deploy.restart_policy). Null when unset. */
|
||||
restart?: string | null;
|
||||
}
|
||||
|
||||
/** A top-level networks:/volumes: entry. */
|
||||
@@ -200,6 +202,7 @@ export function parseComposeDependencies(content: string): DeclaredCompose {
|
||||
ports,
|
||||
image: asString(svc.image),
|
||||
networkMode: asString(svc.network_mode),
|
||||
restart: asString(svc.restart) ?? null,
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user