Maksim Malchuk 5cf750c313 Fix maximum width of the DIB Multiline-YAML
The dib_env_vars variable in the Bifrost's dib.yml file can contain
the DIB_BLOCK_DEVICE_CONFIG environment variable which is always the
Multiline-YAML data. By default, the format of the data is not
preserved while the configuration is merged and saved for the
bifrost-deploy container.

This is because Ansible uses the PyYAML library which has a default
80 symbol string length limit. The official Ansible documentation [1]
recommends using to_yaml or to_nice_yaml filters with width parameter.
This change adds the same ability to the merge_yaml Ansible plugin.

1. https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html#formatting-data-yaml-and-json

The related change for the diskimage-builder to solve the issue with
incorrect data provided by Kolla-Ansible is also provided:
I3b74ede69eb064ad813a9108ec68a228e549e8bb

The related change for Kolla-Ansible is also provided:
Id79445c0311916ac6c1beb3986e14f652ee5a63c

Closes-Bug: #2014981
Related-Bug: #2014980
Change-Id: I339042d9ce405f59aba936dd98df7d89a88bb41e
Signed-off-by: Maksim Malchuk <maksim.malchuk@gmail.com>
2023-04-13 13:59:15 +03:00

23 lines
799 B
YAML

---
{% if not overcloud_dib_build_host_images | bool %}
# Diskimage-builder element for base OS.
dib_os_element: "{{ kolla_bifrost_dib_os_element }}"
# DIB OS release.
dib_os_release: "{{ kolla_bifrost_dib_os_release }}"
# List of DIB image elements.
dib_elements: "{{ (kolla_bifrost_dib_elements + [kolla_bifrost_dib_init_element]) | join(' ') }}"
# DIB image environment variables.
{{ {'dib_env_vars': kolla_bifrost_dib_env_vars} | to_nice_yaml(width=131072) }}
# List of DIB image packages.
dib_packages: "{{ kolla_bifrost_dib_packages | join(',') }}"
{% else %}
# Stop building overcloud host image using Bifrost. This needs to be defined
# here to override the default true value set in kolla-ansible in
# ansible/roles/bifrost/templates/dib.yml.j2.
create_image_via_dib: False
{% endif %}