diff --git a/hiera/common.yaml b/hiera/common.yaml
index 22244da008..6b619c6e12 100644
--- a/hiera/common.yaml
+++ b/hiera/common.yaml
@@ -257,7 +257,7 @@ cacti_hosts:
 - logstash.openstack.org
 - nb01.opendev.org
 - nb02.opendev.org
-- nb03.openstack.org
+- nb03.opendev.org
 - nl01.openstack.org
 - nl02.openstack.org
 - nl03.openstack.org
diff --git a/inventory/base/hosts.yaml b/inventory/base/hosts.yaml
index 73c58795d6..c900ae264c 100644
--- a/inventory/base/hosts.yaml
+++ b/inventory/base/hosts.yaml
@@ -564,13 +564,6 @@ all:
         region_name: DFW
       public_v4: 104.130.124.242
       public_v6: 2001:4800:7818:104:be76:4eff:fe02:5608
-    nb03.openstack.org:
-      ansible_host: 139.178.85.141
-      location:
-        cloud: openstackci-linaro-us
-        region_name: RegionOne
-      public_v4: 139.178.85.141
-      public_v6: ''
     nb03.opendev.org:
       ansible_host: 139.178.85.151
       location:
diff --git a/inventory/service/group_vars/nodepool-builder.yaml b/inventory/service/group_vars/nodepool-builder.yaml
index 16e82208ba..6b987b9ae1 100644
--- a/inventory/service/group_vars/nodepool-builder.yaml
+++ b/inventory/service/group_vars/nodepool-builder.yaml
@@ -1,4 +1,4 @@
-openstacksdk_config_owner: "{{ nodepool_user }}"
+openstacksdk_config_dir: /etc/openstack
+openstacksdk_config_owner: root
 openstacksdk_config_group: "{{ nodepool_group }}"
-openstacksdk_config_dir: "~{{ openstacksdk_config_owner }}/.config/openstack"
 openstacksdk_config_template: clouds/nodepool_clouds.yaml.j2
diff --git a/inventory/service/group_vars/nodepool-builder_opendev.yaml b/inventory/service/group_vars/nodepool-builder_opendev.yaml
deleted file mode 100644
index 6b987b9ae1..0000000000
--- a/inventory/service/group_vars/nodepool-builder_opendev.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-openstacksdk_config_dir: /etc/openstack
-openstacksdk_config_owner: root
-openstacksdk_config_group: "{{ nodepool_group }}"
-openstacksdk_config_template: clouds/nodepool_clouds.yaml.j2
diff --git a/inventory/service/groups.yaml b/inventory/service/groups.yaml
index a7cde9f3b5..cc3a587b2b 100644
--- a/inventory/service/groups.yaml
+++ b/inventory/service/groups.yaml
@@ -111,11 +111,9 @@ groups:
   mirror-update:
     - mirror-update[0-9]*.opendev.org
   nodepool:
-    - nb[0-9]*.open*.org
+    - nb[0-9]*.opendev.org
     - nl[0-9]*.open*.org
   nodepool-builder:
-    - nb[0-9]*.openstack.org
-  nodepool-builder_opendev:
     - nb[0-9]*.opendev.org
   nodepool-launcher:
     - nl[0-9]*.open*.org
@@ -154,7 +152,6 @@ groups:
     - logstash-worker[0-9]*.open*.org
     - logstash[0-9]*.open*.org
     - mirror-update[0-9]*.openstack.org
-    - nb[0-9]*.openstack.org
     - openstackid-dev*.openstack.org
     - openstackid.org
     - openstackid[0-9]*.openstack.org
@@ -192,7 +189,6 @@ groups:
     - logstash-worker[0-9]*.open*.org
     - logstash[0-9]*.open*.org
     - mirror-update[0-9]*.openstack.org
-    - ^nb(?!03)[0-9]*\.openstack\.org
     - openstackid[0-9]*.openstack.org
     - openstackid-dev[0-9]*.openstack.org
     - paste[0-9]*.open*.org
@@ -243,7 +239,7 @@ groups:
     - grafana[0-9]*.open*.org
     - graphite*.open*.org
     - health[0-9]*.openstack.org
-    - nb[0-9]*.open*.org
+    - nb[0-9]*.opendev.org
     - nl[0-9]*.open*.org
     - openstackid-dev*.openstack.org
     - openstackid.org
