Dalet DBaaS Variables

Here's an exhaustive list of Dalet DBaaS (database-as-a-service) public API variables.

All listed variables are meant to be overridable by platform specifics.

MariaDB Database

Generics

dalet_dbaas_mariadb_enabled

Defines whether MariaDB server must be installed on this particular host.

dalet_dbaas_mariadb_enabled: false

dalet_dbaas_mariadb_application_registry

Defines container registry where to pull image from.

dalet_dbaas_mariadb_application_registry: registry.services.ooflex.net

dalet_dbaas_mariadb_version

Defines default MariaDB version.

dalet_dbaas_mariadb_version: 10.11.16

dalet_dbaas_mariadb_upgrade_enabled

Defines whether MariaDB upgrade-in-place are enabled.

Default is disabled to prevent database server restart and service interruption.

Must be explicitly turned on at runtime to perform upgrade tasks.

dalet_dbaas_mariadb_upgrade_enabled: false

dalet_dbaas_mariadb_group_name

Defines Ansible inventory group name from which MariaDB instance(s) belong(s) to.

dalet_dbaas_mariadb_group_name: dbaas

dalet_dbaas_mariadb_memlimit

Defines default MariaDB memory. Automatically calculated via dalet_dbaas_mariadb_innodb_buffer_pool_size.

dalet_dbaas_mariadb_memlimit: "{{ ((dalet_dbaas_mariadb_innodb_buffer_pool_size | human_to_bytes * 2) / (1024 * 1024)) | int }}m"

dalet_dbaas_mariadb_port

Port for MariaDB server endpoint (defaults to standard 3306).

dalet_dbaas_mariadb_port: 3306

dalet_dbaas_mariadb_base_dir

Defines MariaDB base location (compose and and configuration files will be stored below).

dalet_dbaas_mariadb_base_dir: /opt/mariadb

dalet_dbaas_mariadb_data_dir

Defines MariaDB work directory for data.

dalet_dbaas_mariadb_data_dir: /var/lib/mysql

dalet_dbaas_mariadb_admin_user

Username for MariaDB admin account (defaults to root).

dalet_dbaas_mariadb_admin_user: root

dalet_dbaas_mariadb_admin_password

Password for MariaDB admin account.

SENSITIVE: It is highly recommended for password to be encrypted with Vault/SOPS.

Defaults to a vault-encrypted vault_dalet_dbaas_mariadb_admin_password secret variable, if unspecified.

dalet_dbaas_mariadb_admin_password: ""

dalet_dbaas_mariadb_exporter_user

Username for MariaDB metrics exporter account (defaults to mysqldexporter).

dalet_dbaas_mariadb_exporter_user: mysqldexporter

dalet_dbaas_mariadb_exporter_password

Password for MariaDB metrics exporter account.

SENSITIVE: It is highly recommended for password to be encrypted with Vault/SOPS.

Defaults to a vault-encrypted vault_dalet_dbaas_mariadb_exporter_password secret variable, if unspecified.

dalet_dbaas_mariadb_exporter_password: ""

dalet_dbaas_mariadb_replication_master

Optional overrides for replication topology. Useful for mixed deployments (e.g. RDS primary + EC2 replica)

dalet_dbaas_mariadb_replication_master: ""

dalet_dbaas_mariadb_replication_slave

Optional overrides for replication topology. Useful for mixed deployments (e.g. RDS primary + EC2 replica)

dalet_dbaas_mariadb_replication_slave: ""

dalet_dbaas_mariadb_replication_user

