ci: add full-node tests (#920)

diff --git a/build/fetch-kubernetes-logs.sh b/build/fetch-kubernetes-logs.sh
new file mode 100755
index 0000000..5b028b5
--- /dev/null
+++ b/build/fetch-kubernetes-logs.sh
@@ -0,0 +1,78 @@
+#!/bin/bash -x
+
+# Check if an argument was provided
+if [ "$#" -ne 1 ]; then
+    echo "Usage: $0 <path_to_save_logs>"
+    exit 1
+fi
+
+# Define the base directory where you want to save the logs
+BASE_DIR="$1"
+
+# Create the base directory if it doesn't exist
+mkdir -p "$BASE_DIR"
+
+# Function to fetch logs for a pod and container
+fetch_logs() {
+    local ns="$1"
+    local pod="$2"
+    local container="$3"
+    local pod_dir="$BASE_DIR/$ns/$pod"
+    local log_file="$pod_dir/$container.log"
+    local prev_log_file="$pod_dir/${container}-previous.log"
+
+    # Ensure the pod directory exists
+    mkdir -p "$pod_dir"
+
+    # Fetch current logs
+    kubectl logs "$pod" -n "$ns" -c "$container" > "$log_file" 2>/dev/null
+
+    # Fetch previous logs if they exist
+    if kubectl logs "$pod" -n "$ns" -c "$container" --previous &>/dev/null; then
+        kubectl logs "$pod" -n "$ns" -c "$container" --previous > "$prev_log_file" 2>/dev/null
+    fi
+}
+
+export -f fetch_logs
+export BASE_DIR
+
+# Get all namespaces
+namespaces=$(kubectl get ns -o jsonpath='{.items[*].metadata.name}')
+
+# Loop through each namespace
+for ns in $namespaces; do
+    (
+        # Create a directory for the namespace
+        mkdir -p "$BASE_DIR/$ns"
+
+        # Get all pods in the namespace
+        pods=$(kubectl get pods -n "$ns" -o jsonpath='{.items[*].metadata.name}')
+
+        # Loop through each pod
+        for pod in $pods; do
+            (
+                # Create a directory for the pod
+                mkdir -p "$BASE_DIR/$ns/$pod"
+
+                # Get all containers in the pod
+                containers=$(kubectl get pod "$pod" -n "$ns" -o jsonpath='{.spec.containers[*].name}')
+
+                # Loop through each container
+                for container in $containers; do
+                    # Fetch logs in parallel
+                    fetch_logs "$ns" "$pod" "$container" &
+                done
+
+                # Wait for all background log fetches to complete before moving to the next pod
+                wait
+            ) &
+        done
+        # Wait for all background pods processing to complete before moving to the next namespace
+        wait
+    ) &
+done
+
+# Wait for all background namespaces processing to complete
+wait
+
+echo "Logs have been saved to $BASE_DIR"