21 lines
728 B
Bash
21 lines
728 B
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
if [[ "$(kubectl config current-context)" != "kubernetes-admin@kubernetes" ]]; then
|
|
echo "Refusing to modify Immich PostgreSQL outside the homelab context." >&2
|
|
exit 1
|
|
fi
|
|
|
|
app_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
primary="$(kubectl --namespace immich get pods \
|
|
--selector='cnpg.io/cluster=immich-postgresql,cnpg.io/instanceRole=primary' \
|
|
--output=jsonpath='{.items[0].metadata.name}')"
|
|
if [[ -z "${primary}" ]]; then
|
|
echo "No Immich PostgreSQL primary is available." >&2
|
|
exit 1
|
|
fi
|
|
|
|
kubectl --namespace immich exec -i "${primary}" --container postgres -- \
|
|
psql --set=ON_ERROR_STOP=1 --username=postgres --dbname=immich \
|
|
< "${app_dir}/metrics-view.sql"
|