diff --git a/ansible/roles/kolla-ansible/defaults/main.yml b/ansible/roles/kolla-ansible/defaults/main.yml
index 340060844..8474be5ba 100644
--- a/ansible/roles/kolla-ansible/defaults/main.yml
+++ b/ansible/roles/kolla-ansible/defaults/main.yml
@@ -26,7 +26,7 @@ kolla_ansible_venv_extra_requirements: []
 # tested code. Changes to this limit should be tested. It is possible to only
 # install ansible-core by setting kolla_ansible_venv_ansible to None.
 kolla_ansible_venv_ansible:
-kolla_ansible_venv_ansible_core: 'ansible-core>=2.16,<2.18'
+kolla_ansible_venv_ansible_core: 'ansible-core>=2.17,<2.19'
 
 # Path to a requirements.yml file for Ansible collections.
 kolla_ansible_requirements_yml: "{{ kolla_ansible_venv }}/share/kolla-ansible/requirements.yml"
diff --git a/releasenotes/notes/bump-ansible-11-12-0eaf6b997b716ba4.yaml b/releasenotes/notes/bump-ansible-11-12-0eaf6b997b716ba4.yaml
new file mode 100644
index 000000000..19075d47f
--- /dev/null
+++ b/releasenotes/notes/bump-ansible-11-12-0eaf6b997b716ba4.yaml
@@ -0,0 +1,6 @@
+---
+ upgrade:
+   - |
+     Updates the maximum supported version of Ansible from 11 (ansible-core
+     2.17) to 12 (ansible-core 2.18). The minimum supported version is updated
+     from 9.x to 10.x. This is true for both Kayobe and Kolla Ansible.
diff --git a/requirements.txt b/requirements.txt
index dee34cc51..c4141c12d 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,6 +1,6 @@
 pbr>=2.0 # Apache-2.0
 Jinja2>3 # BSD
-ansible>=9,<11 # GPLv3
+ansible>=10,<12 # GPLv3
 cliff>=3.1.0 # Apache
 netaddr!=0.7.16,>=0.7.13 # BSD
 PyYAML>=3.10.0 # MIT