Add docker mysql service
Co-Authored-By: Dan Prince <dprince@redhat.com> Co-Authored-By: Martin André <m.andre@redhat.com> Change-Id: If0ee671acbf6a9931622003a859089d61e2050b3
This commit is contained in:
parent
5be125e117
commit
301cb391ae
|
@ -0,0 +1,130 @@
|
||||||
|
heat_template_version: ocata
|
||||||
|
|
||||||
|
description: >
|
||||||
|
MySQL service deployment using puppet
|
||||||
|
|
||||||
|
parameters:
|
||||||
|
DockerNamespace:
|
||||||
|
description: namespace
|
||||||
|
default: 'tripleoupstream'
|
||||||
|
type: string
|
||||||
|
DockerMysqlImage:
|
||||||
|
description: image
|
||||||
|
default: 'centos-binary-mariadb:latest'
|
||||||
|
type: string
|
||||||
|
EndpointMap:
|
||||||
|
default: {}
|
||||||
|
description: Mapping of service endpoint -> protocol. Typically set
|
||||||
|
via parameter_defaults in the resource registry.
|
||||||
|
type: json
|
||||||
|
ServiceNetMap:
|
||||||
|
default: {}
|
||||||
|
description: Mapping of service_name -> network name. Typically set
|
||||||
|
via parameter_defaults in the resource registry. This
|
||||||
|
mapping overrides those in ServiceNetMapDefaults.
|
||||||
|
type: json
|
||||||
|
DefaultPasswords:
|
||||||
|
default: {}
|
||||||
|
type: json
|
||||||
|
MysqlRootPassword:
|
||||||
|
type: string
|
||||||
|
hidden: true
|
||||||
|
default: ''
|
||||||
|
|
||||||
|
resources:
|
||||||
|
|
||||||
|
MysqlPuppetBase:
|
||||||
|
type: ../../../puppet/services/database/mysql.yaml
|
||||||
|
properties:
|
||||||
|
EndpointMap: {get_param: EndpointMap}
|
||||||
|
ServiceNetMap: {get_param: ServiceNetMap}
|
||||||
|
DefaultPasswords: {get_param: DefaultPasswords}
|
||||||
|
|
||||||
|
outputs:
|
||||||
|
role_data:
|
||||||
|
description: Containerized service MySQL using composable services.
|
||||||
|
value:
|
||||||
|
service_name: {get_attr: [MysqlPuppetBase, role_data, service_name]}
|
||||||
|
config_settings:
|
||||||
|
map_merge:
|
||||||
|
- {get_attr: [MysqlPuppetBase, role_data, config_settings]}
|
||||||
|
# Set PID file to what kolla mariadb bootstrap script expects
|
||||||
|
- tripleo::profile::base::database::mysql::mysql_server_options:
|
||||||
|
mysqld:
|
||||||
|
pid-file: /var/lib/mysql/mariadb.pid
|
||||||
|
mysqld_safe:
|
||||||
|
pid-file: /var/lib/mysql/mariadb.pid
|
||||||
|
step_config:
|
||||||
|
list_join:
|
||||||
|
- "\n"
|
||||||
|
- - "['Mysql_datadir', 'Mysql_user', 'Mysql_database', 'Mysql_grant', 'Mysql_plugin'].each |String $val| { noop_resource($val) }"
|
||||||
|
- {get_attr: [MysqlPuppetBase, role_data, step_config]}
|
||||||
|
upgrade_tasks: {get_attr: [MysqlPuppetBase, role_data, upgrade_tasks]}
|
||||||
|
# BEGIN DOCKER SETTINGS #
|
||||||
|
docker_image: &mysql_image
|
||||||
|
list_join:
|
||||||
|
- '/'
|
||||||
|
- [ {get_param: DockerNamespace}, {get_param: DockerMysqlImage} ]
|
||||||
|
puppet_tags: file # set this even though file is the default
|
||||||
|
config_volume: mysql
|
||||||
|
config_image: *mysql_image
|
||||||
|
kolla_config:
|
||||||
|
/var/lib/kolla/config_files/mysql.json:
|
||||||
|
command: /usr/bin/mysqld_safe
|
||||||
|
config_files:
|
||||||
|
- dest: /etc/mysql/my.cnf
|
||||||
|
source: /var/lib/kolla/config_files/src/etc/my.cnf
|
||||||
|
owner: mysql
|
||||||
|
perm: '0644'
|
||||||
|
- dest: /etc/my.cnf.d/galera.cnf
|
||||||
|
source: /var/lib/kolla/config_files/src/etc/my.cnf.d/galera.cnf
|
||||||
|
owner: mysql
|
||||||
|
perm: '0644'
|
||||||
|
docker_config:
|
||||||
|
step_2:
|
||||||
|
mysql_bootstrap:
|
||||||
|
start_order: 0
|
||||||
|
detach: false
|
||||||
|
image: *mysql_image
|
||||||
|
net: host
|
||||||
|
volumes: &mysql_volumes
|
||||||
|
- /var/lib/kolla/config_files/mysql.json:/var/lib/kolla/config_files/config.json
|
||||||
|
- /var/lib/config-data/mysql/:/var/lib/kolla/config_files/src:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
- /etc/hosts:/etc/hosts:ro
|
||||||
|
- mariadb:/var/lib/mysql/
|
||||||
|
environment:
|
||||||
|
- KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
|
||||||
|
- KOLLA_BOOTSTRAP=True
|
||||||
|
# NOTE(mandre) skip wsrep cluster status check
|
||||||
|
- KOLLA_KUBERNETES=True
|
||||||
|
-
|
||||||
|
list_join:
|
||||||
|
- '='
|
||||||
|
- - 'DB_ROOT_PASSWORD'
|
||||||
|
-
|
||||||
|
yaql:
|
||||||
|
expression: $.data.passwords.where($ != '').first()
|
||||||
|
data:
|
||||||
|
passwords:
|
||||||
|
- {get_param: MysqlRootPassword}
|
||||||
|
- {get_param: [DefaultPasswords, mysql_root_password]}
|
||||||
|
mysql:
|
||||||
|
start_order: 1
|
||||||
|
image: *mysql_image
|
||||||
|
restart: always
|
||||||
|
net: host
|
||||||
|
volumes: *mysql_volumes
|
||||||
|
environment:
|
||||||
|
- KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
|
||||||
|
docker_puppet_tasks:
|
||||||
|
# MySQL database initialization occurs only on single node
|
||||||
|
step_2:
|
||||||
|
- 'mysql_init_tasks'
|
||||||
|
- 'mysql_database,mysql_grant,mysql_user'
|
||||||
|
- 'include ::tripleo::profile::base::database::mysql'
|
||||||
|
- list_join:
|
||||||
|
- '/'
|
||||||
|
- [ {get_param: DockerNamespace}, {get_param: DockerMysqlImage} ]
|
||||||
|
- - "mariadb:/var/lib/mysql/:ro"
|
||||||
|
- "/var/lib/config-data/mysql/root:/root:ro" #provides .my.cnf
|
Loading…
Reference in New Issue