Username for MariaDB replication account (defaults to 'repl).

dalet_dbaas_mariadb_replication_user: repl

dalet_dbaas_mariadb_replication_password

Password for MariaDB replication account.

SENSITIVE: It is highly recommended for password to be encrypted with Vault/SOPS.

Defaults to a vault-encrypted vault_dalet_dbaas_mariadb_replication_password secret variable, if unspecified.

dalet_dbaas_mariadb_replication_password: ""

dalet_dbaas_mariadb_replication_mode

Defines MariaDB replication mode between cluster instances.

Accepted values:

 - none:                Default. Instance is standalone and not meant to be replicated
 - master_slave:        A secondary instance will keep active synchronization with elected primary.
                        Failover remains manual operation.
 - master_master:       Each MariaDB instance will be keep active synchronization with the other peer.
                        Requires a Virtual IP (VIP) to be associated with cluster so clients will only connect to one single instance.
                        Failover is automatic.
dalet_dbaas_mariadb_replication_mode: none

dalet_dbaas_mariadb_replication_source

Defines how MariaDB replication should be handled between peers.

Supported options are:

 - binlog:   Uses legacy binary logs positionning for replication replay.
 - gtid:     Default. Uses global transaction identifiers for replication replay.

NOTE: This option is only required in master/slave mode. Master/Master replication enforces GTID usage.

dalet_dbaas_mariadb_replication_source: gtid

dalet_dbaas_mariadb_replication_reset

Defines whether MariaDB replication must be momentarily turned off.

Default is disabled to keep previously setup replication active.

Must be explicitly turned on at runtime to perform replication configuration reset.

dalet_dbaas_mariadb_replication_reset: false

Fine Tuning Parameters

These parameters allow for more fine-tuning of MariaDB engine, allowing for memory/performance/workload optimizations.

dalet_dbaas_mariadb_compatiblity_emulation

Defines some legacy compatilibty emulation mode to support old behavior of MariaDB versions.

Refer to to MariaDB knowledge base for supported emulation modes.

dalet_dbaas_mariadb_compatiblity_emulation: ""

dalet_dbaas_mariadb_name_resolution_enabled

Defines whether hostnames should be resolved (defaults: true).

If disabled, all host values in GRANT tables must be IP addresses (or localhost).

dalet_dbaas_mariadb_name_resolution_enabled: true

dalet_dbaas_mariadb_character_set

Defines MariaDB character set encoding (defaults to utf8).

dalet_dbaas_mariadb_character_set: utf8

dalet_dbaas_mariadb_innodb_buffer_pool_size

Defines MariaDB's InnoDB buffer pool size in bytes.

Range from 1 GB to 8192 PB.

dalet_dbaas_mariadb_innodb_buffer_pool_size: 8192M

dalet_dbaas_mariadb_replication_binlog_file_size

Defines the size in bytes of each InnoDB redo log file in the log group.

Larger values mean less disk I/O due to less flushing checkpoint activity, but also slower recovery from a crash.

It can safely be set higher to reduce checkpoint flushing, even larger than dalet_dbaas_mariadb_innodb_buffer_pool_size parameter.

Range from 1 MB to 512 GB.

dalet_dbaas_mariadb_replication_binlog_file_size: 2048M

dalet_dbaas_mariadb_replication_binlog_expiration_days

Defines replication binary logs replication expiration period, in days (defaults: 10).

This defines the maximum out-of-sync delay between master and slave instances.

After this timeframe, a slave requires a full synchronization (vs. incremental).

dalet_dbaas_mariadb_replication_binlog_expiration_days: 10

dalet_dbaas_mariadb_replication_skipped_errors

Optional, defines some specific MariaDB replication errors that can be bypassed (e.g. 1032, 1062)

Master -> Slave replication mechanism will resume.

NOTE: See list of error codes.

WARNING: While this allows increase replication capability, some transactions might be lost.

dalet_dbaas_mariadb_replication_skipped_errors: []

dalet_dbaas_mariadb_limits_max_connections

Defines the maximum number of allowed client connections.

Each connection thread from the pool consumes about 200 KB of memory.

Defaults to 800.

dalet_dbaas_mariadb_limits_max_connections: 800

dalet_dbaas_mariadb_limits_max_packet_size

Defines the maximum size of client/server packet message buffers.

Range from 1 KB to 1 GB, defaults to 16 MB.

dalet_dbaas_mariadb_limits_max_packet_size: 16M

dalet_dbaas_mariadb_limits_max_prepared_statements

Defines the maximum number of prepared statements on the server.

Can help prevent certain forms of denial-of-service attacks.

If set to 0, no prepared statements are permitted on the server.

Range from 0 to 4294967295.

dalet_dbaas_mariadb_limits_max_prepared_statements: 125000