diff --git a/.gitreview b/.gitreview
index 01a2ee536c645e093c16d66e2e7d0dedc581b2e3..d2d8c097bb325dcdc91f2493d8b9a540416d0937 100644
--- a/.gitreview
+++ b/.gitreview
@@ -1,4 +1,4 @@
 [gerrit]
-host=review.openstack.org
+host=review.opendev.org
 port=29418
-project=openstack/kayobe.git
+project=x/kayobe.git
diff --git a/playbooks/kayobe-overcloud-base/post.yml b/playbooks/kayobe-overcloud-base/post.yml
index 31dccb283df0348c7b63a5b6708e20db84be6c35..9faa60fa44455ae1e0d2aafb3ed9aec15fcd52b8 100644
--- a/playbooks/kayobe-overcloud-base/post.yml
+++ b/playbooks/kayobe-overcloud-base/post.yml
@@ -4,5 +4,5 @@
     - role: kayobe-diagnostics
       kayobe_diagnostics_phase: "post"
       kayobe_diagnostics_log_dir: "/tmp/logs"
-      kayobe_diagnostics_config_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['git.openstack.org/openstack/kayobe-config-dev'].src_dir }}"
+      kayobe_diagnostics_config_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/x/kayobe-config-dev'].src_dir }}"
       kayobe_diagnostics_executor_log_dir: "{{ zuul.executor.log_root }}/{{ inventory_hostname }}"
diff --git a/playbooks/kayobe-overcloud-base/pre.yml b/playbooks/kayobe-overcloud-base/pre.yml
index 33f8b4cd3650187597adf033a2fd990efae5d3ca..ae07d2a72a63283593709f51d177451e3eb8df27 100644
--- a/playbooks/kayobe-overcloud-base/pre.yml
+++ b/playbooks/kayobe-overcloud-base/pre.yml
@@ -2,8 +2,8 @@
 - hosts: primary
   vars:
     logs_dir: "/tmp/logs"
-    kayobe_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['git.openstack.org/openstack/kayobe'].src_dir }}"
-    kayobe_config_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['git.openstack.org/openstack/kayobe-config-dev'].src_dir }}"
+    kayobe_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/x/kayobe'].src_dir }}"
+    kayobe_config_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/x/kayobe-config-dev'].src_dir }}"
   environment:
     KAYOBE_CONFIG_SOURCE_PATH: "{{ kayobe_config_src_dir }}"
   roles:
@@ -17,7 +17,7 @@
     # the zuul and stack users.
     - name: Ensure upper-contraints.txt exists
       copy:
-        src: "{{ zuul.projects['git.openstack.org/openstack/requirements'].src_dir ~ '/upper-constraints.txt' }}"
+        src: "{{ zuul.projects['opendev.org/openstack/requirements'].src_dir ~ '/upper-constraints.txt' }}"
         dest: "/tmp"
         mode: 0644
         remote_src: true
diff --git a/playbooks/kayobe-overcloud-base/run.yml b/playbooks/kayobe-overcloud-base/run.yml
index 17adde26be1b0bd074f46ecf7edcd6769a175265..6ddc0cee7f66d5e5ef01b135afb647a6699f151f 100644
--- a/playbooks/kayobe-overcloud-base/run.yml
+++ b/playbooks/kayobe-overcloud-base/run.yml
@@ -1,10 +1,10 @@
 ---
 - hosts: primary
   vars:
-    kayobe_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['git.openstack.org/openstack/kayobe'].src_dir }}"
-    kayobe_config_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['git.openstack.org/openstack/kayobe-config-dev'].src_dir }}"
+    kayobe_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/x/kayobe'].src_dir }}"
+    kayobe_config_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/x/kayobe-config-dev'].src_dir }}"
     logs_dir: "/tmp/logs"
-    tenks_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['git.openstack.org/openstack/tenks'].src_dir }}"
+    tenks_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/openstack/tenks'].src_dir }}"
   environment:
     KAYOBE_CONFIG_SOURCE_PATH: "{{ kayobe_config_src_dir }}"
   tasks:
diff --git a/playbooks/kayobe-overcloud-upgrade-base/post.yml b/playbooks/kayobe-overcloud-upgrade-base/post.yml
index be286660b0d7ec193f43c1571ed2356ce4c45de6..8ec489586960e68cb289c7e779452e62d4aaa040 100644
--- a/playbooks/kayobe-overcloud-upgrade-base/post.yml
+++ b/playbooks/kayobe-overcloud-upgrade-base/post.yml
@@ -4,6 +4,6 @@
     - role: kayobe-diagnostics
       kayobe_diagnostics_phase: "post"
       kayobe_diagnostics_log_dir: "/tmp/logs"
