diff --git a/tools/update-test-platforms.py b/tools/update-test-platforms.py
index 147ca92e0..75ba2c877 100755
--- a/tools/update-test-platforms.py
+++ b/tools/update-test-platforms.py
@@ -41,7 +41,6 @@ PLATFORMS = [
     'ubuntu-bionic-plain',
     'ubuntu-xenial-plain',
     'centos-8-plain',
-    'opensuse-15-plain',
 ]
 
 # insert a platform from above to make it non-voting
diff --git a/zuul-tests.d/general-roles-jobs.yaml b/zuul-tests.d/general-roles-jobs.yaml
index 86b3b6287..b73b1a4c4 100644
--- a/zuul-tests.d/general-roles-jobs.yaml
+++ b/zuul-tests.d/general-roles-jobs.yaml
@@ -245,16 +245,6 @@
         - name: centos-8-plain
           label: centos-8-plain
 
-- job:
-    name: zuul-jobs-test-base-roles-opensuse-15-plain
-    description: Tests roles in the 'base' job on opensuse-15-plain
-    parent: zuul-jobs-test-base-roles
-    tags: auto-generated
-    nodeset:
-      nodes:
-        - name: opensuse-15-plain
-          label: opensuse-15-plain
-
 - job:
     name: zuul-jobs-test-bindep
     description: Test the bindep role
@@ -390,16 +380,6 @@
         - name: centos-8-plain
           label: centos-8-plain
 
-- job:
-    name: zuul-jobs-test-bindep-opensuse-15-plain
-    description: Test the bindep role on opensuse-15-plain
-    parent: zuul-jobs-test-bindep
-    tags: auto-generated
-    nodeset:
-      nodes:
-        - name: opensuse-15-plain
-          label: opensuse-15-plain
-
 - job:
     name: zuul-jobs-test-clear-firewall
     description: Test the clear-firewall role
@@ -686,25 +666,6 @@
           nodes:
             - secondary
 
-- job:
-    name: zuul-jobs-test-multinode-roles-opensuse-15-plain
-    description: Tests multinode setup roles on opensuse-15-plain
-    parent: zuul-jobs-test-multinode-roles
-    tags: auto-generated
-    nodeset:
-      nodes:
-        - name: primary
-          label: opensuse-15-plain
-        - name: secondary
-          label: opensuse-15-plain
-      groups:
-        - name: switch
-          nodes:
-            - primary
-        - name: peers
-          nodes:
-            - secondary
-
 - job:
     name: zuul-jobs-test-generate-zuul-manifest
     description: Test the generate-zuul-manifest role
@@ -744,7 +705,6 @@
         - zuul-jobs-test-base-roles-ubuntu-bionic-plain
         - zuul-jobs-test-base-roles-ubuntu-xenial-plain
         - zuul-jobs-test-base-roles-centos-8-plain
-        - zuul-jobs-test-base-roles-opensuse-15-plain
         - zuul-jobs-test-bindep-centos-7
         - zuul-jobs-test-bindep-centos-8
         - zuul-jobs-test-bindep-debian-stretch
@@ -757,7 +717,6 @@
         - zuul-jobs-test-bindep-ubuntu-bionic-plain
         - zuul-jobs-test-bindep-ubuntu-xenial-plain
         - zuul-jobs-test-bindep-centos-8-plain
-        - zuul-jobs-test-bindep-opensuse-15-plain
         - zuul-jobs-test-clear-firewall
         - zuul-jobs-test-ensure-bazelisk
         - zuul-jobs-test-netconsole
@@ -774,7 +733,6 @@
         - zuul-jobs-test-multinode-roles-ubuntu-bionic-plain
         - zuul-jobs-test-multinode-roles-ubuntu-xenial-plain
         - zuul-jobs-test-multinode-roles-centos-8-plain
-        - zuul-jobs-test-multinode-roles-opensuse-15-plain
         - zuul-jobs-test-generate-zuul-manifest
         - zuul-jobs-test-upload-git-mirror
     gate:
@@ -793,7 +751,6 @@
         - zuul-jobs-test-base-roles-ubuntu-bionic-plain
         - zuul-jobs-test-base-roles-ubuntu-xenial-plain
         - zuul-jobs-test-base-roles-centos-8-plain
-        - zuul-jobs-test-base-roles-opensuse-15-plain
         - zuul-jobs-test-bindep-centos-7
         - zuul-jobs-test-bindep-centos-8
         - zuul-jobs-test-bindep-debian-stretch
@@ -805,7 +762,6 @@
         - zuul-jobs-test-bindep-ubuntu-bionic-plain
         - zuul-jobs-test-bindep-ubuntu-xenial-plain
         - zuul-jobs-test-bindep-centos-8-plain
-        - zuul-jobs-test-bindep-opensuse-15-plain
         - zuul-jobs-test-clear-firewall
         - zuul-jobs-test-ensure-bazelisk
         - zuul-jobs-test-netconsole
