Skip to content

Commit

Permalink
do not specify default values for $vendor_type and $vendor_version an…
Browse files Browse the repository at this point in the history
…ymore
  • Loading branch information
fraenki committed Aug 9, 2024
1 parent 12f5185 commit c30456b
Show file tree
Hide file tree
Showing 14 changed files with 123 additions and 105 deletions.
6 changes: 3 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,15 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
* Add new parameter `$status_systemd_service_name`
* Add systemd-based status check ([#191])
* Add support for new operating systems
* Add support for Percona XtraDB 8.0 and MariaDB 10.11

### Changed
* Remove default values: `$vendor_type`, `$vendor_version`
* Disable option `pxc-encrypt-cluster-traffic` on Percona XtraDB 8.0
* Change default version of Codership/MySQL to 8.0
* Change default version of MariaDB to 10.11
* Change default version of Percona XtraDB to 8.0
* Enable systemd-based status check on RHEL 9, Debian 12 and Ubuntu 24.04 ([#191])
* Add new dependency for systemd-based status check ([#191])
* Merge internal $default_options from multiple hierarchy levels
* Switch unit tests to Codership/MySQL 8.0, MariaDB 10.11 and XtraDB 8.0
* Extend unit tests ([#191])

### Fixed
Expand Down
13 changes: 4 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,10 @@ Basic usage requires only the FQDN of the master node, a list of IP addresses of

```puppet
class { 'galera':
# Galera vendor and version
vendor_type => 'codership',
vendor_version => '8.0',
# Galera cluster config
cluster_name => 'mycluster',
galera_servers => ['10.0.99.101', '10.0.99.102', '10.0.99.103'],
galera_master => 'node1.example.com',
Expand All @@ -56,15 +60,6 @@ class { 'galera':
}
```

This will install the default packages and version. However, in a production environment you should definitely set the vendor and version variables to the desired value, because the default values might change:

```puppet
class { 'galera':
vendor_type => 'percona',
vendor_version => '8.0',
...
```

On Debian/Ubuntu systems the user `debian-sys-maint@localhost` is required for updates and will be created automatically, but you should set a proper password when using these platforms:

```puppet
Expand Down
11 changes: 11 additions & 0 deletions data/FreeBSD-family.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,11 @@ galera::mariadb::106::client_package_name: 'mariadb106-client'
galera::mariadb::106::galera_package_name: 'galera26'
galera::mariadb::106::mysql_package_name: 'mariadb106-server'

galera::mariadb::1011::arbitrator_package_name: 'galera26'
galera::mariadb::1011::client_package_name: 'mariadb1011-client'
galera::mariadb::1011::galera_package_name: 'galera26'
galera::mariadb::1011::mysql_package_name: 'mariadb1011-server'

#
# MariaDB - default settings
#
Expand Down Expand Up @@ -82,6 +87,12 @@ galera::sst::mariabackup::mariadb::103::additional_packages:
- 'socat'
galera::sst::mariabackup::mariadb::104::additional_packages:
- 'socat'
galera::sst::mariabackup::mariadb::105::additional_packages:
- 'socat'
galera::sst::mariabackup::mariadb::106::additional_packages:
- 'socat'
galera::sst::mariabackup::mariadb::1011::additional_packages:
- 'socat'
galera::sst::xtrabackup::additional_packages:
- 'xtrabackup'
galera::sst::xtrabackup::codership::57::additional_packages:
Expand Down
5 changes: 1 addition & 4 deletions data/common.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ galera::validate::delay: 3
galera::validate::inv_catch: undef
galera::validate::retries: 20
galera::validate_connection: true
galera::vendor_type: 'percona'
galera::vendor_type: ~
galera::wsrep_group_comm_port: 4567
galera::wsrep_inc_state_transfer_port: 4568
galera::wsrep_sst_auth: "root:<%= $root_password %>"
Expand All @@ -97,7 +97,6 @@ galera::mariadb::additional_packages:
galera::codership::default_options:
mysqld:
wsrep_sst_auth: "\"<%= $wsrep_sst_auth_real %>\""
galera::codership::default_version: '8.0'
galera::codership::galera_package_ensure: 'present'

# Percona XtraDB removed support for wsrep_sst_auth in version 8.0,
Expand All @@ -113,14 +112,12 @@ galera::percona::80::default_options:
# On XtraDB 8.0 the option pxc-encrypt-cluster-traffic is enabled by
# default. Disable it to make it easier to bootstrap new clusters.
pxc-encrypt-cluster-traffic: 'OFF'
galera::percona::default_version: '8.0'
# Percona does not allow installation of wsrep-enabled server and wsrep provider.
galera::percona::galera_package_ensure: 'absent'

galera::mariadb::default_options:
mysqld:
wsrep_sst_auth: "\"<%= $wsrep_sst_auth_real %>\""
galera::mariadb::default_version: '10.11'
galera::mariadb::galera_package_ensure: 'present'

# binlog_format is deprecated in MySQL, but still required for MariaDB
Expand Down
16 changes: 5 additions & 11 deletions manifests/init.pp
Original file line number Diff line number Diff line change
Expand Up @@ -284,6 +284,7 @@
class galera (
# parameters that need to be evaluated early
Enum['codership', 'mariadb', 'percona'] $vendor_type,
String $vendor_version,
# required parameters
Boolean $arbitrator,
String $arbitrator_options,
Expand Down Expand Up @@ -357,18 +358,11 @@
Optional[String] $status_log_on_success = undef,
Optional[String] $status_log_type = undef,
Optional[String] $status_service_type = undef,
Optional[String] $vendor_version = undef,
) {
# Fetch appropiate default values from module data, depending on the values
# of $vendor_type and $vendor_version.
# XXX: Originally this was supposed to take place when evaluating the class
# parameters. Now this is basically an ugly compatibility layer to support
# overriding parameters in non-hiera configurations (where solely relying
# on lookup() simply does not work). Should be refactored when a better
# solution is available.
if !$vendor_version {
$vendor_version_real = lookup("${module_name}::${vendor_type}::default_version")
} else { $vendor_version_real = $vendor_version }
# Adjust $vendor_version for use with lookup()
# The '_real' variable is kept for compatibility reasons, it may be
# used in inline epp templates.
$vendor_version_real = $vendor_version
$vendor_version_internal = regsubst($vendor_version_real, '\.', '', 'G')

# Percona supports 'xtrabackup-v2', but this value cannot be used in our automatic
Expand Down
6 changes: 3 additions & 3 deletions manifests/repo.pp
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
#
class galera::repo {
# Adjust $vendor_version for use with lookup()
if !$galera::vendor_version {
$vendor_version_real = lookup("${module_name}::${galera::vendor_type}::default_version")
} else { $vendor_version_real = $galera::vendor_version }
# The '_real' variable is kept for compatibility reasons, it may be
# used in inline epp templates.
$vendor_version_real = $galera::vendor_version
$vendor_version_internal = regsubst($vendor_version_real, '\.', '', 'G')

# Adjust $wsrep_sst_method for use with lookup()
Expand Down
6 changes: 3 additions & 3 deletions manifests/repo/config.pp
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@
String $repo = $title,
) {
# Adjust $vendor_version for use with lookup() and inline_epp()
if !$galera::vendor_version {
$vendor_version_real = lookup("${module_name}::${galera::vendor_type}::default_version")
} else { $vendor_version_real = $galera::vendor_version }
# The '_real' variable is kept for compatibility reasons, it may be
# used in inline epp templates.
$vendor_version_real = $galera::vendor_version
$vendor_version_internal = regsubst($vendor_version_real, '\.', '', 'G')

# Prepare $wsrep_sst_method for use with inline_epp()
Expand Down
2 changes: 2 additions & 0 deletions spec/classes/galera_arbitrator_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
root_password: 'test',
deb_sysmaint_password: 'test',
status_password: 'test',
vendor_type: 'percona',
vendor_version: '8.0',
}
end

Expand Down
6 changes: 4 additions & 2 deletions spec/classes/galera_debian_hacks_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@
cluster_name => 'testcluster',
galera_master => 'control1',
package_ensure => 'present',
status_password => 'nonempty'
status_password => 'nonempty',
vendor_type => 'percona',
vendor_version => '8.0',
}"
end

Expand Down Expand Up @@ -35,7 +37,7 @@
facts
end

case facts[:osfamily]
case facts[:os]['family']
when 'Debian'
it_configures 'galera workarounds on Debian and Ubuntu'
end
Expand Down
4 changes: 2 additions & 2 deletions spec/classes/galera_debian_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
root_password: 'test',
status_password: 'nonempty',
vendor_type: 'percona',
vendor_version: '5.7',
vendor_version: '8.0',
wsrep_group_comm_port: 4567,
wsrep_inc_state_transfer_port: 4568,
wsrep_sst_method: 'rsync',
Expand Down Expand Up @@ -142,7 +142,7 @@
facts
end

case facts[:osfamily]
case facts[:os]['family']
when 'Debian'
if facts[:os]['name'] == 'Debian' && Puppet::Util::Package.versioncmp(facts[:os]['release']['major'], '12') >= 0
it_configures 'galera on Debian'
Expand Down
4 changes: 2 additions & 2 deletions spec/classes/galera_freebsd_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
root_password: 'test',
status_password: 'nonempty',
vendor_type: 'percona',
vendor_version: '5.7',
vendor_version: '8.0',
wsrep_group_comm_port: 4567,
wsrep_inc_state_transfer_port: 4568,
wsrep_sst_method: 'rsync',
Expand Down Expand Up @@ -61,7 +61,7 @@
facts.merge({})
end

case facts[:osfamily]
case facts[:os]['family']
when 'FreeBSD'
it_configures 'galera on FreeBSD'
end
Expand Down
Loading

0 comments on commit c30456b

Please sign in to comment.