Merge pull request #5 from tcpcloud/configmap
galera configmap support
diff --git a/galera/files/my.cnf.bootstrap b/galera/files/my.cnf.bootstrap
deleted file mode 100644
index 150b4bf..0000000
--- a/galera/files/my.cnf.bootstrap
+++ /dev/null
@@ -1,102 +0,0 @@
-# All files in this package is subject to the GPL v2 license
-# More information is in the COPYING file in the top directory of this package.
-# Copyright (C) 2011 severalnines.com
-{%- if pillar.galera.master is defined %}
-{%- from "galera/map.jinja" import master with context %}
-{%- set service = master %}
-{%- endif %}
-{%- if pillar.galera.slave is defined %}
-{%- from "galera/map.jinja" import slave with context %}
-{%- set service = slave %}
-{%- endif %}
-[MYSQLD]
-user=mysql
-basedir=/usr/
-datadir=/var/lib/mysql
-socket={{ service.socket }}
-pid_file=mysqld.pid
-port=3306
-log_error={{ service.log_file }}
-log_warnings=2
-#log_output=FILE
-### INNODB OPTIONS
-innodb_buffer_pool_size=9211M
-innodb_flush_log_at_trx_commit=2
-innodb_file_per_table=1
-innodb_data_file_path = ibdata1:100M:autoextend
-## You may want to tune the below depending on number of cores and disk sub
-innodb_read_io_threads=4
-innodb_write_io_threads=4
-innodb_io_capacity=200
-innodb_doublewrite=1
-innodb_log_file_size=1024M
-innodb_log_buffer_size=96M
-innodb_buffer_pool_instances=8
-innodb_log_files_in_group=2
-innodb_thread_concurrency=64
-#innodb_file_format=barracuda
-innodb_flush_method = O_DIRECT
-innodb_autoinc_lock_mode=2
-## avoid statistics update when doing e.g show tables
-innodb_stats_on_metadata=0
-default_storage_engine=innodb
-
-bind-address={{ service.bind.address }}
-
-# CHARACTER SET
-#collation_server = utf8_unicode_ci
-#init_connect='SET NAMES utf8'
-character_set_server = utf8
-
-# REPLICATION SPECIFIC
-#server_id must be unique across all mysql servers participating in replication.
-#server_id=SERVERID
-binlog_format=ROW
-#log_slave_updates=1
-#log_bin=binlog
-#relay_log=relay-bin
-#expire_logs_days=7
-#gtid_mode=ON
-#enforce_gtid_consistency=1
-# OTHER THINGS, BUFFERS ETC
-key_buffer_size = 24M
-tmp_table_size = 64M
-max_heap_table_size = 64M
-max_allowed_packet = 512M
-#sort_buffer_size = 256K
-#read_buffer_size = 256K
-#read_rnd_buffer_size = 512K
-#myisam_sort_buffer_size = 8M
-skip_name_resolve
-memlock=0
-sysdate_is_now=1
-max_connections={{ service.get('max_connections', 20000) }}
-thread_cache_size=512
-query_cache_type = 0
-query_cache_size = 0
-table_open_cache=1024
-lower_case_table_names=0
-# 5.6 backwards compatibility
-#explicit_defaults_for_timestamp=1
-#
-
-# Desired SST donor name.
-#wsrep_sst_donor=
-
-# Protocol version to use
-# wsrep_protocol_version=
-[MYSQL]
-socket={{ service.socket }}
-#default_character_set=utf8
-[client]
-socket={{ service.socket }}
-default_character_set=utf8
-[mysqldump]
-max_allowed_packet = 512M
-socket={{ service.socket }}
-default_character_set=utf8
-[MYSQLD_SAFE]
-pid_file=mysqld.pid
-log_error={{ service.log_file }}
-basedir=/usr/
-datadir=/var/lib/mysql
diff --git a/galera/files/my.cnf.container b/galera/files/my.cnf.container
new file mode 100644
index 0000000..ec85ef1
--- /dev/null
+++ b/galera/files/my.cnf.container
@@ -0,0 +1,82 @@
+{%- if pillar.galera.master is defined %}
+{%- from "galera/map.jinja" import master with context %}
+{%- set service = master %}
+{%- endif %}
+
+[MYSQLD]
+user=mysql
+basedir=/usr/
+bind-address={{ service.bind.address }}
+datadir=/var/lib/mysql
+socket=/var/lib/mysql/mysql.sock
+pid_file=/var/lib/mysql/mysql.pid
+port=3306
+log_warnings=2
+innodb_buffer_pool_size=3138M
+innodb_flush_log_at_trx_commit=2
+innodb_file_per_table=1
+innodb_data_file_path = ibdata1:100M:autoextend
+innodb_read_io_threads=8
+innodb_write_io_threads=8
+innodb_io_capacity=500
+innodb_doublewrite=0
+innodb_log_file_size=627M
+innodb_log_buffer_size=32M
+innodb_buffer_pool_instances=-1
+innodb_log_files_in_group=2
+innodb_thread_concurrency=64
+innodb_flush_method = O_DIRECT
+innodb_autoinc_lock_mode=2
+innodb_stats_on_metadata=0
+innodb_locks_unsafe_for_binlog=1
+default_storage_engine=innodb
+server_id=1
+binlog_format=ROW
+key_buffer_size = 64M
+tmp_table_size = 64M
+max_heap_table_size = 64M
+max_allowed_packet = 512M
+
+wait_timeout=1800
+myisam_sort_buffer_size = 64M
+open_files_limit=102400
+character-set-server=utf8
+
+skip_name_resolve
+memlock=0
+sysdate_is_now=1
+max_connections={{ service.get('max_connections', 20000) }}
+thread_cache_size=512
+query_cache_type = 0
+query_cache_size = 0
+table_open_cache=10000
+lower_case_table_names=0
+performance_schema = 1
+performance-schema-max-mutex-classes = 0
+performance-schema-max-mutex-instances = 0
+wsrep_provider={{ service.wsrep_provider }}
+wsrep_on=ON
+wsrep_provider_options="gcache.size=512M; gmcast.segment=0"
+wsrep_cluster_name="my_wsrep_cluster"
+wsrep_cluster_address="gcomm://{% for member in service.members %}{{ member.host}}{% if not loop.last %},{% endif %}{% endfor %}"
+wsrep_slave_threads=8
+wsrep_certify_nonPK=1
+wsrep_max_ws_rows=131072
+wsrep_max_ws_size=1073741824
+wsrep_debug=0
+wsrep_convert_LOCK_to_trx=0
+wsrep_retry_autocommit=1
+wsrep_auto_increment_control=1
+wsrep_replicate_myisam=1
+wsrep_drupal_282555_workaround=0
+wsrep_causal_reads=0
+wsrep_sst_method=xtrabackup
+wsrep_sst_auth={{ service.admin.user }}:{{ service.admin.password }}
+
+[MYSQL]
+socket=/var/lib/mysql/mysql.sock
+
+[xtrabackup]
+parallel=4
+user={{ service.admin.user }}
+password={{ service.admin.password }}
\ No newline at end of file
diff --git a/galera/map.jinja b/galera/map.jinja
index 6894a3d..bed74ad 100644
--- a/galera/map.jinja
+++ b/galera/map.jinja
@@ -17,7 +17,7 @@
'socket': '/var/run/mariadb/mysqld.sock',
'config': '/etc/my.cnf',
},
-}, merge=salt['pillar.get']('galera:master')) %}
+}, merge=pillar.galera.get('master', {})) %}
{%- set slave = salt['grains.filter_by']({
'Debian': {
@@ -37,4 +37,4 @@
'socket': '/var/run/mariadb/mysqld.sock',
'config': '/etc/my.cnf',
},
-}, merge=salt['pillar.get']('galera:slave')) %}
+}, merge=pillar.galera.get('slave', {})) %}
diff --git a/galera/meta/config.yml b/galera/meta/config.yml
new file mode 100644
index 0000000..f5f65d8
--- /dev/null
+++ b/galera/meta/config.yml
@@ -0,0 +1,7 @@
+config:
+ {%- if pillar.galera.master is defined %}
+ {%- from "galera/map.jinja" import master with context %}
+ my.cnf:
+ source: "salt://galera/files/my.cnf.container"
+ template: jinja
+ {%- endif %}
\ No newline at end of file
diff --git a/metadata/service/master/container.yml b/metadata/service/master/container.yml
new file mode 100644
index 0000000..e6ac462
--- /dev/null
+++ b/metadata/service/master/container.yml
@@ -0,0 +1,37 @@
+parameters:
+ _param:
+ galera_server_cluster_name: galeracluster
+ galera_server_bind_port: 3306
+ galera_server_admin_user: root
+ kubernetes:
+ control:
+ configmap:
+ galera-master:
+ grains:
+ os_family: Debian
+ pillar:
+ galera:
+ master:
+ enabled: true
+ name: ${_param:galera_server_cluster_name}
+ bind:
+ address: 0.0.0.0
+ port: ${_param:galera_server_bind_port}
+ maintenance_password: ${_param:galera_server_maintenance_password}
+ admin:
+ user: ${_param:galera_server_admin_user}
+ password: ${_param:galera_server_admin_password}
+ members:
+ - host: ${_param:mysql_service_host01}
+ port: 4567
+ - host: ${_param:mysql_service_host02}
+ port: 4567
+ - host: ${_param:mysql_service_host03}
+ port: 4567
+ mysql:
+ server:
+ users:
+ - name: haproxy
+ host: localhost
+ - name: haproxy
+ host: '%'
\ No newline at end of file
diff --git a/metadata/service/support.yml b/metadata/service/support.yml
index 888a33a..61b87bd 100644
--- a/metadata/service/support.yml
+++ b/metadata/service/support.yml
@@ -9,3 +9,5 @@
enabled: true
sphinx:
enabled: true
+ config:
+ enabled: true
\ No newline at end of file