maintenance(pi-usb-scratch): skip k3s runtime rsync during cutover
This commit is contained in:
parent
7c337ad5a1
commit
d9b30d6c5b
@ -17,6 +17,8 @@ data:
|
||||
# One-time bootstrap for new sticks that ship exfat/fat32.
|
||||
USB_SCRATCH_AUTO_FORMAT_REMOVABLE=true
|
||||
USB_SCRATCH_AUTO_FORMAT_LABEL=astraios
|
||||
# Keep this false to avoid long rsync hangs on k3s runtime trees.
|
||||
USB_SCRATCH_SEED_K3S_AGENT_DIRS=false
|
||||
# Keep /tmp in RAM to reduce SD-card writes.
|
||||
USB_SCRATCH_ENFORCE_TMPFS_TMP=true
|
||||
USB_SCRATCH_REQUIRED_FREE_GIB=20
|
||||
|
||||
@ -21,6 +21,7 @@ USB_SCRATCH_AUTO_SELECT_REMOVABLE=${USB_SCRATCH_AUTO_SELECT_REMOVABLE:-true}
|
||||
USB_SCRATCH_AUTO_MIN_SIZE_GIB=${USB_SCRATCH_AUTO_MIN_SIZE_GIB:-50}
|
||||
USB_SCRATCH_AUTO_FORMAT_REMOVABLE=${USB_SCRATCH_AUTO_FORMAT_REMOVABLE:-true}
|
||||
USB_SCRATCH_AUTO_FORMAT_LABEL=${USB_SCRATCH_AUTO_FORMAT_LABEL:-astraios}
|
||||
USB_SCRATCH_SEED_K3S_AGENT_DIRS=${USB_SCRATCH_SEED_K3S_AGENT_DIRS:-false}
|
||||
USB_SCRATCH_REQUIRED_FREE_GIB=${USB_SCRATCH_REQUIRED_FREE_GIB:-20}
|
||||
USB_SCRATCH_RECONCILE_INTERVAL_SEC=${USB_SCRATCH_RECONCILE_INTERVAL_SEC:-900}
|
||||
USB_SCRATCH_CUTOVER_JITTER_MAX_SEC=${USB_SCRATCH_CUTOVER_JITTER_MAX_SEC:-900}
|
||||
@ -103,6 +104,7 @@ load_config() {
|
||||
USB_SCRATCH_AUTO_MIN_SIZE_GIB=${USB_SCRATCH_AUTO_MIN_SIZE_GIB:-50}
|
||||
USB_SCRATCH_AUTO_FORMAT_REMOVABLE=${USB_SCRATCH_AUTO_FORMAT_REMOVABLE:-true}
|
||||
USB_SCRATCH_AUTO_FORMAT_LABEL=${USB_SCRATCH_AUTO_FORMAT_LABEL:-astraios}
|
||||
USB_SCRATCH_SEED_K3S_AGENT_DIRS=${USB_SCRATCH_SEED_K3S_AGENT_DIRS:-false}
|
||||
USB_SCRATCH_REQUIRED_FREE_GIB=${USB_SCRATCH_REQUIRED_FREE_GIB:-20}
|
||||
USB_SCRATCH_RECONCILE_INTERVAL_SEC=${USB_SCRATCH_RECONCILE_INTERVAL_SEC:-900}
|
||||
USB_SCRATCH_CUTOVER_JITTER_MAX_SEC=${USB_SCRATCH_CUTOVER_JITTER_MAX_SEC:-900}
|
||||
@ -385,6 +387,17 @@ seed_target_data() {
|
||||
host_sh "mkdir -p '${source_dir}' '${target}'; if command -v rsync >/dev/null 2>&1; then rsync -aHAX --numeric-ids '${target}/' '${source_dir}/'; else tar -C '${target}' -cf - . | tar -C '${source_dir}' -xf -; fi"
|
||||
}
|
||||
|
||||
should_seed_target() {
|
||||
local target="$1"
|
||||
case "${target}" in
|
||||
/var/lib/rancher/k3s/agent/containerd|/var/lib/rancher/k3s/agent/kubelet|/var/lib/rancher/k3s/agent/images)
|
||||
[ "${USB_SCRATCH_SEED_K3S_AGENT_DIRS}" = "true" ]
|
||||
return
|
||||
;;
|
||||
esac
|
||||
return 0
|
||||
}
|
||||
|
||||
mount_target_live() {
|
||||
local target="$1"
|
||||
host_sh "mountpoint -q '${target}' || mount '${target}'"
|
||||
@ -422,8 +435,12 @@ perform_cutover() {
|
||||
|
||||
for target in "${TARGET_PATHS[@]}"; do
|
||||
if ! target_bound_to_scratch "${target}"; then
|
||||
log "seeding ${target} into ${USB_SCRATCH_MOUNTPOINT}${target}"
|
||||
seed_target_data "${target}"
|
||||
if should_seed_target "${target}"; then
|
||||
log "seeding ${target} into ${USB_SCRATCH_MOUNTPOINT}${target}"
|
||||
seed_target_data "${target}"
|
||||
else
|
||||
log "skipping seed for ${target}; binding fresh Astraios path"
|
||||
fi
|
||||
log "mounting bind target ${target}"
|
||||
mount_target_live "${target}"
|
||||
fi
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user