Fix hieradata overrides for UC instack/heat install

Complement Idf595498e46eeb88acfd4c3a21094d22197a6d7b
and make sure heat installer takes a valid hieradata
override file depending on config vars setup.

Update README as well to explain the cases better.

Closes-bug: #1766579
Closes-bug: #1766848

Change-Id: Id821f613fe72e2f768f80acaa5657a8be86879b7
Signed-off-by: Bogdan Dobrelya <bdobreli@redhat.com>
This commit is contained in:
Bogdan Dobrelya 2018-04-27 17:57:27 +02:00
parent 25e516152a
commit 355859beaf
3 changed files with 52 additions and 23 deletions

View File

@ -19,8 +19,12 @@ defaults imply the 'openstack undercloud install' command will be invoked. See t
deployment methods section below for the alternative modes.
- `undercloud_install_log`: <'{{ working_dir }}/undercloud_install.log'> -- the full path
to the undercloud install log file.
- `undercloud_hieradata_override_file`: <'quickstart-hieradata-overrides-classic-undercloud.yaml.j2'> -- the name of
jinja template used to override the undercloud's install hieradata
- `undercloud_hieradata_override_file`: <'hieradata-overrides-classic-undercloud.yaml.j2'> -- the name of
jinja template used to override the undercloud's install hieradata. DEPRECATED. Use instead:
- `hieradata_override_file_classic_undercloud`: <hieradata-overrides-classic-undercloud.yaml.j2> --
the source template for hieradata overrides for instack-undercloud deployments.
- `hieradata_override_file_t_h_t_undercloud`: <hieradata-overrides-t-h-t-undercloud.yaml.j2> --
the source template for hieradata overrides for heat driven containerized undercloud deployments.
- `undercloud_ironic_ipxe_port`: <'3816'> -- port to use for httpd ipxe server
for ironic deploy
- `enable_vbmc`: <'true'> use a virtual bmc instead of pxe ssh
@ -147,14 +151,23 @@ By default, the undercloud uses ``openstack undercloud install`` command,
``hieradata_override_file_classic_undercloud`` variable to set the hieradata
overrides that will be used for the puppet deployment.
However, there exists another method, explained below, for setting up the
undercloud based on containers with the ``openstack undercloud deploy`` command.
This method can be used by setting the ``containerized_undercloud`` variable to
'true' and it's currently experimental. Instead of using the "classic" way to set
up hieradata, it uses the file coming from the
``hieradata_override_file_t_h_t_undercloud`` variable. As the name hints, this
deployment method is based on tripleo-heat-templates, and thus, the way of
overriding hieradata for it is similar as we do for the overcloud.
However, there exists more methods for setting up the undercloud based on
containers with the ``openstack undercloud install --use-heat`` and
``openstack undercloud deploy`` commands. Both methods are based on
tripleo-heat-templates. The former one provides the instack compatible
`undercloud.conf` format. It may be requested via settings:
```
undercloud_install_cli_options: --use-heat
undercloud_install_script: undercloud-install.sh.j2
```
And the latter deployment method is more "free to go". It can be
enabled with:
```
containerized_undercloud: true
undercloud_install_script: undercloud-deploy.sh.j2
```
For these cases, hiera override data is consumed from
``hieradata_override_file_t_h_t_undercloud``.
Note, the containerized undercloud is a hacking mode for developers, that allows
to test containerized components undercloud, with custom, like very minimal,

View File

@ -12,12 +12,6 @@
virthost_nameservers: "{{ virthost_nameservers_output.stdout_lines }}"
when: nameserver_from_virthost|bool
- name: Create undercloud configuration
template:
src: "{{ undercloud_config_file }}"
dest: "./undercloud.conf"
mode: 0600
- when: undercloud_hieradata_override_file is defined
block:
- name: deprecation message
@ -41,15 +35,37 @@
mode: 0600
- name: Create t-h-t driven undercloud hieradata overrides
template:
src: "{{ hieradata_override_file_t_h_t_undercloud }}"
dest: "./hieradata-overrides-t-h-t-undercloud.yaml"
mode: 0600
when: undercloud_install_cli_options == '--use-heat' or containerized_undercloud|bool
block:
- name: Generate undercloud hieradata overrides file from template
template:
src: "{{ hieradata_override_file_t_h_t_undercloud }}"
dest: "./hieradata-overrides-t-h-t-undercloud.yaml"
mode: 0600
- name: Set fact for undercloud hieradata overrides file
set_fact:
undercloud_hieradata_override: "./hieradata-overrides-t-h-t-undercloud.yaml"
- name: Create classic undercloud hieradata overrides
when:
- not undercloud_install_cli_options
- not containerized_undercloud|bool
block:
- name: Generate undercloud hieradata overrides file from template
template:
src: "{{ hieradata_override_file_classic_undercloud }}"
dest: "./hieradata-overrides-classic-undercloud.yaml"
mode: 0600
- name: Set fact for undercloud hieradata overrides file
set_fact:
undercloud_hieradata_override: "./hieradata-overrides-classic-undercloud.yaml"
- name: Create undercloud configuration
template:
src: "{{ hieradata_override_file_classic_undercloud }}"
dest: "./hieradata-overrides-classic-undercloud.yaml"
src: "{{ undercloud_config_file }}"
dest: "./undercloud.conf"
mode: 0600
- name: Create undercloud install script

View File

@ -155,7 +155,7 @@ dhcp_end = {{undercloud_dhcp_end|default(
# under /etc/puppet/hieradata and set as the first file in the hiera
# hierarchy. This can be used to to custom configure services beyond
# what undercloud.conf provides (string value)
hieradata_override = hieradata-overrides-classic-undercloud.yaml
hieradata_override = {{ undercloud_hieradata_override }}
# Network interface on which inspection dnsmasq will listen. If in
# doubt, use the default value. (string value)