-      kayobe_diagnostics_config_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['git.openstack.org/openstack/kayobe-config-dev'].src_dir }}"
+      kayobe_diagnostics_config_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/x/kayobe-config-dev'].src_dir }}"
       kayobe_diagnostics_previous_config_dir: "{{ ansible_env.PWD ~ '/previous/kayobe-config' }}"
       kayobe_diagnostics_executor_log_dir: "{{ zuul.executor.log_root }}/{{ inventory_hostname }}"
diff --git a/playbooks/kayobe-overcloud-upgrade-base/pre.yml b/playbooks/kayobe-overcloud-upgrade-base/pre.yml
index 5d732e313cfe050b457d51f0ceea55d796472d53..1923f0663b1f6d834f34fbd0de4952e84fd5293f 100644
--- a/playbooks/kayobe-overcloud-upgrade-base/pre.yml
+++ b/playbooks/kayobe-overcloud-upgrade-base/pre.yml
@@ -2,8 +2,8 @@
 - hosts: primary
   vars:
     logs_dir: "/tmp/logs"
-    kayobe_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['git.openstack.org/openstack/kayobe'].src_dir }}"
-    kayobe_config_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['git.openstack.org/openstack/kayobe-config-dev'].src_dir }}"
+    kayobe_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/x/kayobe'].src_dir }}"
+    kayobe_config_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/x/kayobe-config-dev'].src_dir }}"
     previous_kayobe_src_dir: "{{ ansible_env.PWD ~ '/previous/kayobe' }}"
     previous_kayobe_config_src_dir: "{{ ansible_env.PWD ~ '/previous/kayobe-config' }}"
   roles:
@@ -17,7 +17,7 @@
     # the zuul and stack users.
     - name: Ensure upper-contraints.txt exists
       copy:
-        src: "{{ zuul.projects['git.openstack.org/openstack/requirements'].src_dir ~ '/upper-constraints.txt' }}"
+        src: "{{ zuul.projects['opendev.org/openstack/requirements'].src_dir ~ '/upper-constraints.txt' }}"
         dest: "/tmp"
         mode: 0644
         remote_src: true
@@ -29,7 +29,7 @@
 
     - name: Ensure previous kayobe repository is cloned
       git:
-        repo: https://git.openstack.org/openstack/kayobe
+        repo: https://opendev.org/x/kayobe
         dest: "{{ previous_kayobe_src_dir }}"
         version: "stable/{{ previous_release | lower }}"
 
@@ -40,7 +40,7 @@
 
     - name: Ensure kayobe-config repository is cloned
       git:
-        repo: https://git.openstack.org/openstack/kayobe-config-dev
+        repo: https://opendev.org/x/kayobe-config-dev
         dest: "{{ previous_kayobe_config_src_dir }}"
         version: "stable/{{ previous_release | lower }}"
 
diff --git a/playbooks/kayobe-overcloud-upgrade-base/run.yml b/playbooks/kayobe-overcloud-upgrade-base/run.yml
index b2cc7755d6e79777116493ab7af17cba0c1d8970..4c122db30e319b76412584fac8b301a0cab869c0 100644
--- a/playbooks/kayobe-overcloud-upgrade-base/run.yml
+++ b/playbooks/kayobe-overcloud-upgrade-base/run.yml
@@ -1,12 +1,12 @@
 ---
 - hosts: primary
   vars:
-    kayobe_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['git.openstack.org/openstack/kayobe'].src_dir }}"
-    kayobe_config_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['git.openstack.org/openstack/kayobe-config-dev'].src_dir }}"
+    kayobe_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/x/kayobe'].src_dir }}"
+    kayobe_config_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/x/kayobe-config-dev'].src_dir }}"
     previous_kayobe_src_dir: "{{ ansible_env.PWD ~ '/previous/kayobe' }}"
     previous_kayobe_config_src_dir: "{{ ansible_env.PWD ~ '/previous/kayobe-config' }}"
     logs_dir: "/tmp/logs"
-    tenks_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['git.openstack.org/openstack/tenks'].src_dir }}"
+    tenks_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/openstack/tenks'].src_dir }}"
   tasks:
 
     # Install the previous release of Kayobe, and use it to deploy a control
