feat(kubectl-odoo): add list script and update backup to use tar instead of zip

This commit is contained in:
Janik von Rotz committed 2026-02-25 18:10:03 +01:00
1 parent 754aae884d
commit 779493377e
2 files changed
+42 -9

No files matched your search

+5 -9
View File
@@ -10,7 +10,7 @@ help() {
echo
echo 'Description: Backup Odoo database in Kubernetes cluster.'
echo "Syntax: $script <deployment> <database>"
echo "Example: $script odoo-odoo erp"
echo "Example: $script odoo odoo"
echo 'Options:'
echo " help Show $script manual."
echo
@@ -36,20 +36,16 @@ fi
kubectl_exec="kubectl exec $pod_id -- /bin/bash -c"
echo "Backup database $database to /var/lib/odoo/$database.zip..."
echo "Backup database $database to /var/lib/odoo/$database.tar..."
echo 'Dump database.'
$kubectl_exec "pg_dump '$database' > /var/lib/odoo/dump.sql"
$kubectl_exec "ls -lsh /var/lib/odoo/dump.sql"
# echo "Zip filestore and dump to /var/lib/odoo/$database.zip."
# $kubectl_exec "zip -q -r /var/lib/odoo/$database.zip /var/lib/odoo/dump.sql /var/lib/odoo/filestore/$database"
echo "Tar filestore and dump to /var/lib/odoo/$database.zip."
echo "Tar filestore and dump to /var/lib/odoo/$database.tar."
$kubectl_exec "tar -cf /var/lib/odoo/$database.tar -C /var/lib/odoo dump.sql filestore/$database"
$kubectl_exec "ls -lsh /var/lib/odoo/$database.tar"
echo 'Cleanup dump.'
echo 'Remove dump.'
$kubectl_exec "rm -rf /var/lib/odoo/dump.sql"
echo "The Odoo backup has finished: /var/lib/odoo/$database.zip"
echo "The Odoo backup has finished: /var/lib/odoo/$database.tar"
+37
View File
@@ -0,0 +1,37 @@
#!/usr/bin/env bash
set -e
script=$(basename "$0")
version="1.0.1"
help() {
echo
echo "$script v$version"
echo
echo 'Description: List Odoo database in Kubernetes cluster.'
echo "Syntax: $script <deployment>"
echo "Example: $script odoo"
echo 'Options:'
echo " help Show $script manual."
echo
}
if [[ "$1" == 'help' ]]; then
help
exit 0
fi
deployment="$1"
[[ -z "$deployment" ]] && { echo 'Error: Parameter deployment is empty'; exit 1; }
pod_id=$(kubectl get pods -l app="$deployment" -o jsonpath='{.items[0].metadata.name}' 2>/dev/null)
if [[ -z "$pod_id" ]]; then
echo "Error: No pod found for deployment '$deployment'"
exit 1
fi
kubectl_exec="kubectl exec $pod_id -- /bin/bash -c"
$kubectl_exec "psql postgresql://\$PGUSER:\$PGPASSWORD@\$PGHOST/postgres -tAc \"SELECT datname FROM pg_database WHERE datistemplate = false AND datname NOT IN ('postgres', 'template0', 'template1');\""