Skip to content
Snippets Groups Projects
Commit f5d026ba authored by Will Szumski's avatar Will Szumski Committed by Pierre Riteau
Browse files

Align Kayobe Ansible version with Kolla Ansible

This change bumps up the maximum supported Ansible version to 10.x
(ansible-core 2.17.x) and minimum to 9.x. This synchronises Kayobe with
Kolla Ansible.

Change-Id: Idfbf0eed0b2333d550f822e40a0d96ae227f6159
parent 25d34ad3
No related branches found
No related tags found
No related merge requests found
......@@ -7,6 +7,8 @@
name: epel-release
state: present
become: True
vars:
ansible_python_interpreter: /usr/bin/python3
when:
- ansible_facts.os_family == 'RedHat'
- kolla_ansible_install_epel | bool
......@@ -18,6 +20,8 @@
state: present
cache_valid_time: "{{ apt_cache_valid_time if ansible_facts.os_family == 'Debian' else omit }}"
update_cache: "{{ True if ansible_facts.os_family == 'Debian' else omit }}"
vars:
ansible_python_interpreter: /usr/bin/python3
become: True
- name: Ensure source code checkout parent directory exists
......
......@@ -17,6 +17,8 @@
policy: "{{ selinux_policy }}"
state: "{{ selinux_state }}"
register: selinux_result
vars:
ansible_python_interpreter: /usr/bin/python3
become: True
when: stat_result.stat.exists
......
......@@ -141,10 +141,18 @@ function is_yum {
fi
}
function get_python {
if is_dnf; then
echo python3.12
else
echo python3
fi
}
function install_dependencies {
echo "Installing package dependencies for kayobe"
if is_dnf; then
sudo dnf -y install gcc git vim python3-devel python3-pyyaml libffi-devel
sudo dnf -y install gcc git vim python3-devel python3-pyyaml libffi-devel python3.12-devel python3.12 python3.12-pyyaml
elif is_yum; then
echo "CentOS 7 is no longer supported"
exit 1
......@@ -166,7 +174,7 @@ function install_venv {
fi
if [[ ! -f "${venv_path}/bin/activate" ]]; then
echo "Creating virtual environment in ${venv_path}"
python3 -m venv "${venv_path}"
$(get_python) -m venv "${venv_path}"
# NOTE: Virtualenv's activate and deactivate scripts reference an
# unbound variable.
set +u
......@@ -192,7 +200,9 @@ function install_venv_system_site_packages {
fi
if [[ ! -f "${venv_path}/bin/activate" ]]; then
echo "Creating virtual environment in ${venv_path}"
python3 -m venv --system-site-packages "${venv_path}"
# NOTE(wszumski): tenks doesn't currently support not using the system python
# interpreter with: "Failed to detect selinux python bindings"
/usr/bin/python3 -m venv --system-site-packages "${venv_path}"
# NOTE: Virtualenv's activate and deactivate scripts reference an
# unbound variable.
set +u
......@@ -218,7 +228,9 @@ function install_kayobe_dev_venv {
function upgrade_kayobe_venv {
echo "Upgrading kayobe virtual environment in ${KAYOBE_VENV_PATH}"
python3 -m venv "${KAYOBE_VENV_PATH}"
# NOTE(wszumski): We need to recreate the old virtualenv to switch to python3.12
rm -rf "${KAYOBE_VENV_PATH}"
$(get_python) -m venv "${KAYOBE_VENV_PATH}"
# NOTE: Virtualenv's activate and deactivate scripts reference an
# unbound variable.
set +u
......
......@@ -14,6 +14,8 @@ source "${PARENT}/functions"
function main {
config_init
# NOTE(wszusmki): Dependencies such as python can change across versions
install_dependencies
overcloud_upgrade
}
......
......@@ -13,6 +13,8 @@ source "${PARENT}/functions"
function main {
config_init
# NOTE(wszusmki): Dependencies such as python can change across versions
install_dependencies
seed_upgrade
}
......
......@@ -8,14 +8,25 @@
name: python3
become: true
- name: Install Python3.12 on RHEL derivatives
dnf:
name:
- python3.12
- python3.12-devel
state: latest
when: ansible_facts.os_family == 'RedHat'
become: true
- name: Ensure testinfra is installed
vars:
cmd: "{{ 'python3.12' if ansible_facts.os_family == 'RedHat' else 'python3' }} -m venv"
pip:
name:
- distro
- pytest-testinfra
- pytest-html
virtualenv: "{{ testinfra_venv }}"
virtualenv_command: python3 -m venv
virtualenv_command: "{{ cmd }}"
# NOTE(mgoddard): Use the name zzz-overrides.yml to ensure this takes
# precedence over the standard config files and zz-overrides.yml from
......
---
upgrade:
- |
Python 3.9.x is no longer supported on the control host. On Rocky Linux 9,
please recreate your virtualenv with ``python3.12``.
- |
Updates the maximum supported version of Ansible from 9.x (ansible-core
2.16) to 10.x (ansible-core 2.17). The minimum supported version is updated
from 8.x to 9.x. On Rocky Linux 9, you will need to recreate your Kayobe
virtualenv using ``python3.12`` as support for ``python3.9`` has been
dropped.
pbr>=2.0 # Apache-2.0
Jinja2>3 # BSD
ansible>=8,<10 # GPLv3
ansible>=9,<11 # GPLv3
cliff>=3.1.0 # Apache
netaddr!=0.7.16,>=0.7.13 # BSD
PyYAML>=3.10.0 # MIT
selinux # MIT
# INI parsing
oslo.config>=5.2.0 # Apache-2.0
paramiko # LGPL
......
......@@ -6,7 +6,7 @@ description_file =
author = OpenStack
author_email = openstack-discuss@lists.openstack.org
home_page = https://docs.openstack.org/kayobe/latest/
python_requires = >=3.8
python_requires = >=3.10
license = Apache License, Version 2.0
classifier =
Environment :: OpenStack
......@@ -18,10 +18,9 @@ classifier =
Programming Language :: Python :: Implementation :: CPython
Programming Language :: Python :: 3 :: Only
Programming Language :: Python :: 3
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
Programming Language :: Python :: 3.10
Programming Language :: Python :: 3.11
Programming Language :: Python :: 3.12
[files]
packages =
......
......@@ -8,6 +8,9 @@
- release-notes-jobs-python3
check:
jobs:
- openstack-tox-py39:
#NOTE(wszumski): We have dropped python3.9 support, so disable this job.
files: THIS-JOB-IS-DISABLED
- kayobe-tox-ansible-syntax
- kayobe-tox-ansible
- kayobe-tox-molecule
......@@ -33,6 +36,9 @@
- kayobe-infra-vm-ubuntu-noble
gate:
jobs:
- openstack-tox-py39:
#NOTE(wszumski): We have dropped python3.9 support, so disable this job.
files: THIS-JOB-IS-DISABLED
- kayobe-tox-ansible-syntax
- kayobe-tox-ansible
- kayobe-tox-molecule
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment