Skip to content

Commit

Permalink
Update Spilo config files for 3.0-p1
Browse files Browse the repository at this point in the history
  • Loading branch information
owenthereal committed May 15, 2024
1 parent 2c2630c commit f2ca50f
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 20 deletions.
4 changes: 2 additions & 2 deletions docker-bake.hcl
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ variable "SPILO_REPO" {
}

variable "SPILO_VERSION" {
default = "hydra-2.1-p9"
default = "3.0-p1"
}

variable "POSTGRES_BASE_VERSION" {
Expand Down Expand Up @@ -80,7 +80,7 @@ target "spilo" {
target "spilo_base" {
inherits = ["shared"]

context = "https://github.com/hydradatabase/spilo.git#${SPILO_VERSION}:postgres-appliance"
context = "https://github.com/zalando/spilo.git#${SPILO_VERSION}:postgres-appliance"

args = {
TIMESCALEDB = ""
Expand Down
7 changes: 4 additions & 3 deletions files/spilo/postgres-appliance/scripts/configure_spilo.py
Original file line number Diff line number Diff line change
Expand Up @@ -995,7 +995,7 @@ def write_crontab(placeholders, overwrite):
lines += [('{LOG_SHIP_SCHEDULE} nice -n 5 envdir "{LOG_ENV_DIR}"' +
' /scripts/upload_pg_log_to_s3.py').format(**placeholders)]

lines += yaml.load(placeholders['CRONTAB'])
lines += yaml.safe_load(placeholders['CRONTAB'])

if len(lines) > 1 or root_lines:
setup_runit_cron(placeholders)
Expand Down Expand Up @@ -1051,10 +1051,11 @@ def main():
placeholders = get_placeholders(provider)
logging.info('Looks like you are running %s', provider)

config = yaml.load(pystache_render(TEMPLATE, placeholders))
config = yaml.safe_load(pystache_render(TEMPLATE, placeholders))
config.update(get_dcs_config(config, placeholders))

user_config = yaml.load(os.environ.get('SPILO_CONFIGURATION', os.environ.get('PATRONI_CONFIGURATION', ''))) or {}
user_config = yaml.safe_load(os.environ.get('SPILO_CONFIGURATION',
os.environ.get('PATRONI_CONFIGURATION', ''))) or {}
if not isinstance(user_config, dict):
config_var_name = 'SPILO_CONFIGURATION' if 'SPILO_CONFIGURATION' in os.environ else 'PATRONI_CONFIGURATION'
raise ValueError('{0} should contain a dict, yet it is a {1}'.format(config_var_name, type(user_config)))
Expand Down
26 changes: 11 additions & 15 deletions files/spilo/postgres-appliance/scripts/post_init.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

cd "$(dirname "${BASH_SOURCE[0]}")" || exit 1

export PGOPTIONS="-c synchronous_commit=local -c search_path=pg_catalog"

PGVER=$(psql -d "$2" -XtAc "SELECT pg_catalog.current_setting('server_version_num')::int/10000")
if [ "$PGVER" -ge 12 ]; then RESET_ARGS="oid, oid, bigint"; fi

Expand Down Expand Up @@ -92,20 +94,10 @@ BEGIN
RETURN l_jobid;
END;
\$function\$;
REVOKE EXECUTE ON FUNCTION cron.alter_job(bigint, text, text, text, text, boolean) FROM admin, public;
GRANT EXECUTE ON FUNCTION cron.alter_job(bigint, text, text, text, text, boolean) TO cron_admin;
REVOKE EXECUTE ON FUNCTION cron.schedule(text, text) FROM admin, public;
GRANT EXECUTE ON FUNCTION cron.schedule(text, text) TO cron_admin;
REVOKE EXECUTE ON FUNCTION cron.schedule(text, text, text) FROM admin, public;
GRANT EXECUTE ON FUNCTION cron.schedule(text, text, text) TO cron_admin;
REVOKE EXECUTE ON FUNCTION cron.schedule_in_database(text, text, text) FROM admin, public;
GRANT EXECUTE ON FUNCTION cron.schedule_in_database(text, text, text) TO cron_admin;
REVOKE EXECUTE ON FUNCTION cron.schedule_in_database(text, text, text, text, text, boolean) FROM admin, public;
GRANT EXECUTE ON FUNCTION cron.schedule_in_database(text, text, text, text, text, boolean) TO cron_admin;
REVOKE EXECUTE ON FUNCTION cron.unschedule(bigint) FROM admin, public;
GRANT EXECUTE ON FUNCTION cron.unschedule(bigint) TO cron_admin;
REVOKE EXECUTE ON FUNCTION cron.unschedule(name) FROM admin, public;
GRANT EXECUTE ON FUNCTION cron.unschedule(name) TO cron_admin;
REVOKE EXECUTE ON ALL FUNCTIONS IN SCHEMA cron FROM admin, public;
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA cron TO cron_admin;
REVOKE USAGE ON SCHEMA cron FROM admin;
GRANT USAGE ON SCHEMA cron TO cron_admin;
Expand Down Expand Up @@ -179,6 +171,10 @@ while IFS= read -r db_name; do
if [ "$UPGRADE_TIMESCALEDB" = "t" ]; then
echo "ALTER EXTENSION timescaledb UPDATE;"
fi
UPGRADE_TIMESCALEDB_TOOLKIT=$(echo -e "SELECT NULL;\nSELECT default_version != installed_version FROM pg_catalog.pg_available_extensions WHERE name = 'timescaledb_toolkit'" | psql -tAX -d "${db_name}" 2> /dev/null | tail -n 1)
if [ "$UPGRADE_TIMESCALEDB_TOOLKIT" = "t" ]; then
echo "ALTER EXTENSION timescaledb_toolkit UPDATE;"
fi
UPGRADE_POSTGIS=$(echo -e "SELECT COUNT(*) FROM pg_catalog.pg_extension WHERE extname = 'postgis'" | psql -tAX -d "${db_name}" 2> /dev/null | tail -n 1)
if [ "$UPGRADE_POSTGIS" = "1" ]; then
# public.postgis_lib_version() is available only if postgis extension is created
Expand Down Expand Up @@ -207,4 +203,4 @@ GRANT EXECUTE ON FUNCTION public.pg_stat_statements_reset($RESET_ARGS) TO admin;
if [ "$ENABLE_PG_MON" = "true" ] && [ "$PGVER" -ge 11 ]; then echo "CREATE EXTENSION IF NOT EXISTS pg_mon SCHEMA public;"; fi
cat metric_helpers.sql
done < <(psql -d "$2" -tAc 'select pg_catalog.quote_ident(datname) from pg_catalog.pg_database where datallowconn')
) | PGOPTIONS="-c synchronous_commit=local" psql -Xd "$2"
) | psql -Xd "$2"

0 comments on commit f2ca50f

Please sign in to comment.