diff --git a/.zuul.yaml b/.zuul.yaml
index 299d996..c6ff428 100644
--- a/.zuul.yaml
+++ b/.zuul.yaml
@@ -1,23 +1,22 @@
 - project:
     templates:
-      - openstack-python-jobs
-      - openstack-python3-train-jobs
+      - openstack-python3-ussuri-jobs
       - check-requirements
       - publish-openstack-docs-pti
       - release-notes-jobs-python3
     check:
       jobs:
-        - openstack-tox-functional:
+        - openstack-tox-functional-py36:
             required-projects:
               - openstack/placement
-        - openstack-tox-functional-py36:
+        - openstack-tox-functional-py37:
             required-projects:
               - openstack/placement
     gate:
       jobs:
-        - openstack-tox-functional:
-            required-projects:
-              - openstack/placement
         - openstack-tox-functional-py36:
             required-projects:
               - openstack/placement
+        - openstack-tox-functional-py37:
+            required-projects:
+              - openstack/placement
diff --git a/releasenotes/notes/drop-python-2-df59500ad303a56c.yaml b/releasenotes/notes/drop-python-2-df59500ad303a56c.yaml
new file mode 100644
index 0000000..9f828cb
--- /dev/null
+++ b/releasenotes/notes/drop-python-2-df59500ad303a56c.yaml
@@ -0,0 +1,5 @@
+---
+upgrade:
+  - |
+    Python 2.7 support has been dropped. The minimum version of Python now
+    supported is Python 3.6.
diff --git a/setup.cfg b/setup.cfg
index a70c693..382c926 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -13,8 +13,6 @@ classifier =
     License :: OSI Approved :: Apache Software License
     Operating System :: POSIX :: Linux
     Programming Language :: Python
-    Programming Language :: Python :: 2
-    Programming Language :: Python :: 2.7
     Programming Language :: Python :: 3
     Programming Language :: Python :: 3.6
     Programming Language :: Python :: 3.7
diff --git a/tox.ini b/tox.ini
index 40af742..35d02d1 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,6 +1,6 @@
 [tox]
 minversion = 3.1.1
-envlist = py27,py37,functional,functional-py36,pep8
+envlist = py36,py37,functional-py36,functional-py37,pep8
 skipsdist = True
 # Automatic envs (pyXX) will use the python version appropriate to that
 # env and ignore basepython inherited from [testenv]. That's what we
@@ -27,7 +27,6 @@ commands = stestr run {posargs}
 # gate functional jobs, which use the 'functional' path when
 # copying files.
 [testenv:functional]
-basepython = python2.7
 deps =
   {[testenv]deps}
   git+https://opendev.org/openstack/placement.git#egg=openstack-placement