diff --git a/playbooks/nodepool_start.yaml b/playbooks/nodepool_start.yaml
index 87448deb20..cbc6bf53fe 100644
--- a/playbooks/nodepool_start.yaml
+++ b/playbooks/nodepool_start.yaml
@@ -1,6 +1,6 @@
 # Run this with "-f 20"
 
-- hosts: 'nodepool-builder_opendev:!disabled'
+- hosts: 'nodepool-builder:!disabled'
   tasks:
     - include_role:
         name: nodepool-builder
@@ -12,10 +12,3 @@
     - include_role:
         name: nodepool-launcher
         tasks_from: start
-
-- hosts: 'nb03.openstack.org:!disabled'
-  tasks:
-    - name: Start Nodepool Builder
-      service:
-        name: nodepool-builder
-        state: started
diff --git a/playbooks/nodepool_stop.yaml b/playbooks/nodepool_stop.yaml
index da92ec3321..ae9671cde5 100644
--- a/playbooks/nodepool_stop.yaml
+++ b/playbooks/nodepool_stop.yaml
@@ -1,7 +1,7 @@
 # Run this with "-f 20"
 
 
-- hosts: 'nodepool-builder_opendev:!disabled'
+- hosts: 'nodepool-builder:!disabled'
   any_errors_fatal: true
   tasks:
     - include_role:
@@ -14,17 +14,3 @@
     - include_role:
         name: nodepool-launcher
         tasks_from: stop
-
-- hosts: 'nb03.openstack.orgr:!disabled'
-  any_errors_fatal: true
-  tasks:
-    - name: Stop Nodepool Builder
-      service:
-        name: nodepool-builder
-        state: stopped
-
-    - name: Wait for (3h10m) to stop Nodepool Builder
-      wait_for:
-        path: /var/run/nodepool/nodepool-builder.pid
-        state: absent
-        timeout: 11400
diff --git a/playbooks/service-nodepool.yaml b/playbooks/service-nodepool.yaml
index 87b6125044..7c873387c0 100644
--- a/playbooks/service-nodepool.yaml
+++ b/playbooks/service-nodepool.yaml
@@ -1,4 +1,4 @@
-- hosts: nodepool-builder_opendev:!disabled
+- hosts: nodepool-builder:!disabled
   name: "Configure nodepool builders"
   strategy: free
   roles:
@@ -8,22 +8,6 @@
     - configure-openstacksdk
     - nodepool-builder
 
-- hosts: 'localhost:!disabled'
-  name: Install puppet role/modules
-  strategy: linear
-  roles:
-    - puppet-setup-ansible
-
-- hosts: 'nb03.openstack.org:!disabled'
-  name: "run puppet on all older servers"
-  strategy: free
-  roles:
-    - iptables
-    - nodepool-base-legacy
-    - configure-openstacksdk
-    - configure-kubectl
-    - puppet-run
-
 - hosts: nodepool-launcher:!disabled
   name: "Configure nodepool launchers"
   strategy: free
diff --git a/zuul.d/system-config-roles.yaml b/zuul.d/system-config-roles.yaml
index a82aad91da..1a635de78f 100644
--- a/zuul.d/system-config-roles.yaml
+++ b/zuul.d/system-config-roles.yaml
@@ -30,23 +30,6 @@
           nodes:
             - base
 
-# NOTE(ianw): Run puppet3 tests until nb03.openstack.org is gone
-# and we have no more puppet
-- job:
-    name: system-config-zuul-role-integration-xenial-arm64
-    parent: system-config-zuul-role-integration
-    nodeset:
-      nodes:
-        - name: base
-          label: ubuntu-xenial-arm64
-      groups:
-        - name: puppet3
-          nodes:
-            - base
-        - name: openafs
-          nodes:
-            - base
-
 - job:
     name: system-config-zuul-role-integration-bionic
     parent: system-config-zuul-role-integration
@@ -148,7 +131,6 @@
     check:
       jobs:
         - system-config-zuul-role-integration-xenial
-        - system-config-zuul-role-integration-xenial-arm64
         - system-config-zuul-role-integration-bionic
         - system-config-zuul-role-integration-bionic-arm64
         - system-config-zuul-role-integration-focal
@@ -160,7 +142,6 @@
     gate:
       jobs:
         - system-config-zuul-role-integration-xenial
-        - system-config-zuul-role-integration-xenial-arm64
         - system-config-zuul-role-integration-bionic
         - system-config-zuul-role-integration-bionic-arm64
         - system-config-zuul-role-integration-focal