erp5: add backup-periodicity parameter to mariadb instance.

parent c63d05a6
...@@ -62,6 +62,11 @@ ...@@ -62,6 +62,11 @@
}, },
"type": "object" "type": "object"
}, },
"backup-periodicity": {
"description": "When to backup, specified in the same format as for systemd.time(7) calendar events (years & seconds not supported, DoW & DoM can not be combined).",
"default": "daily",
"type": "string",
},
"innodb-buffer-pool-size": { "innodb-buffer-pool-size": {
"description": "See MariaDB documentation on innodb_buffer_pool_size", "description": "See MariaDB documentation on innodb_buffer_pool_size",
"minimum": 0, "minimum": 0,
......
...@@ -166,7 +166,7 @@ mode = 755 ...@@ -166,7 +166,7 @@ mode = 755
[template-mariadb] [template-mariadb]
< = download-base < = download-base
filename = instance-mariadb.cfg.in filename = instance-mariadb.cfg.in
md5sum = fc4a7585fe1bfea0c198b1826f904595 md5sum = d490407cca70099e8b99021cc9a74c02
link-binary = link-binary =
${coreutils:location}/bin/basename ${coreutils:location}/bin/basename
${coreutils:location}/bin/cat ${coreutils:location}/bin/cat
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
{% do test_database_list.append({'name': 'erp5_test_' ~ database_count, 'user': 'testuser_' ~ database_count, 'password': 'testpassword' ~ database_count}) -%} {% do test_database_list.append({'name': 'erp5_test_' ~ database_count, 'user': 'testuser_' ~ database_count, 'password': 'testpassword' ~ database_count}) -%}
{% endfor -%} {% endfor -%}
{% set catalog_backup = slapparameter_dict.get('catalog-backup', {}) -%} {% set catalog_backup = slapparameter_dict.get('catalog-backup', {}) -%}
{% set backup_periodicity = slapparameter_dict.get('backup-periodicity', 'daily') -%}
{% set full_backup_retention_days = catalog_backup.get('full-retention-days', 7) -%} {% set full_backup_retention_days = catalog_backup.get('full-retention-days', 7) -%}
{% set incremental_backup_retention_days = catalog_backup.get('incremental-retention-days', full_backup_retention_days) -%} {% set incremental_backup_retention_days = catalog_backup.get('incremental-retention-days', full_backup_retention_days) -%}
{% set port = slapparameter_dict['tcpv4-port'] %} {% set port = slapparameter_dict['tcpv4-port'] %}
...@@ -74,7 +75,7 @@ about laxist file mode. -#} ...@@ -74,7 +75,7 @@ about laxist file mode. -#}
recipe = slapos.cookbook:cron.d recipe = slapos.cookbook:cron.d
cron-entries = ${cron:cron-entries} cron-entries = ${cron:cron-entries}
name = mariadb-backup name = mariadb-backup
frequency = 0 22 * * * time = {{ dumps(backup_periodicity) }}
{# When binlogs are enabled: {# When binlogs are enabled:
# flush-logs: used so no manipulation on binlogs is needed to restore from # flush-logs: used so no manipulation on binlogs is needed to restore from
# full + binlogs. The first binlog after a dump starts from dump snapshot and # full + binlogs. The first binlog after a dump starts from dump snapshot and
...@@ -91,7 +92,7 @@ file-glob = ??????????????.sql.gz ...@@ -91,7 +92,7 @@ file-glob = ??????????????.sql.gz
recipe = slapos.cookbook:cron.d recipe = slapos.cookbook:cron.d
cron-entries = ${cron:cron-entries} cron-entries = ${cron:cron-entries}
name = mariadb-backup-expire name = mariadb-backup-expire
frequency = 0 22 * * * time = {{ dumps(backup_periodicity) }}
command = {{ parameter_dict['findutils-location'] }}/bin/find "${directory:mariadb-backup-full}" -maxdepth 1 -name "${cron-entry-mariadb-backup:file-glob}" -daystart -mtime +{{ full_backup_retention_days }} -delete command = {{ parameter_dict['findutils-location'] }}/bin/find "${directory:mariadb-backup-full}" -maxdepth 1 -name "${cron-entry-mariadb-backup:file-glob}" -daystart -mtime +{{ full_backup_retention_days }} -delete
{%- endif %} {%- endif %}
{%- endif %} {%- endif %}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment