bundlewrap/bundles/postgresql/metadata.py
Franziska Kunsmann 724537558e
All checks were successful
bundlewrap/pipeline/head This commit looks good
bundles/postgresql: do a database dump before backing up the database
2021-02-13 08:56:35 +01:00

76 lines
1.9 KiB
Python

defaults = {
'backups': {
'paths': {
'/var/lib/postgresql',
# FIXME
'/var/tmp/postgresdumps',
},
},
'icinga2_api': {
'postgresql': {
'services': {
'POSTGRESQL PROCESS': {
'command_on_monitored_host': '/usr/lib/nagios/plugins/check_procs -C postgres -c 1:',
},
},
},
},
'postgresql': {
'max_connections': 100,
'autovacuum_max_workers': 3,
'maintenance_work_mem': 64,
'work_mem': 4,
'shared_buffers': 128,
'temp_buffers': 8,
'slow_query_log_sec': 0,
},
}
if node.has_bundle('zfs'):
defaults['zfs'] = {
'datasets': {
'tank/postgresql': {
'mountpoint': '/var/lib/postgresql',
},
},
}
# FIXME
#else:
# defaults['backups']['paths'].add('/var/tmp/postgresdumps')
@metadata_reactor.provides(
'apt/repos/postgresql',
'postgresql/version',
)
def default_postgresql_version_for_debian(metadata):
# <https://packages.debian.org/search?keywords=postgresql>
versions_in_debian = {
'10': '11', # buster
'11': '13', # bullseye
}
os = str(node.os_version[0])
version_to_be_installed = metadata.get('postgresql/version', versions_in_debian[os])
if version_to_be_installed != versions_in_debian[os]:
return {
'apt': {
'repos': {
'postgresql': {
'items': {
'deb https://apt.postgresql.org/pub/repos/apt/ {os_release}-pgdg main',
},
},
},
},
'postgresql': {
'version': version_to_be_installed,
},
}
return {
'postgresql': {
'version': version_to_be_installed,
},
}