Upgrade Heat

This could possibly use gold plating in how bootstrapping
operates to use shade rather than the shell in the container.
It is unclear why stack create failed prior to this patch, but
that fact hasn't changed.  I think the heat domains are not setup
properly in the configuration files, meaning that the domain ID
must be created outside of Heat and registered in the configuration
file.  This is covered in Bug #1553565.

Change-Id: I490d4dd68a101f388c0ecb4acab54d5eaa6e314e
Partially-Implements: blueprint kolla-upgrade
Implements: blueprint upgrade-heat
This commit is contained in:
Steven Dake 2016-03-09 02:17:19 -05:00
parent 1f3e75feb1
commit 21ecd9925a
4 changed files with 41 additions and 28 deletions

View File

@ -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

View File

@ -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] }}"

View File

@ -1 +1,7 @@
---
- include: config.yml
- include: bootstrap_service.yml
- include: start.yml
serial: "30%"

View File

@ -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