feat(recovery): classify non110 harbor repair lane blocker
Some checks failed
CD Pipeline / workflow-shape (push) Has been cancelled
CD Pipeline / cancel-stale-cd (push) Has been cancelled
CD Pipeline / tests (push) Has been cancelled
CD Pipeline / build-and-deploy (push) Has been cancelled
CD Pipeline / post-deploy-checks (push) Has been cancelled
AWOOOI Harbor 110 Local Repair / workflow-shape (push) Successful in 0s
AWOOOI Harbor 110 Local Repair / harbor-110-local-repair (push) Has been cancelled

This commit is contained in:
Your Name
2026-07-01 08:25:35 +08:00
parent 40b2742456
commit 77e0b58ee4
4 changed files with 252 additions and 0 deletions

View File

@@ -241,6 +241,17 @@ def validate_harbor_registry_controlled_recovery_receipt(
"gitea_queue_current_cd_harbor_retrying_unavailable": gitea_queue[
"current_cd_harbor_retrying_unavailable"
],
"gitea_queue_current_cd_harbor_repair_requires_110_controlled_lane": (
gitea_queue["current_cd_harbor_repair_requires_110_controlled_lane"]
),
"gitea_queue_current_cd_harbor_repair_blocked_by_awoooi_host": (
gitea_queue[
"current_cd_harbor_repair_blocked_by_no_matching_awoooi_host"
]
),
"gitea_queue_current_cd_harbor_repair_lane_classifier": gitea_queue[
"current_cd_harbor_repair_lane_classifier"
],
"gitea_queue_cd_jobs_stale_or_mismatched": gitea_queue[
"cd_run_jobs_stale_or_mismatched"
],
@@ -332,6 +343,12 @@ def _control_path_readiness(
queue_jobs_cross_workflow = bool(
gitea_queue["harbor_110_repair_jobs_cross_workflow_mismatch"]
)
cd_harbor_repair_requires_110_lane = bool(
gitea_queue["current_cd_harbor_repair_requires_110_controlled_lane"]
)
cd_harbor_repair_blocked_by_awoooi_host = bool(
gitea_queue["current_cd_harbor_repair_blocked_by_no_matching_awoooi_host"]
)
cd_jobs_stale = bool(gitea_queue["cd_run_jobs_stale_or_mismatched"])
cd_jobs_head_sha_mismatch = bool(gitea_queue["cd_run_jobs_head_sha_mismatch"])
runner_timeout = bool(ssh_diagnosis["runner_systemctl_show_timeout_seen"])
@@ -350,6 +367,10 @@ def _control_path_readiness(
queue_no_matching_runner=queue_no_matching_runner,
queue_jobs_stale=queue_jobs_stale,
queue_jobs_cross_workflow=queue_jobs_cross_workflow,
cd_harbor_repair_requires_110_lane=cd_harbor_repair_requires_110_lane,
cd_harbor_repair_blocked_by_awoooi_host=(
cd_harbor_repair_blocked_by_awoooi_host
),
cd_jobs_head_sha_mismatch=cd_jobs_head_sha_mismatch,
cd_jobs_stale=cd_jobs_stale,
public_registry_ready=public_registry_ready,
@@ -385,6 +406,15 @@ def _control_path_readiness(
],
"harbor_110_repair_jobs_stale_or_mismatched": queue_jobs_stale,
"harbor_110_repair_jobs_cross_workflow_mismatch": queue_jobs_cross_workflow,
"cd_harbor_repair_requires_110_controlled_lane": (
cd_harbor_repair_requires_110_lane
),
"cd_harbor_repair_blocked_by_no_matching_awoooi_host": (
cd_harbor_repair_blocked_by_awoooi_host
),
"cd_harbor_repair_lane_classifier": gitea_queue[
"current_cd_harbor_repair_lane_classifier"
],
"cd_jobs_stale_or_mismatched": cd_jobs_stale,
"cd_jobs_head_sha_mismatch": cd_jobs_head_sha_mismatch,
"registry_v2_public_http_status": verifier[
@@ -410,6 +440,8 @@ def _control_path_signal_ids(
queue_no_matching_runner: bool,
queue_jobs_stale: bool,
queue_jobs_cross_workflow: bool,
cd_harbor_repair_requires_110_lane: bool,
cd_harbor_repair_blocked_by_awoooi_host: bool,
cd_jobs_head_sha_mismatch: bool,
cd_jobs_stale: bool,
public_registry_ready: bool,
@@ -430,6 +462,12 @@ def _control_path_signal_ids(
signal_ids.append("gitea_queue_harbor_110_repair_jobs_cross_workflow_mismatch")
if queue_jobs_stale:
signal_ids.append("gitea_queue_harbor_110_repair_jobs_stale_or_mismatched")
if cd_harbor_repair_blocked_by_awoooi_host:
signal_ids.append(
"gitea_queue_cd_harbor_repair_blocked_by_no_matching_awoooi_host"
)
if cd_harbor_repair_requires_110_lane:
signal_ids.append("gitea_queue_cd_harbor_repair_requires_110_controlled_lane")
if cd_jobs_head_sha_mismatch:
signal_ids.append("gitea_queue_cd_jobs_head_sha_mismatch")
if cd_jobs_stale:
@@ -858,6 +896,9 @@ def _gitea_queue_readback(value: Any) -> dict[str, Any]:
"current_cd_harbor_retrying_unavailable": False,
"controlled_profile_no_matching_runner_labels": {},
"controlled_profile_no_matching_runner_label_count": 0,
"current_cd_harbor_repair_requires_110_controlled_lane": False,
"current_cd_harbor_repair_blocked_by_no_matching_awoooi_host": False,
"current_cd_harbor_repair_lane_classifier": "",
"cd_run_jobs_stale_or_mismatched": False,
"cd_run_jobs_payload_classifier": "",
"cd_run_jobs_head_sha_mismatch": False,
@@ -949,6 +990,25 @@ def _gitea_queue_readback(value: Any) -> dict[str, Any]:
or current_cd_inflight_classifier
== "harbor_registry_public_route_unavailable_pending_retry"
)
current_cd_harbor_repair_requires_110_lane = bool(
rollups.get("current_main_cd_harbor_repair_requires_110_controlled_lane")
is True
or readback.get("latest_visible_cd_harbor_repair_requires_110_controlled_lane")
is True
)
current_cd_harbor_repair_blocked_by_awoooi_host = bool(
rollups.get("current_main_cd_harbor_repair_blocked_by_no_matching_awoooi_host")
is True
or readback.get(
"latest_visible_cd_harbor_repair_blocked_by_no_matching_awoooi_host"
)
is True
)
current_cd_harbor_repair_lane_classifier = str(
rollups.get("current_main_cd_harbor_repair_lane_classifier")
or readback.get("latest_visible_cd_harbor_repair_lane_classifier")
or ""
)
cd_jobs_stale = bool(
rollups.get("cd_run_jobs_stale_or_mismatched") is True
or readback.get("cd_run_jobs_stale_or_mismatched") is True
@@ -989,6 +1049,12 @@ def _gitea_queue_readback(value: Any) -> dict[str, Any]:
current_cd_harbor_retrying=current_cd_harbor_retrying,
current_cd_waiting=current_cd_waiting,
current_cd_no_matching_runner=bool(current_cd_no_matching_label),
current_cd_harbor_repair_requires_110_lane=(
current_cd_harbor_repair_requires_110_lane
),
current_cd_harbor_repair_blocked_by_awoooi_host=(
current_cd_harbor_repair_blocked_by_awoooi_host
),
cd_jobs_stale=cd_jobs_stale,
cd_jobs_head_sha_mismatch=cd_jobs_head_sha_mismatch,
cd_jobs_run_id_mismatch=cd_jobs_run_id_mismatch,
@@ -1028,6 +1094,15 @@ def _gitea_queue_readback(value: Any) -> dict[str, Any]:
"controlled_profile_no_matching_runner_label_count": len(
controlled_profile_no_matching_labels
),
"current_cd_harbor_repair_requires_110_controlled_lane": (
current_cd_harbor_repair_requires_110_lane
),
"current_cd_harbor_repair_blocked_by_no_matching_awoooi_host": (
current_cd_harbor_repair_blocked_by_awoooi_host
),
"current_cd_harbor_repair_lane_classifier": (
current_cd_harbor_repair_lane_classifier
),
"cd_run_jobs_stale_or_mismatched": cd_jobs_stale,
"cd_run_jobs_payload_classifier": cd_jobs_payload_classifier,
"cd_run_jobs_head_sha_mismatch": cd_jobs_head_sha_mismatch,
@@ -1147,6 +1222,8 @@ def _gitea_queue_blockers(
current_cd_harbor_retrying: bool,
current_cd_waiting: bool,
current_cd_no_matching_runner: bool,
current_cd_harbor_repair_requires_110_lane: bool,
current_cd_harbor_repair_blocked_by_awoooi_host: bool,
cd_jobs_stale: bool,
cd_jobs_head_sha_mismatch: bool,
cd_jobs_run_id_mismatch: bool,
@@ -1154,6 +1231,12 @@ def _gitea_queue_blockers(
boundary_violation: bool,
) -> list[str]:
blockers: list[str] = []
if current_cd_harbor_repair_blocked_by_awoooi_host:
blockers.append(
"gitea_queue_cd_harbor_repair_blocked_by_no_matching_awoooi_host"
)
if current_cd_harbor_repair_requires_110_lane:
blockers.append("gitea_queue_cd_harbor_repair_requires_110_controlled_lane")
if current_cd_harbor_retrying:
blockers.append("gitea_queue_current_cd_harbor_retrying_unavailable")
if current_cd_no_matching_runner: