Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions tests/node_recovery/run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ recovery_bound=$((grace_seconds + after_seconds + poll_seconds + margin_seconds)
stuck_watch_seconds=60
# Voting etcd members the prune pass needs to remain, the quorum floor for tolerating one failure. kind runs no etcd member beyond its control plane's, so phase 4 gives three Ready nodes the etcd role label.
min_voters=3
etcd_role_label=node-role.kubernetes.io/etcd
etcd_role_label="node-role.kubernetes.io/etcd"
# Longer than after_seconds, as the watcher requires. Counted from when the worker went Unknown, which phase 3 reached long before phase 4 turns pruning on.
prune_after_seconds=60
removable_label=github-runner.exadev.io/removable
Expand Down Expand Up @@ -155,8 +155,11 @@ doomed_uid="$(kubectl get node "$doomed_node" -o jsonpath='{.metadata.uid}')"

log "Building and loading the watcher image and the stand-in's image"
docker build -q -f "$repo_root/node-recovery/Dockerfile" -t "$image" "$repo_root" >/dev/null
docker pull -q "$pod_image" >/dev/null
kind load docker-image "$image" "$pod_image" --name "$cluster" >/dev/null
kind load docker-image "$image" --name "$cluster" >/dev/null
# The stand-in's image is pulled by each node's own runtime: a host Docker on the containerd image store pulls a multi-platform index holding only the host platform's blobs, and kind's import of it with all platforms fails on the missing ones.
for node in $(kind get nodes --name "$cluster"); do
docker exec "$node" crictl pull "$pod_image" >/dev/null
done

# Renders the role's manifests into $work/recovery.yaml; extra arguments are further -e settings, such as the prune threshold.
render_manifests() {
Expand Down
Loading