diff --git a/.gitreview b/.gitreview
index 490ba065b..9df0f11ec 100644
--- a/.gitreview
+++ b/.gitreview
@@ -1,4 +1,4 @@
 [gerrit]
-host=review.openstack.org
+host=review.opendev.org
 port=29418
 project=openstack/ironic-python-agent.git
diff --git a/playbooks/ironic-python-agent-buildimage/post.yaml b/playbooks/ironic-python-agent-buildimage/post.yaml
index f5a518a15..f84d14ba1 100644
--- a/playbooks/ironic-python-agent-buildimage/post.yaml
+++ b/playbooks/ironic-python-agent-buildimage/post.yaml
@@ -7,9 +7,9 @@
         state: directory
       delegate_to: localhost
 
-    - name: Copy files from {{ ansible_user_dir }}/src/git.openstack.org/openstack/ironic-python-agent on node
+    - name: Copy files from {{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent on node
       synchronize:
-        src: '{{ ansible_user_dir }}/src/git.openstack.org/openstack/ironic-python-agent/UPLOAD_RAW/'
+        src: '{{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent/UPLOAD_RAW/'
         dest: '{{ zuul.executor.work_root }}/artifacts/{{ image_name }}/files/'
         mode: pull
         copy_links: true
@@ -18,9 +18,9 @@
           - --include=/*
           - --prune-empty-dirs
 
-    - name: Copy files from {{ ansible_user_dir }}/src/git.openstack.org/openstack/ironic-python-agent on node
+    - name: Copy files from {{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent on node
       synchronize:
-        src: '{{ ansible_user_dir }}/src/git.openstack.org/openstack/ironic-python-agent/UPLOAD_TAR/'
+        src: '{{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent/UPLOAD_TAR/'
         dest: '{{ zuul.executor.work_root }}/artifacts/{{ image_name }}/'
         mode: pull
         copy_links: true
@@ -29,9 +29,9 @@
           - --include=/*
           - --prune-empty-dirs
 
-    - name: Copy files from {{ ansible_user_dir }}/src/git.openstack.org/openstack/ironic-python-agent on node
+    - name: Copy files from {{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent on node
       synchronize:
-        src: '{{ ansible_user_dir }}/src/git.openstack.org/openstack/ironic-python-agent/'
+        src: '{{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent/'
         dest: '{{ zuul.executor.log_root }}'
         mode: pull
         copy_links: true
diff --git a/playbooks/ironic-python-agent-buildimage/run.yaml b/playbooks/ironic-python-agent-buildimage/run.yaml
index ac7ef0f9e..43a36c544 100644
--- a/playbooks/ironic-python-agent-buildimage/run.yaml
+++ b/playbooks/ironic-python-agent-buildimage/run.yaml
@@ -53,4 +53,4 @@
           esac
           ERRORS=0
         executable: /bin/bash
-        chdir: '{{ ansible_user_dir }}/src/git.openstack.org/openstack/ironic-python-agent'
+        chdir: '{{ ansible_user_dir }}/src/opendev.org/openstack/ironic-python-agent'
diff --git a/playbooks/legacy/ipa-tempest-dsvm-partition-bios-ipmi-direct-coreos-src/run.yaml b/playbooks/legacy/ipa-tempest-dsvm-partition-bios-ipmi-direct-coreos-src/run.yaml
index 995794621..ce86c1006 100644
--- a/playbooks/legacy/ipa-tempest-dsvm-partition-bios-ipmi-direct-coreos-src/run.yaml
+++ b/playbooks/legacy/ipa-tempest-dsvm-partition-bios-ipmi-direct-coreos-src/run.yaml
@@ -14,12 +14,12 @@
           set -x
           cat > clonemap.yaml << EOF
           clonemap:
-            - name: openstack-infra/devstack-gate
+            - name: openstack/devstack-gate
               dest: devstack-gate
           EOF
           /usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \
-              https://git.openstack.org \
-              openstack-infra/devstack-gate
+              https://opendev.org \
+              openstack/devstack-gate
         executable: /bin/bash
         chdir: '{{ ansible_user_dir }}/workspace'
       environment: '{{ zuul | zuul_legacy_vars }}'
@@ -66,7 +66,7 @@
           export PROJECTS="openstack/ironic-python-agent $PROJECTS"
           export PROJECTS="openstack/ironic-tempest-plugin $PROJECTS"
           export PROJECTS="openstack/python-ironicclient $PROJECTS"
-          export PROJECTS="openstack/pyghmi $PROJECTS"
+          export PROJECTS="x/pyghmi $PROJECTS"
           export PROJECTS="openstack/virtualbmc $PROJECTS"
           export PYTHONUNBUFFERED=true
           export DEVSTACK_GATE_TEMPEST=1
@@ -98,7 +98,7 @@
           # Pull in the EARLY variables injected by the optional builders
           source ironic-vars-early
 
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ironic https://git.openstack.org/openstack/ironic"
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ironic https://opendev.org/openstack/ironic"
 
           # Ensure the ironic-EXTRA-vars file exists
           touch ironic-extra-vars
diff --git a/playbooks/legacy/ipa-tempest-dsvm-partition-bios-ipmi-iscsi-coreos-src/run.yaml b/playbooks/legacy/ipa-tempest-dsvm-partition-bios-ipmi-iscsi-coreos-src/run.yaml
index f8fcc9afa..01f346de5 100644
--- a/playbooks/legacy/ipa-tempest-dsvm-partition-bios-ipmi-iscsi-coreos-src/run.yaml
+++ b/playbooks/legacy/ipa-tempest-dsvm-partition-bios-ipmi-iscsi-coreos-src/run.yaml
@@ -14,12 +14,12 @@
           set -x
           cat > clonemap.yaml << EOF
           clonemap:
-            - name: openstack-infra/devstack-gate
+            - name: openstack/devstack-gate
               dest: devstack-gate
           EOF
           /usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \
-              https://git.openstack.org \
-              openstack-infra/devstack-gate
+              https://opendev.org \
+              openstack/devstack-gate
         executable: /bin/bash
         chdir: '{{ ansible_user_dir }}/workspace'
       environment: '{{ zuul | zuul_legacy_vars }}'
@@ -67,7 +67,7 @@
           export PROJECTS="openstack/ironic-python-agent $PROJECTS"
           export PROJECTS="openstack/ironic-tempest-plugin $PROJECTS"
           export PROJECTS="openstack/python-ironicclient $PROJECTS"
-          export PROJECTS="openstack/pyghmi $PROJECTS"
+          export PROJECTS="x/pyghmi $PROJECTS"
           export PROJECTS="openstack/virtualbmc $PROJECTS"
           export PYTHONUNBUFFERED=true
           export DEVSTACK_GATE_TEMPEST=1
@@ -95,7 +95,7 @@
           # Pull in the EARLY variables injected by the optional builders
           source ironic-vars-early
 
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ironic https://git.openstack.org/openstack/ironic"
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ironic https://opendev.org/openstack/ironic"
 
           # Ensure the ironic-EXTRA-vars file exists
           touch ironic-extra-vars
diff --git a/playbooks/legacy/ipa-tempest-dsvm-wholedisk-bios-ipmi-direct-coreos-src/run.yaml b/playbooks/legacy/ipa-tempest-dsvm-wholedisk-bios-ipmi-direct-coreos-src/run.yaml
index 23ed5a853..ad5350ddd 100644
--- a/playbooks/legacy/ipa-tempest-dsvm-wholedisk-bios-ipmi-direct-coreos-src/run.yaml
+++ b/playbooks/legacy/ipa-tempest-dsvm-wholedisk-bios-ipmi-direct-coreos-src/run.yaml
@@ -14,12 +14,12 @@
           set -x
           cat > clonemap.yaml << EOF
           clonemap:
-            - name: openstack-infra/devstack-gate
+            - name: openstack/devstack-gate
               dest: devstack-gate
           EOF
           /usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \
-              https://git.openstack.org \
-              openstack-infra/devstack-gate
+              https://opendev.org \
+              openstack/devstack-gate
         executable: /bin/bash
         chdir: '{{ ansible_user_dir }}/workspace'
       environment: '{{ zuul | zuul_legacy_vars }}'
@@ -67,7 +67,7 @@
           export PROJECTS="openstack/ironic-python-agent $PROJECTS"
           export PROJECTS="openstack/ironic-tempest-plugin $PROJECTS"
           export PROJECTS="openstack/python-ironicclient $PROJECTS"
-          export PROJECTS="openstack/pyghmi $PROJECTS"
+          export PROJECTS="x/pyghmi $PROJECTS"
           export PROJECTS="openstack/virtualbmc $PROJECTS"
           export PYTHONUNBUFFERED=true
           export DEVSTACK_GATE_TEMPEST=1
@@ -99,7 +99,7 @@
           # Pull in the EARLY variables injected by the optional builders
           source ironic-vars-early
 
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ironic https://git.openstack.org/openstack/ironic"
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ironic https://opendev.org/openstack/ironic"
 
           # Ensure the ironic-EXTRA-vars file exists
           touch ironic-extra-vars
diff --git a/playbooks/legacy/ipa-tempest-dsvm-wholedisk-bios-ipmi-iscsi-coreos-src/run.yaml b/playbooks/legacy/ipa-tempest-dsvm-wholedisk-bios-ipmi-iscsi-coreos-src/run.yaml
index fb3c67810..f7eff540d 100644
--- a/playbooks/legacy/ipa-tempest-dsvm-wholedisk-bios-ipmi-iscsi-coreos-src/run.yaml
+++ b/playbooks/legacy/ipa-tempest-dsvm-wholedisk-bios-ipmi-iscsi-coreos-src/run.yaml
@@ -14,12 +14,12 @@
           set -x
           cat > clonemap.yaml << EOF
           clonemap:
-            - name: openstack-infra/devstack-gate
+            - name: openstack/devstack-gate
               dest: devstack-gate
           EOF
           /usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \
-              https://git.openstack.org \
-              openstack-infra/devstack-gate
+              https://opendev.org \
+              openstack/devstack-gate
         executable: /bin/bash
         chdir: '{{ ansible_user_dir }}/workspace'
       environment: '{{ zuul | zuul_legacy_vars }}'
@@ -67,7 +67,7 @@
           export PROJECTS="openstack/ironic-python-agent $PROJECTS"
           export PROJECTS="openstack/ironic-tempest-plugin $PROJECTS"
           export PROJECTS="openstack/python-ironicclient $PROJECTS"
-          export PROJECTS="openstack/pyghmi $PROJECTS"
+          export PROJECTS="x/pyghmi $PROJECTS"
           export PROJECTS="openstack/virtualbmc $PROJECTS"
           export PYTHONUNBUFFERED=true
           export DEVSTACK_GATE_TEMPEST=1
@@ -95,7 +95,7 @@
           # Pull in the EARLY variables injected by the optional builders
           source ironic-vars-early
 
-          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ironic https://git.openstack.org/openstack/ironic"
+          export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ironic https://opendev.org/openstack/ironic"
 
           # Ensure the ironic-EXTRA-vars file exists
           touch ironic-extra-vars
diff --git a/zuul.d/ironic-python-agent-jobs.yaml b/zuul.d/ironic-python-agent-jobs.yaml
index 845cb8928..138563fe5 100644
--- a/zuul.d/ironic-python-agent-jobs.yaml
+++ b/zuul.d/ironic-python-agent-jobs.yaml
@@ -84,7 +84,7 @@
         SWIFT_ENABLE_TEMPURLS: True
         SWIFT_TEMPURL_KEY: secretkey
       devstack_plugins:
-        ironic-inspector: https://git.openstack.org/openstack/ironic-inspector
+        ironic-inspector: https://opendev.org/openstack/ironic-inspector
 
 - job:
     name: ironic-python-agent-buildimage-base
diff --git a/zuul.d/legacy-ironic-jobs.yaml b/zuul.d/legacy-ironic-jobs.yaml
index 49e9111be..1b1107b65 100644
--- a/zuul.d/legacy-ironic-jobs.yaml
+++ b/zuul.d/legacy-ironic-jobs.yaml
@@ -13,12 +13,12 @@
       - ^tools/.*$
       - ^tox.ini$
     required-projects:
-      - openstack-infra/devstack-gate
+      - openstack/devstack-gate
       - openstack/ironic
       - openstack/ironic-lib
       - openstack/ironic-python-agent
       - openstack/ironic-tempest-plugin
-      - openstack/pyghmi
+      - x/pyghmi
       - openstack/python-ironicclient
       - openstack/tempest
       - openstack/virtualbmc