make the volume scripts ignore ephemeral volumes
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
BASEPATH="$(dirname "$0")"
|
BASEPATH="$(dirname "$0")"
|
||||||
|
source "$BASEPATH/volume-utils.sh"
|
||||||
backup_dir="/backup"
|
backup_dir="/backup"
|
||||||
|
|
||||||
if [[ -n $2 ]]; then
|
if [[ -n $2 ]]; then
|
||||||
@@ -43,7 +44,7 @@ generate_volume_metadata() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Read the JSON input and extract the list of keys
|
# Read the JSON input and extract the list of keys
|
||||||
keys=$(cat /root/rpc/$1.yml | yaml2json - | jq '.volumes' | jq -r 'keys[]')
|
keys=$(get_persistent_volume_keys "/root/rpc/$1.yml")
|
||||||
|
|
||||||
# Iterate over the list of keys
|
# Iterate over the list of keys
|
||||||
for key in $keys; do
|
for key in $keys; do
|
||||||
|
|||||||
@@ -1,17 +1,13 @@
|
|||||||
BASEPATH="$(dirname "$0")"
|
BASEPATH="$(dirname "$0")"
|
||||||
source $BASEPATH/.env
|
source $BASEPATH/.env
|
||||||
|
source $BASEPATH/volume-utils.sh
|
||||||
|
|
||||||
IFS=':' read -ra parts <<< $COMPOSE_FILE
|
IFS=':' read -ra parts <<< $COMPOSE_FILE
|
||||||
|
|
||||||
used_volumes=()
|
used_volumes=()
|
||||||
|
|
||||||
for part in "${parts[@]}"; do
|
for part in "${parts[@]}"; do
|
||||||
|
volumes=$(get_volume_keys "$BASEPATH/$part")
|
||||||
# Convert YAML to JSON using yaml2json
|
|
||||||
json=$(yaml2json "$BASEPATH/$part")
|
|
||||||
|
|
||||||
# Extract volumes using jq
|
|
||||||
volumes=$(echo "$json" | jq -r '.volumes | keys[]' 2> /dev/null)
|
|
||||||
|
|
||||||
# Convert volumes to an array
|
# Convert volumes to an array
|
||||||
prefix="rpc_"
|
prefix="rpc_"
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
dir="$(dirname "$0")"
|
dir="$(dirname "$0")"
|
||||||
|
source "$dir/volume-utils.sh"
|
||||||
|
|
||||||
# Configuration
|
# Configuration
|
||||||
BASE_PORT=9000
|
BASE_PORT=9000
|
||||||
@@ -524,7 +525,7 @@ main() {
|
|||||||
sudo sysctl -w net.ipv4.tcp_no_metrics_save=1
|
sudo sysctl -w net.ipv4.tcp_no_metrics_save=1
|
||||||
|
|
||||||
echo "Reading volume configuration from $dir/$1.yml..."
|
echo "Reading volume configuration from $dir/$1.yml..."
|
||||||
keys=$(cat "$dir/$1.yml" | yaml2json - | jq '.volumes' | jq -r 'keys[]')
|
keys=$(get_persistent_volume_keys "$dir/$1.yml")
|
||||||
|
|
||||||
if [[ -z "$keys" ]]; then
|
if [[ -z "$keys" ]]; then
|
||||||
echo "Error: No volumes found in configuration"
|
echo "Error: No volumes found in configuration"
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
# Fixed version that handles missing netstat
|
# Fixed version that handles missing netstat
|
||||||
|
|
||||||
BASEPATH="$(dirname "$0")"
|
BASEPATH="$(dirname "$0")"
|
||||||
|
source "$BASEPATH/volume-utils.sh"
|
||||||
|
|
||||||
if [[ -n $2 ]]; then
|
if [[ -n $2 ]]; then
|
||||||
DEST_HOST="$2.stakesquid.eu"
|
DEST_HOST="$2.stakesquid.eu"
|
||||||
@@ -496,7 +497,7 @@ main() {
|
|||||||
sudo sysctl -w net.ipv4.tcp_no_metrics_save=1
|
sudo sysctl -w net.ipv4.tcp_no_metrics_save=1
|
||||||
|
|
||||||
echo "Reading volume configuration from $1.yml..."
|
echo "Reading volume configuration from $1.yml..."
|
||||||
keys=$(cat /root/rpc/$1.yml | yaml2json - | jq '.volumes' | jq -r 'keys[]')
|
keys=$(get_persistent_volume_keys "/root/rpc/$1.yml")
|
||||||
|
|
||||||
if [[ -z "$keys" ]]; then
|
if [[ -z "$keys" ]]; then
|
||||||
echo "Error: No volumes found in configuration"
|
echo "Error: No volumes found in configuration"
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ fi
|
|||||||
CONFIG_FILE="$1.yml"
|
CONFIG_FILE="$1.yml"
|
||||||
GLOBS_FILE="${2:-node-key-globs.txt}"
|
GLOBS_FILE="${2:-node-key-globs.txt}"
|
||||||
SCRIPT_DIR="$(dirname "$0")"
|
SCRIPT_DIR="$(dirname "$0")"
|
||||||
|
source "$SCRIPT_DIR/volume-utils.sh"
|
||||||
|
|
||||||
# Try to find config file in multiple locations
|
# Try to find config file in multiple locations
|
||||||
if [[ -f "$SCRIPT_DIR/$CONFIG_FILE" ]]; then
|
if [[ -f "$SCRIPT_DIR/$CONFIG_FILE" ]]; then
|
||||||
@@ -42,7 +43,7 @@ fi
|
|||||||
|
|
||||||
# Read volume keys from config file
|
# Read volume keys from config file
|
||||||
echo "Reading volume configuration from $CONFIG_PATH..."
|
echo "Reading volume configuration from $CONFIG_PATH..."
|
||||||
keys=$(cat "$CONFIG_PATH" | yaml2json - | jq '.volumes' | jq -r 'keys[]')
|
keys=$(get_persistent_volume_keys "$CONFIG_PATH")
|
||||||
|
|
||||||
if [[ -z "$keys" ]]; then
|
if [[ -z "$keys" ]]; then
|
||||||
echo "Error: No volumes found in configuration"
|
echo "Error: No volumes found in configuration"
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
source "$(dirname "$0")/volume-utils.sh"
|
||||||
|
|
||||||
# Read the JSON input and extract the list of keys
|
# Read the JSON input and extract the list of keys
|
||||||
keys=$(cat /root/rpc/$1.yml | yaml2json - | jq '.volumes' | jq -r 'keys[]')
|
keys=$(get_persistent_volume_keys "/root/rpc/$1.yml")
|
||||||
|
|
||||||
total_size=0
|
total_size=0
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
dir="$(dirname "$0")"
|
dir="$(dirname "$0")"
|
||||||
|
source "$dir/volume-utils.sh"
|
||||||
|
|
||||||
# Path to the backup directory
|
# Path to the backup directory
|
||||||
backup_dir="/backup"
|
backup_dir="/backup"
|
||||||
@@ -13,7 +14,7 @@ if [ ! -d "$volume_dir" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Read the JSON input and extract the list of keys
|
# Read the JSON input and extract the list of keys
|
||||||
keys=$(cat $dir/$1.yml | yaml2json - | jq '.volumes' | jq -r 'keys[]' | grep -E '^["'\'']?[0-9a-z]')
|
keys=$(get_persistent_volume_keys "$dir/$1.yml" | grep -E '^[0-9a-z]')
|
||||||
|
|
||||||
restore_files=()
|
restore_files=()
|
||||||
cleanup_folders=()
|
cleanup_folders=()
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
BASEPATH="$(dirname "$0")"
|
||||||
|
source "$BASEPATH/volume-utils.sh"
|
||||||
|
|
||||||
# Read the JSON input and extract the list of keys
|
# Read the JSON input and extract the list of keys
|
||||||
keys=$(cat /root/rpc/$1.yml | yaml2json - | jq '.volumes' | jq -r 'keys[]')
|
keys=$(get_persistent_volume_keys "/root/rpc/$1.yml")
|
||||||
|
|
||||||
total_size=0
|
total_size=0
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
BASEPATH="$(dirname "$0")"
|
BASEPATH="$(dirname "$0")"
|
||||||
|
source "$BASEPATH/volume-utils.sh"
|
||||||
static_file_list="$BASEPATH/static-file-path-list.txt"
|
static_file_list="$BASEPATH/static-file-path-list.txt"
|
||||||
|
|
||||||
# Read the JSON input and extract the list of keys
|
# Read the JSON input and extract the list of keys
|
||||||
keys=$(cat /root/rpc/$1.yml | yaml2json - | jq '.volumes' | jq -r 'keys[]')
|
keys=$(get_persistent_volume_keys "/root/rpc/$1.yml")
|
||||||
|
|
||||||
static_size=0
|
static_size=0
|
||||||
total_size=0
|
total_size=0
|
||||||
|
|||||||
40
volume-utils.sh
Executable file
40
volume-utils.sh
Executable file
@@ -0,0 +1,40 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Shared helpers for compose volume operations.
|
||||||
|
# Ephemeral volumes (init-container config) are excluded from backup/restore/size.
|
||||||
|
|
||||||
|
is_ephemeral_volume_key() {
|
||||||
|
local key=$1
|
||||||
|
local compose_file=$2
|
||||||
|
|
||||||
|
# op-node rollup config volumes
|
||||||
|
[[ "$key" == *_node_config ]] && return 0
|
||||||
|
|
||||||
|
if [[ -n "$compose_file" && -f "$compose_file" ]]; then
|
||||||
|
local ephemeral
|
||||||
|
ephemeral=$(yaml2json "$compose_file" 2>/dev/null | jq -r '.["x-ephemeral-volumes"] // [] | .[]' 2>/dev/null)
|
||||||
|
while IFS= read -r vol; do
|
||||||
|
[[ -z "$vol" ]] && continue
|
||||||
|
[[ "$key" == "$vol" ]] && return 0
|
||||||
|
done <<< "$ephemeral"
|
||||||
|
fi
|
||||||
|
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
get_volume_keys() {
|
||||||
|
local compose_file=$1
|
||||||
|
yaml2json "$compose_file" 2>/dev/null | jq -r '.volumes | keys[]' 2>/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
get_persistent_volume_keys() {
|
||||||
|
local compose_file=$1
|
||||||
|
local key
|
||||||
|
|
||||||
|
while IFS= read -r key; do
|
||||||
|
[[ -z "$key" ]] && continue
|
||||||
|
if ! is_ephemeral_volume_key "$key" "$compose_file"; then
|
||||||
|
echo "$key"
|
||||||
|
fi
|
||||||
|
done < <(get_volume_keys "$compose_file")
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user