diff --git a/ansible/roles/heat/tasks/bootstrap.yml b/ansible/roles/heat/tasks/bootstrap.yml index 8429c04145..2ac3cfd8c4 100644 --- a/ansible/roles/heat/tasks/bootstrap.yml +++ b/ansible/roles/heat/tasks/bootstrap.yml @@ -4,6 +4,7 @@ -m mysql_db -a "login_host='{{ database_address }}' login_user='{{ database_user }}' + login_port='{{ mariadb_port }}' login_password='{{ database_password }}' name='{{ heat_database_name }}'" register: database @@ -35,27 +36,5 @@ run_once: True delegate_to: "{{ groups['heat-api'][0] }}" -- name: Running Heat bootstrap container - kolla_docker: - action: "start_container" - common_options: "{{ docker_common_options }}" - detach: False - environment: - KOLLA_BOOTSTRAP: - KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}" - OS_AUTH_URL: "{{ openstack_auth.auth_url }}" - OS_IDENTITY_API_VERSION: "3" - OS_USERNAME: "{{ openstack_auth.username }}" - OS_PASSWORD: "{{ openstack_auth.password }}" - OS_PROJECT_NAME: "{{ openstack_auth.project_name }}" - HEAT_DOMAIN_ADMIN_PASSWORD: "{{ heat_domain_admin_password }}" - image: "{{ heat_api_image_full }}" - labels: - BOOTSTRAP: - name: "bootstrap_heat" - volumes: - - "{{ node_config_directory }}/heat-api/:{{ container_config_directory }}/:ro" - - "kolla_logs:/var/log/kolla/" - run_once: True - delegate_to: "{{ groups['heat-api'][0] }}" +- include: bootstrap_service.yml when: database_created diff --git a/ansible/roles/heat/tasks/bootstrap_service.yml b/ansible/roles/heat/tasks/bootstrap_service.yml new file mode 100644 index 0000000000..40af8b1759 --- /dev/null +++ b/ansible/roles/heat/tasks/bootstrap_service.yml @@ -0,0 +1,24 @@ +- name: Running Heat bootstrap container + kolla_docker: + action: "start_container" + common_options: "{{ docker_common_options }}" + detach: False + environment: + KOLLA_BOOTSTRAP: + KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}" + OS_AUTH_URL: "{{ openstack_auth.auth_url }}" + OS_IDENTITY_API_VERSION: "3" + OS_USERNAME: "{{ openstack_auth.username }}" + OS_PASSWORD: "{{ openstack_auth.password }}" + OS_PROJECT_NAME: "{{ openstack_auth.project_name }}" + HEAT_DOMAIN_ADMIN_PASSWORD: "{{ heat_domain_admin_password }}" + image: "{{ heat_api_image_full }}" + labels: + BOOTSTRAP: + name: "bootstrap_heat" + restart_policy: "never" + volumes: + - "{{ node_config_directory }}/heat-api/:{{ container_config_directory }}/:ro" + - "kolla_logs:/var/log/kolla/" + run_once: True + delegate_to: "{{ groups['heat-api'][0] }}" diff --git a/ansible/roles/heat/tasks/upgrade.yml b/ansible/roles/heat/tasks/upgrade.yml index ed97d539c0..c0e3b19a40 100644 --- a/ansible/roles/heat/tasks/upgrade.yml +++ b/ansible/roles/heat/tasks/upgrade.yml @@ -1 +1,7 @@ --- +- include: config.yml + +- include: bootstrap_service.yml + +- include: start.yml + serial: "30%" diff --git a/docker/heat/heat-api/extend_start.sh b/docker/heat/heat-api/extend_start.sh index ca4f83da58..9c1e5ba3b9 100644 --- a/docker/heat/heat-api/extend_start.sh +++ b/docker/heat/heat-api/extend_start.sh @@ -4,10 +4,14 @@ # of the KOLLA_BOOTSTRAP variable being set, including empty. if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then heat-manage db_sync - openstack domain create heat - openstack user create --domain heat heat_domain_admin --password ${HEAT_DOMAIN_ADMIN_PASSWORD} - openstack role add --domain heat --user heat_domain_admin admin - openstack role create heat_stack_owner - openstack role create heat_stack_user + CURRENT_HEAT_DOMAIN_NAME=$(openstack domain list | grep heat | awk '{print $4}') + + if [[ "heat" != "$CURRENT_HEAT_DOMAIN_NAME" ]]; then + openstack domain create heat + openstack user create --domain heat heat_domain_admin --password ${HEAT_DOMAIN_ADMIN_PASSWORD} + openstack role add --domain heat --user heat_domain_admin admin + openstack role create heat_stack_owner + openstack role create heat_stack_user + fi exit 0 fi