diff --git a/tox.ini b/tox.ini
index 52816925..ad96da82 100644
--- a/tox.ini
+++ b/tox.ini
@@ -32,7 +32,9 @@ setenv =
 
 [testenv:docs]
 basepython = python3
-deps = -r{toxinidir}/doc/requirements.txt
+deps =
+    -r{toxinidir}/doc/requirements.txt
+    -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
 commands =
     bash -c "rm -rf doc/build"
     sphinx-build -W --keep-going -b html doc/source doc/build/html
@@ -41,22 +43,22 @@ commands =
 basepython = python3
 deps = {[testenv:docs]deps}
 allowlist_externals =
-  make
+    make
 commands =
-  sphinx-build -W --keep-going -b latex doc/source doc/build/pdf
-  make -C doc/build/pdf
+    sphinx-build -W --keep-going -b latex doc/source doc/build/pdf
+    make -C doc/build/pdf
 
 [doc8]
-# Settings for doc8:
 extensions = .rst
 
 [testenv:releasenotes]
 basepython = python3
-deps = -r{toxinidir}/doc/requirements.txt
+deps =
+    -r{toxinidir}/doc/requirements.txt
+    -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
 commands =
     sphinx-build -a -E -W -d releasenotes/build/doctrees --keep-going -b html releasenotes/source releasenotes/build/html
 
-# environment used by the -infra templated docs job
 [testenv:venv]
 basepython = python3
 commands =
@@ -69,10 +71,7 @@ commands =
     doc8 doc
 
 [flake8]
-# Ignores the following rules due to how ansible modules work in general
-#     F403 'from ansible.module_utils.basic import *' used;
-#          unable to detect undefined names
-ignore=F403
+ignore = F403
 
 [testenv:bashate]
 basepython = python3