diff --git a/playbooks/kayobe-seed-base/post.yml b/playbooks/kayobe-seed-base/post.yml
index 31dccb283df0348c7b63a5b6708e20db84be6c35..9faa60fa44455ae1e0d2aafb3ed9aec15fcd52b8 100644
--- a/playbooks/kayobe-seed-base/post.yml
+++ b/playbooks/kayobe-seed-base/post.yml
@@ -4,5 +4,5 @@
     - role: kayobe-diagnostics
       kayobe_diagnostics_phase: "post"
       kayobe_diagnostics_log_dir: "/tmp/logs"
-      kayobe_diagnostics_config_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['git.openstack.org/openstack/kayobe-config-dev'].src_dir }}"
+      kayobe_diagnostics_config_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/x/kayobe-config-dev'].src_dir }}"
       kayobe_diagnostics_executor_log_dir: "{{ zuul.executor.log_root }}/{{ inventory_hostname }}"
diff --git a/playbooks/kayobe-seed-base/pre.yml b/playbooks/kayobe-seed-base/pre.yml
index 3fd9bbc1fb9718084e1b87e6bb8a7b785e22aeb7..1e58fb8d5109581c0122f2ff37ea608bcb1814be 100644
--- a/playbooks/kayobe-seed-base/pre.yml
+++ b/playbooks/kayobe-seed-base/pre.yml
@@ -2,8 +2,8 @@
 - hosts: primary
   vars:
     logs_dir: "/tmp/logs"
-    kayobe_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['git.openstack.org/openstack/kayobe'].src_dir }}"
-    kayobe_config_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['git.openstack.org/openstack/kayobe-config-dev'].src_dir }}"
+    kayobe_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/x/kayobe'].src_dir }}"
+    kayobe_config_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/x/kayobe-config-dev'].src_dir }}"
   environment:
     KAYOBE_CONFIG_SOURCE_PATH: "{{ kayobe_config_src_dir }}"
   roles:
@@ -17,7 +17,7 @@
     # the zuul and stack users.
     - name: Ensure upper-contraints.txt exists
       copy:
-        src: "{{ zuul.projects['git.openstack.org/openstack/requirements'].src_dir ~ '/upper-constraints.txt' }}"
+        src: "{{ zuul.projects['opendev.org/openstack/requirements'].src_dir ~ '/upper-constraints.txt' }}"
         dest: "/tmp"
         mode: 0644
         remote_src: true
diff --git a/playbooks/kayobe-seed-base/run.yml b/playbooks/kayobe-seed-base/run.yml
index 5f10773134c8689fc40dcce6847d7d9da2d71740..d4b1fb779d42598f49fe31a14c12f7121f1152f1 100644
--- a/playbooks/kayobe-seed-base/run.yml
+++ b/playbooks/kayobe-seed-base/run.yml
@@ -1,8 +1,8 @@
 ---
 - hosts: primary
   vars:
-    kayobe_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['git.openstack.org/openstack/kayobe'].src_dir }}"
-    kayobe_config_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['git.openstack.org/openstack/kayobe-config-dev'].src_dir }}"
+    kayobe_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/x/kayobe'].src_dir }}"
+    kayobe_config_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/x/kayobe-config-dev'].src_dir }}"
     logs_dir: "/tmp/logs"
   environment:
     KAYOBE_CONFIG_SOURCE_PATH: "{{ kayobe_config_src_dir }}"
diff --git a/playbooks/kayobe-seed-upgrade-base/post.yml b/playbooks/kayobe-seed-upgrade-base/post.yml
index be286660b0d7ec193f43c1571ed2356ce4c45de6..8ec489586960e68cb289c7e779452e62d4aaa040 100644
--- a/playbooks/kayobe-seed-upgrade-base/post.yml
+++ b/playbooks/kayobe-seed-upgrade-base/post.yml
@@ -4,6 +4,6 @@
     - role: kayobe-diagnostics
       kayobe_diagnostics_phase: "post"
       kayobe_diagnostics_log_dir: "/tmp/logs"
-      kayobe_diagnostics_config_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['git.openstack.org/openstack/kayobe-config-dev'].src_dir }}"
+      kayobe_diagnostics_config_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/x/kayobe-config-dev'].src_dir }}"
       kayobe_diagnostics_previous_config_dir: "{{ ansible_env.PWD ~ '/previous/kayobe-config' }}"
       kayobe_diagnostics_executor_log_dir: "{{ zuul.executor.log_root }}/{{ inventory_hostname }}"
