Bump up Ansible supported versions
This change bumps up the maximum supported Ansible version to 4.x (ansible-core 2.11.x) and minimum to 2.10. This synchronises Kayobe with Kolla Ansible (see change I8b9212934dfab3831986e8db55671baee32f4bbd). Uses of docker_image are updated. We must now provide the source parameter. When source is build (for molecule), we replace force by force_source and force_tag and move path and dockerfile under the build parameter. Use docker_image_info instead of docker_image_facts. Handle update of ansible inside kolla-ansible virtualenv and document how to do it for the kayobe virtualenv. Change-Id: I7a4530f4f63ddb37aa30a617db5944b97bc3e17f
This commit is contained in:
parent
4e14f9e9c5
commit
0f2b104213
@ -3,6 +3,7 @@
|
|||||||
docker_image:
|
docker_image:
|
||||||
name: "{{ item.value.image }}"
|
name: "{{ item.value.image }}"
|
||||||
repository: "{{ item.value.image }}"
|
repository: "{{ item.value.image }}"
|
||||||
|
source: pull
|
||||||
state: present
|
state: present
|
||||||
with_dict: "{{ docker_registry_services }}"
|
with_dict: "{{ docker_registry_services }}"
|
||||||
when:
|
when:
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
docker_image:
|
docker_image:
|
||||||
name: "{{ item.value.image }}"
|
name: "{{ item.value.image }}"
|
||||||
repository: "{{ item.value.image }}"
|
repository: "{{ item.value.image }}"
|
||||||
|
source: pull
|
||||||
state: present
|
state: present
|
||||||
with_dict: "{{ inspection_store_services }}"
|
with_dict: "{{ inspection_store_services }}"
|
||||||
when:
|
when:
|
||||||
|
@ -54,6 +54,36 @@
|
|||||||
with_items:
|
with_items:
|
||||||
- { name: pip }
|
- { name: pip }
|
||||||
|
|
||||||
|
- block:
|
||||||
|
- name: Gather list of installed Python packages
|
||||||
|
pip_package_info:
|
||||||
|
clients: "{{ kolla_ansible_pip }}"
|
||||||
|
register: pip_packages
|
||||||
|
|
||||||
|
# Upgrading directly from Ansible 2.9 to Ansible 2.10 or from Ansible 2.10
|
||||||
|
# to Ansible 4 is known to cause problems. Uninstall Ansible first if its
|
||||||
|
# version is lower than 4.0.0. Although 2.10 is allowed by version limits,
|
||||||
|
# this is needed even it is present from Wallaby, because we request
|
||||||
|
# `state: latest`.
|
||||||
|
- name: Uninstall Ansible if an old version is present
|
||||||
|
pip:
|
||||||
|
name: ansible
|
||||||
|
state: absent
|
||||||
|
virtualenv: "{{ kolla_ansible_venv }}"
|
||||||
|
virtualenv_python: "{{ kolla_ansible_venv_python }}"
|
||||||
|
when:
|
||||||
|
- "'ansible' in pip_packages.packages[kolla_ansible_pip]"
|
||||||
|
- pip_packages.packages[kolla_ansible_pip].ansible[0].version is version('4.0.0', '<')
|
||||||
|
|
||||||
|
- name: Uninstall ansible-base
|
||||||
|
pip:
|
||||||
|
name: ansible-base
|
||||||
|
state: absent
|
||||||
|
virtualenv: "{{ kolla_ansible_venv }}"
|
||||||
|
virtualenv_python: "{{ kolla_ansible_venv_python }}"
|
||||||
|
vars:
|
||||||
|
kolla_ansible_pip: "{{ kolla_ansible_venv }}/bin/pip"
|
||||||
|
|
||||||
- name: Ensure required Python packages are installed
|
- name: Ensure required Python packages are installed
|
||||||
vars:
|
vars:
|
||||||
kolla_ansible_packages:
|
kolla_ansible_packages:
|
||||||
@ -67,7 +97,7 @@
|
|||||||
# Limit the version of ansible used by kolla-ansible to avoid new
|
# Limit the version of ansible used by kolla-ansible to avoid new
|
||||||
# releases from breaking tested code. Changes to this limit should be
|
# releases from breaking tested code. Changes to this limit should be
|
||||||
# tested.
|
# tested.
|
||||||
- ansible>=2.9,<2.11,!=2.9.8,!=2.9.12
|
- ansible>=2.10.0,<5.0
|
||||||
- selinux
|
- selinux
|
||||||
pip:
|
pip:
|
||||||
name: "{{ (kolla_ansible_packages + kolla_ansible_venv_extra_requirements) | select | list }}"
|
name: "{{ (kolla_ansible_packages + kolla_ansible_venv_extra_requirements) | select | list }}"
|
||||||
|
@ -17,17 +17,20 @@
|
|||||||
register: platforms
|
register: platforms
|
||||||
|
|
||||||
- name: Discover local Docker images
|
- name: Discover local Docker images
|
||||||
docker_image_facts:
|
docker_image_info:
|
||||||
name: "molecule_local/{{ item.item.name }}"
|
name: "molecule_local/{{ item.item.name }}"
|
||||||
with_items: "{{ platforms.results }}"
|
with_items: "{{ platforms.results }}"
|
||||||
register: docker_images
|
register: docker_images
|
||||||
|
|
||||||
- name: Build an Ansible compatible image
|
- name: Build an Ansible compatible image
|
||||||
docker_image:
|
docker_image:
|
||||||
path: "{{ molecule_ephemeral_directory }}"
|
|
||||||
name: "molecule_local/{{ item.item.image }}"
|
name: "molecule_local/{{ item.item.image }}"
|
||||||
|
source: build
|
||||||
|
build:
|
||||||
|
path: "{{ molecule_ephemeral_directory }}"
|
||||||
dockerfile: "{{ item.item.dockerfile | default(item.invocation.module_args.dest) }}"
|
dockerfile: "{{ item.item.dockerfile | default(item.invocation.module_args.dest) }}"
|
||||||
force: "{{ item.item.force | default(true) }}"
|
force_source: "{{ item.item.force | default(true) }}"
|
||||||
|
force_tag: "{{ item.item.force | default(true) }}"
|
||||||
with_items: "{{ platforms.results }}"
|
with_items: "{{ platforms.results }}"
|
||||||
when: platforms.changed or docker_images.results | map(attribute='images') | select('equalto', []) | list | count >= 0
|
when: platforms.changed or docker_images.results | map(attribute='images') | select('equalto', []) | list | count >= 0
|
||||||
|
|
||||||
|
@ -18,17 +18,20 @@
|
|||||||
register: platforms
|
register: platforms
|
||||||
|
|
||||||
- name: Discover local Docker images
|
- name: Discover local Docker images
|
||||||
docker_image_facts:
|
docker_image_info:
|
||||||
name: "molecule_local/{{ item.item.name }}"
|
name: "molecule_local/{{ item.item.name }}"
|
||||||
with_items: "{{ platforms.results }}"
|
with_items: "{{ platforms.results }}"
|
||||||
register: docker_images
|
register: docker_images
|
||||||
|
|
||||||
- name: Build an Ansible compatible image
|
- name: Build an Ansible compatible image
|
||||||
docker_image:
|
docker_image:
|
||||||
path: "{{ molecule_ephemeral_directory }}"
|
|
||||||
name: "molecule_local/{{ item.item.image }}"
|
name: "molecule_local/{{ item.item.image }}"
|
||||||
|
source: build
|
||||||
|
build:
|
||||||
|
path: "{{ molecule_ephemeral_directory }}"
|
||||||
dockerfile: "{{ item.item.dockerfile | default(item.invocation.module_args.dest) }}"
|
dockerfile: "{{ item.item.dockerfile | default(item.invocation.module_args.dest) }}"
|
||||||
force: "{{ item.item.force | default(true) }}"
|
force_source: "{{ item.item.force | default(true) }}"
|
||||||
|
force_tag: "{{ item.item.force | default(true) }}"
|
||||||
with_items: "{{ platforms.results }}"
|
with_items: "{{ platforms.results }}"
|
||||||
when: platforms.changed or docker_images.results | map(attribute='images') | select('equalto', []) | list | count >= 0
|
when: platforms.changed or docker_images.results | map(attribute='images') | select('equalto', []) | list | count >= 0
|
||||||
|
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
docker_image:
|
docker_image:
|
||||||
name: "{{ item.value.image }}"
|
name: "{{ item.value.image }}"
|
||||||
repository: "{{ item.value.image }}"
|
repository: "{{ item.value.image }}"
|
||||||
|
source: pull
|
||||||
state: present
|
state: present
|
||||||
with_dict: "{{ opensm_services }}"
|
with_dict: "{{ opensm_services }}"
|
||||||
when:
|
when:
|
||||||
|
@ -112,6 +112,14 @@ Update the pip package::
|
|||||||
|
|
||||||
(kayobe) $ pip install -U pip
|
(kayobe) $ pip install -U pip
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
When updating Ansible above version 2.9.x, first uninstall it with ``pip
|
||||||
|
uninstall ansible``. A newer version will be installed with the next
|
||||||
|
command, as a Kayobe dependency. If Ansible 2.10.x was installed and you
|
||||||
|
want to use a newer version, also uninstall the ``ansible-base`` package
|
||||||
|
with ``pip uninstall ansible-base``.
|
||||||
|
|
||||||
If upgrading to the latest version of Kayobe::
|
If upgrading to the latest version of Kayobe::
|
||||||
|
|
||||||
(kayobe) $ pip install -U kayobe
|
(kayobe) $ pip install -U kayobe
|
||||||
|
21
releasenotes/notes/ansible-max-4-f0666c5decc440f1.yaml
Normal file
21
releasenotes/notes/ansible-max-4-f0666c5decc440f1.yaml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
---
|
||||||
|
upgrade:
|
||||||
|
- |
|
||||||
|
Updates the maximum supported version of Ansible from 2.9 to 4.x
|
||||||
|
(ansible-core 2.11). The minimum supported version is updated from 2.9 to
|
||||||
|
2.10. This is true for both Kayobe and Kolla Ansible.
|
||||||
|
- |
|
||||||
|
Upgrading directly from Ansible 2.9 to Ansible 2.10 or from Ansible 2.10 to
|
||||||
|
Ansible 4 is known to cause problems. You should uninstall Ansible before
|
||||||
|
upgrading your Kayobe virtual environment:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
pip uninstall ansible
|
||||||
|
|
||||||
|
If upgrading from Ansible 2.10 to a newer version, also uninstall
|
||||||
|
``ansible-base``:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
pip uninstall ansible-base
|
@ -1,5 +1,5 @@
|
|||||||
pbr>=2.0 # Apache-2.0
|
pbr>=2.0 # Apache-2.0
|
||||||
ansible>=2.9.0,<2.11.0,!=2.9.8,!=2.9.12 # GPLv3
|
ansible>=2.10.0,<5.0 # GPLv3
|
||||||
cliff>=3.1.0 # Apache
|
cliff>=3.1.0 # Apache
|
||||||
netaddr!=0.7.16,>=0.7.13 # BSD
|
netaddr!=0.7.16,>=0.7.13 # BSD
|
||||||
PyYAML>=3.10.0 # MIT
|
PyYAML>=3.10.0 # MIT
|
||||||
|
Loading…
Reference in New Issue
Block a user