@@ -821,6 +777,5 @@
         - zuul-jobs-test-multinode-roles-ubuntu-bionic-plain
         - zuul-jobs-test-multinode-roles-ubuntu-xenial-plain
         - zuul-jobs-test-multinode-roles-centos-8-plain
-        - zuul-jobs-test-multinode-roles-opensuse-15-plain
         - zuul-jobs-test-generate-zuul-manifest
         - zuul-jobs-test-upload-git-mirror
diff --git a/zuul-tests.d/go-jobs.yaml b/zuul-tests.d/go-jobs.yaml
index 6d73eb59b..27d953de5 100644
--- a/zuul-tests.d/go-jobs.yaml
+++ b/zuul-tests.d/go-jobs.yaml
@@ -137,16 +137,6 @@
         - name: centos-8-plain
           label: centos-8-plain
 
-- job:
-    name: zuul-jobs-test-golang-go-opensuse-15-plain
-    description: Test the golang-go job on opensuse-15-plain
-    parent: zuul-jobs-test-golang-go
-    tags: auto-generated
-    nodeset:
-      nodes:
-        - name: opensuse-15-plain
-          label: opensuse-15-plain
-
 - project:
     check:
       jobs:
@@ -162,7 +152,6 @@
         - zuul-jobs-test-golang-go-ubuntu-bionic-plain
         - zuul-jobs-test-golang-go-ubuntu-xenial-plain
         - zuul-jobs-test-golang-go-centos-8-plain
-        - zuul-jobs-test-golang-go-opensuse-15-plain
     gate:
       jobs:
         - zuul-jobs-test-golang-go-centos-7
@@ -176,4 +165,3 @@
         - zuul-jobs-test-golang-go-ubuntu-bionic-plain
         - zuul-jobs-test-golang-go-ubuntu-xenial-plain
         - zuul-jobs-test-golang-go-centos-8-plain
-        - zuul-jobs-test-golang-go-opensuse-15-plain
diff --git a/zuul-tests.d/packer-jobs.yaml b/zuul-tests.d/packer-jobs.yaml
index 300c49290..2486c6eac 100644
--- a/zuul-tests.d/packer-jobs.yaml
+++ b/zuul-tests.d/packer-jobs.yaml
@@ -138,16 +138,6 @@
         - name: centos-8-plain
           label: centos-8-plain
 
-- job:
-    name: test-packer-opensuse-15-plain
-    description: Test packer job on opensuse-15-plain
-    parent: test-packer
-    tags: auto-generated
-    nodeset:
-      nodes:
-        - name: opensuse-15-plain
-          label: opensuse-15-plain
-
 - project:
     check:
       jobs:
@@ -163,7 +153,6 @@
         - test-packer-ubuntu-bionic-plain
         - test-packer-ubuntu-xenial-plain
         - test-packer-centos-8-plain
-        - test-packer-opensuse-15-plain
     gate:
       jobs:
         - test-packer-centos-7
@@ -177,4 +166,3 @@
         - test-packer-ubuntu-bionic-plain
         - test-packer-ubuntu-xenial-plain
         - test-packer-centos-8-plain
-        - test-packer-opensuse-15-plain
diff --git a/zuul-tests.d/python-jobs.yaml b/zuul-tests.d/python-jobs.yaml
index c00f011f0..05f387559 100644
--- a/zuul-tests.d/python-jobs.yaml
+++ b/zuul-tests.d/python-jobs.yaml
@@ -128,16 +128,6 @@
         - name: centos-8-plain
           label: centos-8-plain
 
-- job:
-    name: zuul-jobs-test-ensure-pip-opensuse-15-plain
-    description: Test the ensure-pip role on opensuse-15-plain
-    parent: zuul-jobs-test-ensure-pip
-    tags: auto-generated
-    nodeset:
-      nodes:
-        - name: opensuse-15-plain
-          label: opensuse-15-plain
-
 - job:
     name: zuul-jobs-test-ensure-sphinx
     description: Test the ensure-sphinx role
@@ -277,16 +267,6 @@
         - name: centos-8-plain
           label: centos-8-plain
 
-- job:
-    name: zuul-jobs-test-ensure-tox-opensuse-15-plain
-    description: Test the ensure-tox role on opensuse-15-plain
-    parent: zuul-jobs-test-ensure-tox
-    tags: auto-generated
-    nodeset:
-      nodes:
-        - name: opensuse-15-plain
-          label: opensuse-15-plain
-
 - job:
     name: zuul-jobs-test-fetch-sphinx-tarball
     description: Test the fetch-sphinx-tarball role
@@ -419,16 +399,6 @@
         - name: centos-8-plain
           label: centos-8-plain
 
-- job:
-    name: zuul-jobs-test-fetch-sphinx-tarball-opensuse-15-plain
-    description: Test the fetch-sphinx-tarball role on opensuse-15-plain
-    parent: zuul-jobs-test-fetch-sphinx-tarball
-    tags: auto-generated
-    nodeset:
-      nodes:
-        - name: opensuse-15-plain
-          label: opensuse-15-plain
-
 - job:
     name: zuul-jobs-test-tox-siblings
     description: Test the tox role's sibling functionality
@@ -503,7 +473,6 @@
         - zuul-jobs-test-ensure-pip-ubuntu-bionic-plain
         - zuul-jobs-test-ensure-pip-ubuntu-xenial-plain
         - zuul-jobs-test-ensure-pip-centos-8-plain
-        - zuul-jobs-test-ensure-pip-opensuse-15-plain
         - zuul-jobs-test-ensure-sphinx
         - zuul-jobs-test-ensure-tox-centos-7
         - zuul-jobs-test-ensure-tox-centos-8
@@ -517,7 +486,6 @@
         - zuul-jobs-test-ensure-tox-ubuntu-bionic-plain
         - zuul-jobs-test-ensure-tox-ubuntu-xenial-plain
         - zuul-jobs-test-ensure-tox-centos-8-plain
-        - zuul-jobs-test-ensure-tox-opensuse-15-plain
         - zuul-jobs-test-fetch-sphinx-tarball-centos-7
         - zuul-jobs-test-fetch-sphinx-tarball-centos-8
         - zuul-jobs-test-fetch-sphinx-tarball-debian-stretch
@@ -530,7 +498,6 @@
         - zuul-jobs-test-fetch-sphinx-tarball-ubuntu-bionic-plain
         - zuul-jobs-test-fetch-sphinx-tarball-ubuntu-xenial-plain
         - zuul-jobs-test-fetch-sphinx-tarball-centos-8-plain
-        - zuul-jobs-test-fetch-sphinx-tarball-opensuse-15-plain
         - zuul-jobs-test-tox-siblings
         - zuul-jobs-test-fetch-tox-output
         - zuul-jobs-test-fetch-tox-output-synchronize
@@ -549,7 +516,6 @@
         - zuul-jobs-test-ensure-pip-ubuntu-bionic-plain
         - zuul-jobs-test-ensure-pip-ubuntu-xenial-plain
         - zuul-jobs-test-ensure-pip-centos-8-plain
-        - zuul-jobs-test-ensure-pip-opensuse-15-plain
         - zuul-jobs-test-ensure-sphinx
         - zuul-jobs-test-ensure-tox-centos-7
         - zuul-jobs-test-ensure-tox-centos-8
@@ -562,7 +528,6 @@
         - zuul-jobs-test-ensure-tox-ubuntu-bionic-plain
         - zuul-jobs-test-ensure-tox-ubuntu-xenial-plain
         - zuul-jobs-test-ensure-tox-centos-8-plain
-        - zuul-jobs-test-ensure-tox-opensuse-15-plain
         - zuul-jobs-test-fetch-sphinx-tarball-centos-7
         - zuul-jobs-test-fetch-sphinx-tarball-centos-8
         - zuul-jobs-test-fetch-sphinx-tarball-debian-stretch
@@ -574,7 +539,6 @@
         - zuul-jobs-test-fetch-sphinx-tarball-ubuntu-bionic-plain
         - zuul-jobs-test-fetch-sphinx-tarball-ubuntu-xenial-plain
         - zuul-jobs-test-fetch-sphinx-tarball-centos-8-plain
-        - zuul-jobs-test-fetch-sphinx-tarball-opensuse-15-plain
         - zuul-jobs-test-tox-siblings
         - zuul-jobs-test-fetch-tox-output
         - zuul-jobs-test-fetch-tox-output-synchronize
diff --git a/zuul-tests.d/python-roles-jobs.yaml b/zuul-tests.d/python-roles-jobs.yaml
index 55d59132b..c6630b33a 100644
--- a/zuul-tests.d/python-roles-jobs.yaml
+++ b/zuul-tests.d/python-roles-jobs.yaml
@@ -127,16 +127,6 @@
         - name: centos-8-plain
           label: centos-8-plain
 
-- job:
-    name: zuul-jobs-test-ensure-python-pyenv-opensuse-15-plain
-    description: Test the ensure-python role with pyenv on opensuse-15-plain
-    parent: zuul-jobs-test-ensure-python-pyenv
-    tags: auto-generated
-    nodeset:
-      nodes:
-        - name: opensuse-15-plain
-          label: opensuse-15-plain
-
 - project:
     check:
       jobs:
@@ -152,7 +142,6 @@
         - zuul-jobs-test-ensure-python-pyenv-ubuntu-bionic-plain
         - zuul-jobs-test-ensure-python-pyenv-ubuntu-xenial-plain
         - zuul-jobs-test-ensure-python-pyenv-centos-8-plain
-        - zuul-jobs-test-ensure-python-pyenv-opensuse-15-plain
     gate:
       jobs:
         - zuul-jobs-test-ensure-python-pyenv-centos-7
@@ -166,4 +155,3 @@
         - zuul-jobs-test-ensure-python-pyenv-ubuntu-bionic-plain
         - zuul-jobs-test-ensure-python-pyenv-ubuntu-xenial-plain
         - zuul-jobs-test-ensure-python-pyenv-centos-8-plain
-        - zuul-jobs-test-ensure-python-pyenv-opensuse-15-plain