recovery(ananke): avoid unnecessary longhorn sidecar churn
This commit is contained in:
parent
8c45f9509e
commit
0c2b59f7cc
@ -1048,6 +1048,31 @@ remove_longhorn_manager_prepull_sidecar() {
|
|||||||
done <<< "${indexes}"
|
done <<< "${indexes}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
longhorn_manager_prepull_sidecar_has_pull_failures() {
|
||||||
|
kubectl -n longhorn-system get pods -l app=longhorn-manager -o json \
|
||||||
|
| jq -e '
|
||||||
|
[
|
||||||
|
.items[].status.containerStatuses[]?
|
||||||
|
| select(.name == "pre-pull-share-manager-image")
|
||||||
|
| select(((.state.waiting.reason // "") | test("ImagePullBackOff|ErrImagePull|CreateContainerError|RunContainerError|InvalidImageName")))
|
||||||
|
]
|
||||||
|
| length > 0' >/dev/null 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
remove_longhorn_manager_prepull_sidecar_if_needed() {
|
||||||
|
if ! harbor_endpoint_is_ready 1; then
|
||||||
|
warn "Removing Longhorn manager pre-pull sidecar because Harbor registry API is unhealthy."
|
||||||
|
remove_longhorn_manager_prepull_sidecar
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
if longhorn_manager_prepull_sidecar_has_pull_failures; then
|
||||||
|
warn "Removing Longhorn manager pre-pull sidecar because it is in image/runtime failure."
|
||||||
|
remove_longhorn_manager_prepull_sidecar
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
log "longhorn-manager-prepull-sidecar=retained harbor=healthy pull_failures=false"
|
||||||
|
}
|
||||||
|
|
||||||
save_longhorn_unlock_optional_replica_snapshot() {
|
save_longhorn_unlock_optional_replica_snapshot() {
|
||||||
if [[ "${EXECUTE}" -eq 0 ]]; then
|
if [[ "${EXECUTE}" -eq 0 ]]; then
|
||||||
log "DRY-RUN: save optional workload snapshot to ${LONGHORN_UNLOCK_REPLICA_SNAPSHOT_FILE}"
|
log "DRY-RUN: save optional workload snapshot to ${LONGHORN_UNLOCK_REPLICA_SNAPSHOT_FILE}"
|
||||||
@ -2984,7 +3009,7 @@ longhorn_unlock_flow() {
|
|||||||
REFRESH_BOOTSTRAP_IMAGE_ALIASES=1
|
REFRESH_BOOTSTRAP_IMAGE_ALIASES=1
|
||||||
freeze_longhorn_deadlock_automation
|
freeze_longhorn_deadlock_automation
|
||||||
ensure_longhorn_cache_first_policy
|
ensure_longhorn_cache_first_policy
|
||||||
remove_longhorn_manager_prepull_sidecar
|
remove_longhorn_manager_prepull_sidecar_if_needed
|
||||||
free_longhorn_instance_manager_headroom
|
free_longhorn_instance_manager_headroom
|
||||||
delete_failed_nonstorage_pods_for_headroom
|
delete_failed_nonstorage_pods_for_headroom
|
||||||
repair_longhorn_manager_cache_deadlock || warn "Surgical Longhorn manager cache repair did not complete on every affected node."
|
repair_longhorn_manager_cache_deadlock || warn "Surgical Longhorn manager cache repair did not complete on every affected node."
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user