
Add custom_undercloud_roles_data. Defaults to t-h-t's /roles_data_undercloud.yaml. Defines a custom undercloud roles data file which should be taken into account when preparing docker images for containerized undercloud services deployment. The default can not be changed yet as it is hardcoded in the tripleo client. Related-bug: #1693448 Change-Id: I38bd7beefa59ef56f6f4df91715a808d4b8c228e Signed-off-by: Bogdan Dobrelya <bdobreli@redhat.com>
143 lines
5.1 KiB
Django/Jinja
143 lines
5.1 KiB
Django/Jinja
#!/bin/bash
|
|
|
|
set -eux
|
|
|
|
### --start_docs
|
|
## Deploying the undercloud
|
|
## ========================
|
|
## ::
|
|
|
|
## * Export the required environment variables.
|
|
## ::
|
|
|
|
{% for var in (undercloud_env_vars|default([])) %}
|
|
export {{ var }}
|
|
{% endfor %}
|
|
|
|
|
|
## * Create the parameters for the deployment.
|
|
## ::
|
|
|
|
cat > {{ working_dir }}/custom_undercloud_deploy.yaml << EOF_CAT
|
|
# custom undercloud deployment parameters from heat
|
|
# NOTE: many of these live in t-h-t in:
|
|
# extraconfig/post_deploy/undercloud_post.yaml
|
|
|
|
resource_registry:
|
|
OS::TripleO::Undercloud::Net::SoftwareConfig: {{overcloud_templates_path}}/net-config-noop.yaml
|
|
|
|
parameter_defaults:
|
|
UndercloudNetworkCidr: {{undercloud_network_cidr}}
|
|
UndercloudDhcpRangeStart: {{undercloud_dhcp_start|default(
|
|
undercloud_network_cidr|nthhost(5))}}
|
|
UndercloudDhcpRangeEnd: {{undercloud_dhcp_end|default(
|
|
undercloud_network_cidr|nthhost(30))}}
|
|
UndercloudNetworkGateway: {{undercloud_network_gateway|default(
|
|
undercloud_network_cidr|nthhost(1))}}
|
|
{% if undercloud_undercloud_nameservers is string %}
|
|
UndercloudNameserver: {{undercloud_undercloud_nameservers.split(',')[0]}}
|
|
{% elif undercloud_undercloud_nameservers is sequence %}
|
|
UndercloudNameserver: {{undercloud_undercloud_nameservers[-1]}}
|
|
{% endif %}
|
|
NeutronServicePlugins: ""
|
|
EOF_CAT
|
|
|
|
## * Update requested packages.
|
|
## ::
|
|
|
|
{% if undercloud_update_packages | default(false) %}
|
|
sudo yum update -y {{ undercloud_update_packages }}
|
|
{% endif %}
|
|
|
|
## * Start the required services.
|
|
## ::
|
|
|
|
sudo systemctl start openvswitch
|
|
sudo systemctl start docker #FIXME: do these in the installer?
|
|
|
|
## * Update the puppet modules or install custom modules.
|
|
## NOTE: breaks installed packages, is a pure hack in for dev envs only!
|
|
## ::
|
|
|
|
# Amend "foo/bar" and uncomment as needed:
|
|
#puppet module install foo/bar || puppet module upgrade foo/bar
|
|
|
|
#MODULE_PATH="{{ working_dir }}/.puppet/code/modules"
|
|
#rm -rf "${MODULE_PATH}/bar"
|
|
#mkdir -p "${MODULE_PATH}"
|
|
#cd "${MODULE_PATH}"
|
|
#git clone -b dev https://github.com/foo/puppet-bar bar
|
|
|
|
# Copy installed/cloned modules and make a symlink
|
|
#sudo rsync -avxH "${MODULE_PATH}" /usr/share/openstack-puppet/
|
|
sudo mkdir -p /etc/puppet/modules/
|
|
sudo ln -f -s /usr/share/openstack-puppet/modules/* /etc/puppet/modules/
|
|
|
|
## * Configure the undercloud containers default parameters
|
|
## ::
|
|
{% if undercloud_docker_registry_host is defined %}
|
|
openstack overcloud container image prepare \
|
|
--env-file {{ working_dir }}/undercloud-containers-default-parameters.yaml \
|
|
{% if containerized_undercloud|bool %}
|
|
-e {{overcloud_templates_path}}/environments/services-docker/ironic.yaml \
|
|
-e {{overcloud_templates_path}}/environments/services-docker/mistral.yaml \
|
|
-e {{overcloud_templates_path}}/environments/services-docker/zaqar.yaml \
|
|
-e {{overcloud_templates_path}}/environments/docker.yaml \
|
|
{% endif %}
|
|
-r {{undercloud_roles_data}} \
|
|
--namespace {{ undercloud_docker_registry_host }}:{{ undercloud_docker_registry_port }}/{{ undercloud_docker_registry_namespace }}
|
|
{% if undercloud_docker_registry_insecure|bool %}
|
|
echo " DockerInsecureRegistryAddress: {{ undercloud_docker_registry_host }}:{{ undercloud_docker_registry_port }}" >> \
|
|
{{ working_dir }}/undercloud-containers-default-parameters.yaml
|
|
{% endif %}
|
|
{% else %}
|
|
openstack overcloud container image prepare \
|
|
{% if containerized_undercloud|bool %}
|
|
-e {{overcloud_templates_path}}/environments/services-docker/ironic.yaml \
|
|
-e {{overcloud_templates_path}}/environments/services-docker/mistral.yaml \
|
|
-e {{overcloud_templates_path}}/environments/services-docker/zaqar.yaml \
|
|
-e {{overcloud_templates_path}}/environments/docker.yaml \
|
|
{% endif %}
|
|
-r {{undercloud_roles_data}} \
|
|
--env-file {{ working_dir }}/undercloud-containers-default-parameters.yaml
|
|
{% endif %}
|
|
|
|
echo "============================="
|
|
echo "Undercloud containers default parameters:"
|
|
cat {{ working_dir }}/undercloud-containers-default-parameters.yaml
|
|
echo "============================="
|
|
|
|
## * Set the local ip used for the undercloud install
|
|
## ::
|
|
|
|
undercloud_local_ip={{ hostvars['undercloud'].undercloud_ip }}
|
|
|
|
## * Deploy the undercloud
|
|
## ::
|
|
|
|
# TODO(bogdando) add '-r {{undercloud_roles_data}}' once the client
|
|
# starts supporting 'openstack undercloud deploy -r' option.
|
|
|
|
sudo openstack undercloud deploy \
|
|
--templates={{overcloud_templates_path}} \
|
|
--local-ip=$undercloud_local_ip \
|
|
-e {{ working_dir }}/custom_undercloud_deploy.yaml \
|
|
{% if containerized_undercloud|bool %}
|
|
-e {{overcloud_templates_path}}/environments/services-docker/ironic.yaml \
|
|
-e {{overcloud_templates_path}}/environments/services-docker/mistral.yaml \
|
|
-e {{overcloud_templates_path}}/environments/services-docker/zaqar.yaml \
|
|
-e {{overcloud_templates_path}}/environments/docker.yaml \
|
|
-e {{ working_dir }}/undercloud-containers-default-parameters.yaml \
|
|
{% endif %}
|
|
{{ undercloud_extra_args }} \
|
|
-e {{ working_dir }}/hieradata-overrides-t-h-t-undercloud.yaml
|
|
|
|
## * Copy the Openstack credentials file to the non root user.
|
|
## ::
|
|
|
|
sudo cp /root/stackrc {{ working_dir }}/stackrc
|
|
sudo chown {{ undercloud_user }}:{{ undercloud_user }} {{ working_dir }}/stackrc
|
|
|
|
### --stop_docs
|
|
|