deploy: keep manager health out of plan

This commit is contained in:
Codex
2026-08-21 16:23:59 +03:00
parent a9ea31f00a
commit 26dbcfd262
2 changed files with 111 additions and 10 deletions
+41 -10
View File
@@ -12234,7 +12234,33 @@ def validate_device_plane_manager_v3_active_baseline(descriptor):
}
def validate_device_plane_manager_activation_predecessor(payload_dir):
def device_plane_manager_preserved_runtime_health_services(descriptor):
if descriptor.get("schemaVersion") == (
"nodedc.device-plane.device-manager-release.v3"
):
return (
"device-control-core",
"device-postgres",
)
return ("device-postgres",)
def validate_device_plane_manager_preserved_runtime_health(descriptor):
services = device_plane_manager_preserved_runtime_health_services(
descriptor
)
for service in services:
healthcheck_compose_service("device-plane", service)
return services
def validate_device_plane_manager_activation_predecessor(
payload_dir,
*,
preflight_phase,
):
if preflight_phase not in ("plan", "apply"):
die("Device Manager predecessor preflight phase is invalid")
descriptor = validate_device_plane_manager_release_payload(
payload_dir
)
@@ -12367,13 +12393,16 @@ def validate_device_plane_manager_activation_predecessor(payload_dir):
)
if installed_descriptor != predecessor_descriptor:
die("Device Manager release predecessor is not current")
for service in (
"device-control-core",
"device-manager",
"device-postgres",
):
healthcheck_compose_service("device-plane", service)
runtime = {"accepted": True}
runtime = {
"accepted": True,
"preservedRuntimeHealth": "deferred-to-apply",
}
if preflight_phase == "apply":
runtime["preservedRuntimeHealth"] = (
validate_device_plane_manager_preserved_runtime_health(
descriptor
)
)
v3_baseline = validate_device_plane_manager_v3_active_baseline(
descriptor
)
@@ -19306,7 +19335,8 @@ def plan_artifact(artifact):
):
device_plane_manager_activation_preflight = (
validate_device_plane_manager_activation_predecessor(
payload_dir
payload_dir,
preflight_phase="plan",
)
)
if is_device_plane_edge_core_channel_bootstrap_slice(
@@ -24614,7 +24644,8 @@ def apply_artifact(artifact):
entries,
):
validate_device_plane_manager_activation_predecessor(
payload_dir
payload_dir,
preflight_phase="apply",
)
if is_device_plane_edge_core_channel_bootstrap_slice(
component,