diff options
Diffstat (limited to 'manifests/profile/base/database')
-rw-r--r-- | manifests/profile/base/database/mongodb.pp | 5 | ||||
-rw-r--r-- | manifests/profile/base/database/mongodbcommon.pp | 12 | ||||
-rw-r--r-- | manifests/profile/base/database/mysql.pp | 86 | ||||
-rw-r--r-- | manifests/profile/base/database/redis.pp | 12 |
4 files changed, 98 insertions, 17 deletions
diff --git a/manifests/profile/base/database/mongodb.pp b/manifests/profile/base/database/mongodb.pp index 4c53c9c..1a19bb6 100644 --- a/manifests/profile/base/database/mongodb.pp +++ b/manifests/profile/base/database/mongodb.pp @@ -32,10 +32,9 @@ # class tripleo::profile::base::database::mongodb ( $mongodb_replset, - $bootstrap_node = downcase(hiera('bootstrap_nodeid')), - $step = hiera('step'), + $bootstrap_node = downcase(hiera('bootstrap_nodeid')), + $step = hiera('step'), ) { - if $step >= 2 { include ::mongodb::globals diff --git a/manifests/profile/base/database/mongodbcommon.pp b/manifests/profile/base/database/mongodbcommon.pp index 6530730..c61e692 100644 --- a/manifests/profile/base/database/mongodbcommon.pp +++ b/manifests/profile/base/database/mongodbcommon.pp @@ -18,22 +18,20 @@ # # === Parameters # -# [*mongodb_node_ips*] -# List of The mongodb node ip addresses -# # [*mongodb_ipv6_enabled*] # A boolean value for mongodb server ipv6 is enabled or not # Defaults to false # +# [*mongodb_node_ips*] +# List of The mongodb node ip addresses +# class tripleo::profile::base::database::mongodbcommon ( - $mongodb_node_ips = hiera('mongo_node_ips'), $mongodb_ipv6_enabled = false, + $mongodb_node_ips = hiera('mongodb_node_ips'), ) { - $port = '27017' - # NOTE(gfidente): the following vars are needed on all nodes so they - # need to stay out of pacemaker_master conditional. + # NOTE(gfidente): the following vars are needed on all nodes. # The addresses mangling will hopefully go away when we'll be able to # configure the connection string via hostnames, until then, we need to pass # the list of IPv6 addresses *with* port and without the brackets as 'members' diff --git a/manifests/profile/base/database/mysql.pp b/manifests/profile/base/database/mysql.pp new file mode 100644 index 0000000..49c9df3 --- /dev/null +++ b/manifests/profile/base/database/mysql.pp @@ -0,0 +1,86 @@ +# Copyright 2016 Red Hat, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# == Class: tripleo::profile::base::database::mysql +# +# MySQL profile for tripleo +# +# === Parameters +# +# [*manage_resources*] +# (Optional) Whether or not manage root user, root my.cnf, and service. +# Defaults to true +# +# [*mysql_server_options*] +# (Optional) Extras options to deploy MySQL. Useful when deploying Galera cluster. +# Should be an hash. +# Defaults to {} +# +# [*remove_default_accounts*] +# (Optional) Whether or not remove default MySQL accounts. +# Defaults to true +# +# [*step*] +# (Optional) The current step in deployment. See tripleo-heat-templates +# for more details. +# Defaults to hiera('step') +# +class tripleo::profile::base::database::mysql ( + $manage_resources = true, + $mysql_server_options = {}, + $remove_default_accounts = true, + $step = hiera('step'), + +) { + + validate_hash($mysql_server_options) + + # non-ha scenario + if $manage_resources { + $mysql_step = 2 + } else { + # ha scenario + $mysql_step = 1 + } + if $step >= $mysql_step { + if str2bool(hiera('enable_galera', true)) { + $mysql_config_file = '/etc/my.cnf.d/galera.cnf' + } else { + $mysql_config_file = '/etc/my.cnf.d/server.cnf' + } + # TODO Galara + # FIXME: due to https://bugzilla.redhat.com/show_bug.cgi?id=1298671 we + # set bind-address to a hostname instead of an ip address; to move Mysql + # from internal_api on another network we'll have to customize both + # MysqlNetwork and ControllerHostnameResolveNetwork in ServiceNetMap + $mysql_server_default = { + 'mysqld' => { + 'bind-address' => $::hostname, + 'max_connections' => hiera('mysql_max_connections'), + 'open_files_limit' => '-1', + } + } + $mysql_server_options_real = deep_merge($mysql_server_default, $mysql_server_options) + class { '::mysql::server': + config_file => $mysql_config_file, + override_options => $mysql_server_options_real, + create_root_user => $manage_resources, + create_root_my_cnf => $manage_resources, + service_manage => $manage_resources, + service_enabled => $manage_resources, + remove_default_accounts => $remove_default_accounts, + } + } + +} diff --git a/manifests/profile/base/database/redis.pp b/manifests/profile/base/database/redis.pp index 3a5200c..14f6af4 100644 --- a/manifests/profile/base/database/redis.pp +++ b/manifests/profile/base/database/redis.pp @@ -18,26 +18,24 @@ # # === Parameters # -# [*redis_node_ips*] -# (Optional) List of Redis node ips -# Defaults to hiera('redis_node_ips') -# # [*bootstrap_nodeid*] # (Optional) Hostname of Redis master # Defaults to hiera('bootstrap_nodeid') # +# [*redis_node_ips*] +# (Optional) List of Redis node ips +# Defaults to hiera('redis_node_ips') +# # [*step*] # (Optional) The current step in deployment. See tripleo-heat-templates # for more details. # Defaults to hiera('step') # - class tripleo::profile::base::database::redis ( - $redis_node_ips = hiera('redis_node_ips'), $bootstrap_nodeid = hiera('bootstrap_nodeid'), + $redis_node_ips = hiera('redis_node_ips'), $step = hiera('step'), ) { - if $step >= 2 { if $bootstrap_nodeid == $::hostname { $slaveof = undef |