Current Series Release Notes

28.0.0-25

New Features

  • New variables are added to allow a user defined playbooks to be specified that run pre and post the existing code in setup-hosts, setup-infrastructure and setup-openstack. OpenStack-Ansible deployments may be extended and have additional user defined functions added using these hooks, which will have full access to the OSA inventory and host variables.

  • Added openstack-resources.yml playbook that aims to handle creation and futher adjustment of OpenStack resources. It relies heavily on Ansible collection for OpenStack. The main goal of the playbook to provide a unified method of creating and managing common resources, like images, flavors, compute aggregates, networks, etc. Playbook can consume following variables, that are provided to simmilar ones in openstack.osa.openstack_resources role:

    • openstack_user_identity

    • openstack_user_compute

    • openstack_user_network

    • openstack_user_image

    • openstack_user_coe

    Please reffer to the role documentation and examples for more details.

  • Implemented installation of extra Python packages inside Ansible virtual environment. By default, extra requirements should be defined in /etc/openstack_deploy/user-ansible-venv-requirements.txt file. Path to the requirements file can be overriden using USER_ANSIBLE_REQUIREMENTS_FILE environment variable.

Known Issues

  • With recent changes to config_template module, it is not possible anymore to have variables as dictionary keys in overrides. Example below will not be renderred properly:

    config_overrides:
      "{{ inventory_hostname }}":
        cruel: world
    

    This limitation boils down to Ansible design and will be true for any other module as well. In order to overcome it, you can transform the dictionary to a Jinja2 format:

    config_overrides: |-
      {{
        {
          inventory_hostname: {
            'cruel': 'world'
          }
        }
      }}
    

Bug Fixes

  • Fixes format of ceph_conf_overrides_rgw variable by converting override dictionary to Jinja2 format to workaround Ansible limitation on usage of variables as keys in dictionary.