Skip to content

Commit

Permalink
Merge "Fix default deployment of freezer, use mariadb."
Browse files Browse the repository at this point in the history
  • Loading branch information
Zuul authored and openstack-gerrit committed Jun 19, 2019
2 parents 84caa99 + 10bf6b0 commit 8ce545e
Show file tree
Hide file tree
Showing 7 changed files with 90 additions and 3 deletions.
2 changes: 1 addition & 1 deletion ansible/group_vars/all.yml
Original file line number Diff line number Diff line change
Expand Up @@ -684,7 +684,7 @@ skip_stop_containers: []
####################

elasticsearch_address: "{{ kolla_internal_fqdn }}"
enable_elasticsearch: "{{ 'yes' if enable_central_logging | bool or enable_freezer | bool or enable_osprofiler | bool or enable_skydive | bool or enable_monasca | bool else 'no' }}"
enable_elasticsearch: "{{ 'yes' if enable_central_logging | bool or enable_osprofiler | bool or enable_skydive | bool or enable_monasca | bool else 'no' }}"
enable_kibana: "{{ 'yes' if enable_central_logging | bool or enable_monasca | bool else 'no' }}"

####################
Expand Down
11 changes: 11 additions & 0 deletions ansible/roles/freezer/defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,17 @@ freezer_services:
volumes: "{{ freezer_scheduler_default_volumes + freezer_scheduler_extra_volumes }}"
dimensions: "{{ freezer_scheduler_dimensions }}"

####################
## Database
#####################
freezer_database_backend: "mariadb"
freezer_database_name: "freezer"
freezer_database_user: "{% if use_preconfigured_databases | bool and use_common_mariadb_user | bool %}{{ database_user }}{% else %}freezer{% endif %}"
freezer_database_address: "{{ database_address }}:{{ database_port }}"
freezer_elasticsearch_replicas: "1"
freezer_es_protocol:
freezer_es_address:
freezer_es_port:

####################
# Docker
Expand Down
38 changes: 38 additions & 0 deletions ansible/roles/freezer/tasks/bootstrap.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
- name: Creating Freezer database
kolla_toolbox:
module_name: mysql_db
module_args:
login_host: "{{ database_address }}"
login_port: "{{ database_port }}"
login_user: "{{ database_user }}"
login_password: "{{ database_password }}"
name: "{{ freezer_database_name }}"
become: true
register: database
run_once: True
delegate_to: "{{ groups['freezer-api'][0] }}"
when:
- not use_preconfigured_databases | bool

- name: Creating Freezer database user and setting permissions
kolla_toolbox:
module_name: mysql_user
module_args:
login_host: "{{ database_address }}"
login_port: "{{ database_port }}"
login_user: "{{ database_user }}"
login_password: "{{ database_password }}"
name: "{{ freezer_database_user }}"
password: "{{ freezer_database_password }}"
host: "%"
priv: "{{ freezer_database_name }}.*:ALL"
append_privs: "yes"
become: true
run_once: True
delegate_to: "{{ groups['freezer-api'][0] }}"
when:
- not use_preconfigured_databases | bool

- include_tasks: bootstrap_service.yml
when: database.changed or use_preconfigured_databases | bool
3 changes: 3 additions & 0 deletions ansible/roles/freezer/tasks/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@
when: inventory_hostname in groups['freezer-api'] or
inventory_hostname in groups['freezer-scheduler']

- include_tasks: bootstrap.yml
when: freezer_database_backend == 'mariadb' and inventory_hostname in groups['freezer-api']

- include_tasks: bootstrap_service.yml
when: inventory_hostname in groups['freezer-api']

Expand Down
17 changes: 15 additions & 2 deletions ansible/roles/freezer/templates/freezer.conf.j2
Original file line number Diff line number Diff line change
Expand Up @@ -46,12 +46,25 @@ enable_proxy_headers_parsing = True
[paste_deploy]
config_file = /etc/freezer/freezer-paste.ini


{% if freezer_database_backend == 'mariadb' %}
[storage]
backend = sqlachemy
driver = sqlalchemy

[database]
connection = mysql+pymysql://{{ freezer_database_user }}:{{ freezer_database_password }}@{{ freezer_database_address }}/{{ freezer_database_name }}
max_retries = -1
{% endif %}

{% if freezer_database_backend == 'elasticsearch' %}
[storage]
backend = elasticsearch
driver = elasticsearch

[elasticsearch]
hosts = {{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ elasticsearch_port }}
number_of_replicas = 0
hosts = {{ freezer_es_protocol }}://{{ freezer_es_address }}:{{ freezer_es_port }}
number_of_replicas = {{ freezer_elasticsearch_replicas }}
index = freezer
{% endif %}
{% endif %}
9 changes: 9 additions & 0 deletions etc/kolla/globals.yml
Original file line number Diff line number Diff line change
Expand Up @@ -565,3 +565,12 @@
#enable_prometheus_ceph_mgr_exporter: "{{ enable_prometheus | bool and enable_ceph | bool }}"
#enable_prometheus_openstack_exporter: "{{ enable_prometheus | bool }}"
#enable_prometheus_elasticsearch_exporter: "{{ enable_prometheus | bool and enable_elasticsearch | bool }}"

#########
# Freezer
#########
# Freezer can utilize two different database backends, elasticsearch or mariadb.
# Elasticsearch is preferred, however it is not compatible with the version deployed
# by kolla-ansible. You must first setup an external elasticsearch with 2.3.0.
# By default, kolla-ansible deployed mariadb is the used database backend.
#freezer_database_backend: "mariadb"
13 changes: 13 additions & 0 deletions releasenotes/notes/freezer-backend-531eececd69c0cd4.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
upgrade:
- |
Freezer now use MariaDB as default backend for database.
Elasticsearch remains as an optional backend due to the requirement of
Freezer to use Elasticsearch version 2.3.0. Elasticsearch in kolla-ansible
is 5.6.x and that doesn't work with Freezer.
New variables have been added:: ``freezer_database_backend``,
``freezer_database_name``, ``freezer_database_user``,
``freezer_database_address``, ``freezer_elasticsearch_replicas``,
``freezer_es_protocol``, ``freezer_es_address``, ``freezer_es_port``

0 comments on commit 8ce545e

Please sign in to comment.