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.
|
# One-time bootstrap for new sticks that ship exfat/fat32.
|
||||||
USB_SCRATCH_AUTO_FORMAT_REMOVABLE=true
|
USB_SCRATCH_AUTO_FORMAT_REMOVABLE=true
|
||||||
USB_SCRATCH_AUTO_FORMAT_LABEL=astraios
|
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.
|
# Keep /tmp in RAM to reduce SD-card writes.
|
||||||
USB_SCRATCH_ENFORCE_TMPFS_TMP=true
|
USB_SCRATCH_ENFORCE_TMPFS_TMP=true
|
||||||
USB_SCRATCH_REQUIRED_FREE_GIB=20
|
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_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_REMOVABLE=${USB_SCRATCH_AUTO_FORMAT_REMOVABLE:-true}
|
||||||
USB_SCRATCH_AUTO_FORMAT_LABEL=${USB_SCRATCH_AUTO_FORMAT_LABEL:-astraios}
|
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_REQUIRED_FREE_GIB=${USB_SCRATCH_REQUIRED_FREE_GIB:-20}
|
||||||
USB_SCRATCH_RECONCILE_INTERVAL_SEC=${USB_SCRATCH_RECONCILE_INTERVAL_SEC:-900}
|
USB_SCRATCH_RECONCILE_INTERVAL_SEC=${USB_SCRATCH_RECONCILE_INTERVAL_SEC:-900}
|
||||||
USB_SCRATCH_CUTOVER_JITTER_MAX_SEC=${USB_SCRATCH_CUTOVER_JITTER_MAX_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_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_REMOVABLE=${USB_SCRATCH_AUTO_FORMAT_REMOVABLE:-true}
|
||||||
USB_SCRATCH_AUTO_FORMAT_LABEL=${USB_SCRATCH_AUTO_FORMAT_LABEL:-astraios}
|
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_REQUIRED_FREE_GIB=${USB_SCRATCH_REQUIRED_FREE_GIB:-20}
|
||||||
USB_SCRATCH_RECONCILE_INTERVAL_SEC=${USB_SCRATCH_RECONCILE_INTERVAL_SEC:-900}
|
USB_SCRATCH_RECONCILE_INTERVAL_SEC=${USB_SCRATCH_RECONCILE_INTERVAL_SEC:-900}
|
||||||
USB_SCRATCH_CUTOVER_JITTER_MAX_SEC=${USB_SCRATCH_CUTOVER_JITTER_MAX_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"
|
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() {
|
mount_target_live() {
|
||||||
local target="$1"
|
local target="$1"
|
||||||
host_sh "mountpoint -q '${target}' || mount '${target}'"
|
host_sh "mountpoint -q '${target}' || mount '${target}'"
|
||||||
@ -422,8 +435,12 @@ perform_cutover() {
|
|||||||
|
|
||||||
for target in "${TARGET_PATHS[@]}"; do
|
for target in "${TARGET_PATHS[@]}"; do
|
||||||
if ! target_bound_to_scratch "${target}"; then
|
if ! target_bound_to_scratch "${target}"; then
|
||||||
|
if should_seed_target "${target}"; then
|
||||||
log "seeding ${target} into ${USB_SCRATCH_MOUNTPOINT}${target}"
|
log "seeding ${target} into ${USB_SCRATCH_MOUNTPOINT}${target}"
|
||||||
seed_target_data "${target}"
|
seed_target_data "${target}"
|
||||||
|
else
|
||||||
|
log "skipping seed for ${target}; binding fresh Astraios path"
|
||||||
|
fi
|
||||||
log "mounting bind target ${target}"
|
log "mounting bind target ${target}"
|
||||||
mount_target_live "${target}"
|
mount_target_live "${target}"
|
||||||
fi
|
fi
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user