diff --git a/playbooks/kayobe-seed-upgrade-base/pre.yml b/playbooks/kayobe-seed-upgrade-base/pre.yml
index 9d225444fd43438c67a4e38c6f49d04307fb745b..bc9a81b2336d38f4f287154da36d8081ddb151bb 100644
--- a/playbooks/kayobe-seed-upgrade-base/pre.yml
+++ b/playbooks/kayobe-seed-upgrade-base/pre.yml
@@ -15,7 +15,7 @@
     # the zuul and stack users.
     - name: Ensure upper-contraints.txt exists
       copy:
-        src: "{{ zuul.projects['git.openstack.org/openstack/requirements'].src_dir ~ '/upper-constraints.txt' }}"
+        src: "{{ zuul.projects['opendev.org/openstack/requirements'].src_dir ~ '/upper-constraints.txt' }}"
         dest: "/tmp"
         mode: 0644
         remote_src: true
@@ -27,7 +27,7 @@
 
     - name: Ensure previous kayobe repository is cloned
       git:
-        repo: https://git.openstack.org/openstack/kayobe
+        repo: https://opendev.org/x/kayobe
         dest: "{{ previous_kayobe_src_dir }}"
         version: "stable/{{ previous_release | lower }}"
 
@@ -38,7 +38,7 @@
 
     - name: Ensure kayobe-config repository is cloned
       git:
-        repo: https://git.openstack.org/openstack/kayobe-config-dev
+        repo: https://opendev.org/x/kayobe-config-dev
         dest: "{{ previous_kayobe_config_src_dir }}"
         version: "stable/{{ previous_release | lower }}"
 
diff --git a/playbooks/kayobe-seed-upgrade-base/run.yml b/playbooks/kayobe-seed-upgrade-base/run.yml
index aae52b392bc318c995ac07e01e4af530be0c13af..41b26e20b75e40e1f623a3e941fa0188d3d76245 100644
--- a/playbooks/kayobe-seed-upgrade-base/run.yml
+++ b/playbooks/kayobe-seed-upgrade-base/run.yml
@@ -1,8 +1,8 @@
 ---
 - hosts: primary
   vars:
-    kayobe_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['git.openstack.org/openstack/kayobe'].src_dir }}"
-    kayobe_config_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['git.openstack.org/openstack/kayobe-config-dev'].src_dir }}"
+    kayobe_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/x/kayobe'].src_dir }}"
+    kayobe_config_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/x/kayobe-config-dev'].src_dir }}"
     previous_kayobe_src_dir: "{{ ansible_env.PWD ~ '/previous/kayobe' }}"
     previous_kayobe_config_src_dir: "{{ ansible_env.PWD ~ '/previous/kayobe-config' }}"
     logs_dir: "/tmp/logs"
diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml
index 68a48af7ede0f5822d2a2266300fb8a71ef802a7..39c5cd8eb69f2ea7d8c42c31d0afab591505fbeb 100644
--- a/zuul.d/jobs.yaml
+++ b/zuul.d/jobs.yaml
@@ -59,8 +59,8 @@
     timeout: 7200
     required-projects:
       # Include kayobe to ensure other projects can use this job.
-      - name: openstack/kayobe
-      - name: openstack/kayobe-config-dev
+      - name: x/kayobe
+      - name: x/kayobe-config-dev
       - name: openstack/kolla
       - name: openstack/kolla-ansible
       - name: openstack/requirements
@@ -92,8 +92,8 @@
     timeout: 9000
     required-projects:
       # Include kayobe to ensure other projects can use this job.
-      - name: openstack/kayobe
-      - name: openstack/kayobe-config-dev
+      - name: x/kayobe
+      - name: x/kayobe-config-dev
       - name: openstack/kolla
       - name: openstack/kolla-ansible
       - name: openstack/requirements
@@ -127,8 +127,8 @@
     timeout: 5400
     required-projects:
       # Include kayobe to ensure other projects can use this job.
-      - name: openstack/kayobe
-      - name: openstack/kayobe-config-dev
+      - name: x/kayobe
+      - name: x/kayobe-config-dev
       - name: openstack/kolla
       - name: openstack/kolla-ansible
       - name: openstack/requirements
@@ -159,8 +159,8 @@
     timeout: 5400
     required-projects:
       # Include kayobe to ensure other projects can use this job.
-      - name: openstack/kayobe
-      - name: openstack/kayobe-config-dev
+      - name: x/kayobe
+      - name: x/kayobe-config-dev
       - name: openstack/kolla
       - name: openstack/kolla-ansible
       - name: openstack/requirements