[stable/2023.2] Stop using CDN for CI (#2185) (#2195)

Switch image builds to use Harbor
Switch Zuul to avoid CDN
Small more fixes
Configure CI bits to not use CDN
fixes #2188
diff --git a/build/pin-images.py b/build/pin-images.py
index 1bf4112..f7485da 100755
--- a/build/pin-images.py
+++ b/build/pin-images.py
@@ -65,10 +65,13 @@
 def get_pinned_image(image_src):
     image_ref = reference.Reference.parse(image_src)
 
-    if image_ref.domain() == "registry.atmosphere.dev":
+    if (
+        image_ref.domain() == "registry.atmosphere.dev"
+        or image_ref.domain() == "harbor.atmosphere.dev"
+    ):
         # Get token for docker.io
         r = requests.get(
-            "https://registry.atmosphere.dev/service/token",
+            "https://harbor.atmosphere.dev/service/token",
             timeout=5,
             params={
                 "service": "harbor-registry",
diff --git a/images/barbican/Dockerfile b/images/barbican/Dockerfile
index ef11f39..819a37e 100644
--- a/images/barbican/Dockerfile
+++ b/images/barbican/Dockerfile
@@ -3,7 +3,7 @@
 
 ARG RELEASE
 
-FROM registry.atmosphere.dev/library/openstack-venv-builder:${RELEASE} AS build
+FROM harbor.atmosphere.dev/library/openstack-venv-builder:${RELEASE} AS build
 ARG BARBICAN_GIT_REF=00274b2f07d050c5b4571bfc0f4e5698acf678f1
 ADD --keep-git-dir=true https://opendev.org/openstack/barbican.git#${BARBICAN_GIT_REF} /src/barbican
 RUN git -C /src/barbican fetch --unshallow
@@ -14,5 +14,5 @@
         pykmip
 EOF
 
-FROM registry.atmosphere.dev/library/openstack-python-runtime:${RELEASE}
+FROM harbor.atmosphere.dev/library/openstack-python-runtime:${RELEASE}
 COPY --from=build --link /var/lib/openstack /var/lib/openstack
diff --git a/images/cinder/Dockerfile b/images/cinder/Dockerfile
index 1410b67..224392d 100644
--- a/images/cinder/Dockerfile
+++ b/images/cinder/Dockerfile
@@ -3,7 +3,7 @@
 
 ARG RELEASE
 
-FROM registry.atmosphere.dev/library/openstack-venv-builder:${RELEASE} AS build
+FROM harbor.atmosphere.dev/library/openstack-venv-builder:${RELEASE} AS build
 ARG CINDER_GIT_REF=9e667b02b2c20b4ada18c1a472be152956284d45
 ADD --keep-git-dir=true https://opendev.org/openstack/cinder.git#${CINDER_GIT_REF} /src/cinder
 RUN git -C /src/cinder fetch --unshallow
@@ -25,7 +25,7 @@
     https://github.com/storpool/storpool-openstack-integration/raw/master/drivers/os_brick/openstack/antelope/storpool.py \
     /var/lib/openstack/lib/python3.10/site-packages/os_brick/initiator/connectors/storpool.py
 
-FROM registry.atmosphere.dev/library/openstack-python-runtime:${RELEASE}
+FROM harbor.atmosphere.dev/library/openstack-python-runtime:${RELEASE}
 RUN <<EOF bash -xe
 apt-get update -qq
 apt-get install -qq -y --no-install-recommends \
diff --git a/images/designate/Dockerfile b/images/designate/Dockerfile
index f2c6016..d073973 100644
--- a/images/designate/Dockerfile
+++ b/images/designate/Dockerfile
@@ -3,7 +3,7 @@
 
 ARG RELEASE
 
-FROM registry.atmosphere.dev/library/openstack-venv-builder:${RELEASE} AS build
+FROM harbor.atmosphere.dev/library/openstack-venv-builder:${RELEASE} AS build
 ARG DESIGNATE_GIT_REF=2c817b3d7f01de44023f195c6e8de8853683a54a
 ADD --keep-git-dir=true https://opendev.org/openstack/designate.git#${DESIGNATE_GIT_REF} /src/designate
 RUN git -C /src/designate fetch --unshallow
@@ -15,7 +15,7 @@
         /src/designate
 EOF
 
-FROM registry.atmosphere.dev/library/openstack-python-runtime:${RELEASE}
+FROM harbor.atmosphere.dev/library/openstack-python-runtime:${RELEASE}
 RUN <<EOF bash -xe
 apt-get update -qq
 apt-get install -qq -y --no-install-recommends \
diff --git a/images/glance/Dockerfile b/images/glance/Dockerfile
index ecf27ef..8032c4d 100644
--- a/images/glance/Dockerfile
+++ b/images/glance/Dockerfile
@@ -3,7 +3,7 @@
 
 ARG RELEASE
 
-FROM registry.atmosphere.dev/library/openstack-venv-builder:${RELEASE} AS build
+FROM harbor.atmosphere.dev/library/openstack-venv-builder:${RELEASE} AS build
 ARG GLANCE_GIT_REF=835c89c711993c51aa8752d96b4c8effa1a97009
 ADD --keep-git-dir=true https://opendev.org/openstack/glance.git#${GLANCE_GIT_REF} /src/glance
 RUN git -C /src/glance fetch --unshallow
@@ -21,7 +21,7 @@
     https://github.com/storpool/storpool-openstack-integration/raw/master/drivers/os_brick/openstack/antelope/storpool.py \
     /var/lib/openstack/lib/python3.10/site-packages/os_brick/initiator/connectors/storpool.py
 
-FROM registry.atmosphere.dev/library/openstack-python-runtime:${RELEASE}
+FROM harbor.atmosphere.dev/library/openstack-python-runtime:${RELEASE}
 RUN <<EOF bash -xe
 apt-get update -qq
 apt-get install -qq -y --no-install-recommends \
diff --git a/images/heat/Dockerfile b/images/heat/Dockerfile
index 5f7d73c..5171a47 100644
--- a/images/heat/Dockerfile
+++ b/images/heat/Dockerfile
@@ -3,7 +3,7 @@
 
 ARG RELEASE
 
-FROM registry.atmosphere.dev/library/openstack-venv-builder:${RELEASE} AS build
+FROM harbor.atmosphere.dev/library/openstack-venv-builder:${RELEASE} AS build
 ARG HEAT_GIT_REF=39eca5de2e193f652792e4f7be2e5eb96dd3d853
 ADD --keep-git-dir=true https://opendev.org/openstack/heat.git#${HEAT_GIT_REF} /src/heat
 RUN git -C /src/heat fetch --unshallow
@@ -13,7 +13,7 @@
         /src/heat
 EOF
 
-FROM registry.atmosphere.dev/library/openstack-python-runtime:${RELEASE}
+FROM harbor.atmosphere.dev/library/openstack-python-runtime:${RELEASE}
 RUN <<EOF bash -xe
 apt-get update -qq
 apt-get install -qq -y --no-install-recommends \
diff --git a/images/horizon/Dockerfile b/images/horizon/Dockerfile
index a23988b..14f01d4 100644
--- a/images/horizon/Dockerfile
+++ b/images/horizon/Dockerfile
@@ -3,7 +3,7 @@
 
 ARG RELEASE
 
-FROM registry.atmosphere.dev/library/openstack-venv-builder:${RELEASE} AS build
+FROM harbor.atmosphere.dev/library/openstack-venv-builder:${RELEASE} AS build
 ARG HORIZON_GIT_REF=593ef9b56191676d0a85b55bd152c0c757fad2de
 ADD --keep-git-dir=true https://opendev.org/openstack/horizon.git#${HORIZON_GIT_REF} /src/horizon
 RUN git -C /src/horizon fetch --unshallow
@@ -39,7 +39,7 @@
         pymemcache
 EOF
 
-FROM registry.atmosphere.dev/library/openstack-python-runtime:${RELEASE}
+FROM harbor.atmosphere.dev/library/openstack-python-runtime:${RELEASE}
 RUN <<EOF bash -xe
 apt-get update -qq
 apt-get install -qq -y --no-install-recommends \
diff --git a/images/ironic/Dockerfile b/images/ironic/Dockerfile
index 4744392..e84e5af 100644
--- a/images/ironic/Dockerfile
+++ b/images/ironic/Dockerfile
@@ -3,7 +3,7 @@
 
 ARG RELEASE
 
-FROM registry.atmosphere.dev/library/openstack-venv-builder:${RELEASE} AS build
+FROM harbor.atmosphere.dev/library/openstack-venv-builder:${RELEASE} AS build
 ARG IRONIC_GIT_REF=009f73717cee1c4d523c75d9232cc11902c9173a
 ADD --keep-git-dir=true https://opendev.org/openstack/ironic.git#${IRONIC_GIT_REF} /src/ironic
 RUN git -C /src/ironic fetch --unshallow
@@ -15,7 +15,7 @@
         sushy
 EOF
 
-FROM registry.atmosphere.dev/library/openstack-python-runtime:${RELEASE}
+FROM harbor.atmosphere.dev/library/openstack-python-runtime:${RELEASE}
 RUN <<EOF bash -xe
 apt-get update -qq
 apt-get install -qq -y --no-install-recommends \
diff --git a/images/keepalived/Dockerfile b/images/keepalived/Dockerfile
index 2f1bb78..e5dacfe 100644
--- a/images/keepalived/Dockerfile
+++ b/images/keepalived/Dockerfile
@@ -3,7 +3,7 @@
 
 ARG RELEASE
 
-FROM registry.atmosphere.dev/library/ubuntu:${RELEASE}
+FROM harbor.atmosphere.dev/library/ubuntu:${RELEASE}
 RUN <<EOF bash -xe
 apt-get update -qq
 apt-get install -qq -y --no-install-recommends \
diff --git a/images/keystone/Dockerfile b/images/keystone/Dockerfile
index ca0b0ac..b528fd3 100644
--- a/images/keystone/Dockerfile
+++ b/images/keystone/Dockerfile
@@ -3,7 +3,7 @@
 
 ARG RELEASE
 
-FROM registry.atmosphere.dev/library/openstack-venv-builder:${RELEASE} AS build
+FROM harbor.atmosphere.dev/library/openstack-venv-builder:${RELEASE} AS build
 ARG KEYSTONE_GIT_REF=7697140fc23cee66b17050651813ebe902671256
 ADD --keep-git-dir=true https://opendev.org/openstack/keystone.git#${KEYSTONE_GIT_REF} /src/keystone
 RUN git -C /src/keystone fetch --unshallow
@@ -16,7 +16,7 @@
         keystone-keycloak-backend==0.1.8
 EOF
 
-FROM registry.atmosphere.dev/library/openstack-python-runtime:${RELEASE}
+FROM harbor.atmosphere.dev/library/openstack-python-runtime:${RELEASE}
 RUN <<EOF bash -xe
 apt-get update -qq
 apt-get install -qq -y --no-install-recommends \
diff --git a/images/kubernetes-entrypoint/Dockerfile b/images/kubernetes-entrypoint/Dockerfile
index 5512375..fef3dcc 100644
--- a/images/kubernetes-entrypoint/Dockerfile
+++ b/images/kubernetes-entrypoint/Dockerfile
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: Apache-2.0
 # Atmosphere-Rebuild-Time: 2024-06-25T13:53:44Z
 
-FROM golang:1.21 AS build
+FROM harbor.atmosphere.dev/docker.io/library/golang:1.21 AS build
 ARG KUBERNETES_ENTRYPOINT_GIT_REF=4fbcf7ce324dc66e78480f73035e31434cfea1e8
 ADD https://opendev.org/airship/kubernetes-entrypoint.git#${KUBERNETES_ENTRYPOINT_GIT_REF} /src
 WORKDIR /src
diff --git a/images/libvirtd/Dockerfile b/images/libvirtd/Dockerfile
index 0231b68..c02bc00 100644
--- a/images/libvirtd/Dockerfile
+++ b/images/libvirtd/Dockerfile
@@ -3,7 +3,7 @@
 
 ARG RELEASE
 
-FROM registry.atmosphere.dev/library/openstack-runtime:${RELEASE}
+FROM harbor.atmosphere.dev/library/openstack-runtime:${RELEASE}
 ADD --chmod=644 https://download.ceph.com/keys/release.gpg /etc/apt/trusted.gpg.d/ceph.gpg
 COPY <<EOF /etc/apt/sources.list.d/ceph.list
 deb http://download.ceph.com/debian-reef/ jammy main
diff --git a/images/magnum/Dockerfile b/images/magnum/Dockerfile
index 18776b1..100e6ee 100644
--- a/images/magnum/Dockerfile
+++ b/images/magnum/Dockerfile
@@ -3,7 +3,7 @@
 
 ARG RELEASE
 
-FROM registry.atmosphere.dev/library/ubuntu:${RELEASE} AS helm
+FROM harbor.atmosphere.dev/library/ubuntu:${RELEASE} AS helm
 ARG TARGETOS
 ARG TARGETARCH
 ARG HELM_VERSION=3.14.0
@@ -11,7 +11,7 @@
 RUN tar -xzf /helm.tar.gz
 RUN mv /${TARGETOS}-${TARGETARCH}/helm /usr/bin/helm
 
-FROM registry.atmosphere.dev/library/openstack-venv-builder:${RELEASE} AS build
+FROM harbor.atmosphere.dev/library/openstack-venv-builder:${RELEASE} AS build
 ARG MAGNUM_GIT_REF=f3cfcfd8f1d472950642e7103ab59853f5ee63da
 ADD --keep-git-dir=true https://opendev.org/openstack/magnum.git#${MAGNUM_GIT_REF} /src/magnum
 RUN git -C /src/magnum fetch --unshallow
@@ -22,7 +22,7 @@
         magnum-cluster-api==0.24.0
 EOF
 
-FROM registry.atmosphere.dev/library/openstack-python-runtime:${RELEASE}
+FROM harbor.atmosphere.dev/library/openstack-python-runtime:${RELEASE}
 RUN <<EOF bash -xe
 apt-get update -qq
 apt-get install -qq -y --no-install-recommends \
diff --git a/images/manila/Dockerfile b/images/manila/Dockerfile
index 24ce5f8..7547376 100644
--- a/images/manila/Dockerfile
+++ b/images/manila/Dockerfile
@@ -3,7 +3,7 @@
 
 ARG RELEASE
 
-FROM registry.atmosphere.dev/library/openstack-venv-builder:${RELEASE} AS build
+FROM harbor.atmosphere.dev/library/openstack-venv-builder:${RELEASE} AS build
 ARG MANILA_GIT_REF=ed585103e4c26478b60b397b0bb064b50dc1acb5
 ADD --keep-git-dir=true https://opendev.org/openstack/manila.git#${MANILA_GIT_REF} /src/manila
 RUN git -C /src/manila fetch --unshallow
@@ -15,7 +15,7 @@
         /src/manila
 EOF
 
-FROM registry.atmosphere.dev/library/openstack-python-runtime:${RELEASE}
+FROM harbor.atmosphere.dev/library/openstack-python-runtime:${RELEASE}
 RUN <<EOF bash -xe
 apt-get update -qq
 apt-get install -qq -y --no-install-recommends \
diff --git a/images/netoffload/Dockerfile b/images/netoffload/Dockerfile
index d11119a..2294305 100644
--- a/images/netoffload/Dockerfile
+++ b/images/netoffload/Dockerfile
@@ -3,13 +3,13 @@
 
 ARG RELEASE
 
-FROM golang:1.20 AS build
+FROM harbor.atmosphere.dev/docker.io/library/golang:1.20 AS build
 ARG NETOFFLOAD_GIT_REF=94b8c0fdb0b83bd1b7e14b9a58077a047c78a800
 ADD https://github.com/vexxhost/netoffload.git#${NETOFFLOAD_GIT_REF} /src
 WORKDIR /src
 RUN go build -v -o offloadctl ./cmd/offloadctl/main.go
 
-FROM registry.atmosphere.dev/library/ubuntu:${RELEASE}
+FROM harbor.atmosphere.dev/library/ubuntu:${RELEASE}
 RUN <<EOF bash -xe
 apt-get update -qq
 apt-get install -qq -y --no-install-recommends \
diff --git a/images/neutron/Dockerfile b/images/neutron/Dockerfile
index c31bdbf..771cdfa 100644
--- a/images/neutron/Dockerfile
+++ b/images/neutron/Dockerfile
@@ -3,7 +3,7 @@
 
 ARG RELEASE
 
-FROM registry.atmosphere.dev/library/openstack-venv-builder:${RELEASE} AS build
+FROM harbor.atmosphere.dev/library/openstack-venv-builder:${RELEASE} AS build
 ARG NEUTRON_GIT_REF=81c8fd369b5ba58e53b4af21afbb95e2897dc42e
 ADD --keep-git-dir=true https://opendev.org/openstack/neutron.git#${NEUTRON_GIT_REF} /src/neutron
 RUN git -C /src/neutron fetch --unshallow
@@ -25,7 +25,7 @@
         /src/neutron-ovn-network-logging-parser
 EOF
 
-FROM registry.atmosphere.dev/library/openstack-python-runtime:${RELEASE}
+FROM harbor.atmosphere.dev/library/openstack-python-runtime:${RELEASE}
 RUN <<EOF bash -xe
 apt-get update -qq
 apt-get install -qq -y --no-install-recommends \
diff --git a/images/nova-ssh/Dockerfile b/images/nova-ssh/Dockerfile
index 5177b1b..f79653b 100644
--- a/images/nova-ssh/Dockerfile
+++ b/images/nova-ssh/Dockerfile
@@ -3,7 +3,7 @@
 
 ARG RELEASE
 
-FROM registry.atmosphere.dev/library/openstack-runtime:${RELEASE}
+FROM harbor.atmosphere.dev/library/openstack-runtime:${RELEASE}
 RUN <<EOF bash -xe
 apt-get update -qq
 apt-get install -qq -y --no-install-recommends \
diff --git a/images/nova/Dockerfile b/images/nova/Dockerfile
index 07fcc83..98c3f76 100644
--- a/images/nova/Dockerfile
+++ b/images/nova/Dockerfile
@@ -3,7 +3,7 @@
 
 ARG RELEASE
 
-FROM registry.atmosphere.dev/library/openstack-venv-builder:${RELEASE} AS build
+FROM harbor.atmosphere.dev/library/openstack-venv-builder:${RELEASE} AS build
 ARG NOVA_GIT_REF=70a435fd519a0ebcc3ac9ad5254fefbf19c93e48
 ADD --keep-git-dir=true https://opendev.org/openstack/nova.git#${NOVA_GIT_REF} /src/nova
 RUN git -C /src/nova fetch --unshallow
@@ -23,7 +23,7 @@
     https://github.com/storpool/storpool-openstack-integration/raw/master/drivers/os_brick/openstack/antelope/storpool.py \
     /var/lib/openstack/lib/python3.10/site-packages/os_brick/initiator/connectors/storpool.py
 
-FROM registry.atmosphere.dev/library/openstack-python-runtime:${RELEASE}
+FROM harbor.atmosphere.dev/library/openstack-python-runtime:${RELEASE}
 ADD https://github.com/novnc/noVNC.git#v1.4.0 /usr/share/novnc
 RUN <<EOF bash -xe
 apt-get update -qq
diff --git a/images/octavia/Dockerfile b/images/octavia/Dockerfile
index 28faf29..b24c4dd 100644
--- a/images/octavia/Dockerfile
+++ b/images/octavia/Dockerfile
@@ -3,7 +3,7 @@
 
 ARG RELEASE
 
-FROM registry.atmosphere.dev/library/openstack-venv-builder:${RELEASE} AS build
+FROM harbor.atmosphere.dev/library/openstack-venv-builder:${RELEASE} AS build
 ARG OCTAVIA_GIT_REF=8832cefaa0e5b6ec1e2db8fe77c3995adce0ca6a
 ADD --keep-git-dir=true https://opendev.org/openstack/octavia.git#${OCTAVIA_GIT_REF} /src/octavia
 RUN git -C /src/octavia fetch --unshallow
@@ -16,7 +16,7 @@
         /src/ovn-octavia-provider
 EOF
 
-FROM registry.atmosphere.dev/library/openstack-python-runtime:${RELEASE}
+FROM harbor.atmosphere.dev/library/openstack-python-runtime:${RELEASE}
 RUN <<EOF bash -xe
 apt-get update -qq
 apt-get install -qq -y --no-install-recommends \
diff --git a/images/openstack-runtime/Dockerfile b/images/openstack-runtime/Dockerfile
index d40d9d5..0eb2905 100644
--- a/images/openstack-runtime/Dockerfile
+++ b/images/openstack-runtime/Dockerfile
@@ -3,7 +3,7 @@
 
 ARG RELEASE
 
-ARG FROM=registry.atmosphere.dev/library/ubuntu-cloud-archive:${RELEASE}
+ARG FROM=harbor.atmosphere.dev/library/ubuntu-cloud-archive:${RELEASE}
 FROM ${FROM}
 ONBUILD ARG PROJECT
 ONBUILD ARG SHELL=/usr/sbin/nologin
diff --git a/images/openstack-venv-builder/Dockerfile b/images/openstack-venv-builder/Dockerfile
index a51e43e..e38f27e 100644
--- a/images/openstack-venv-builder/Dockerfile
+++ b/images/openstack-venv-builder/Dockerfile
@@ -3,7 +3,7 @@
 
 ARG RELEASE
 
-FROM registry.atmosphere.dev/library/ubuntu-cloud-archive:${RELEASE} AS requirements
+FROM harbor.atmosphere.dev/library/ubuntu-cloud-archive:${RELEASE} AS requirements
 ARG REQUIREMENTS_GIT_REF=b14cdf8aeba6b7fba4ed85ae4e140d1f52a4038c
 ADD --keep-git-dir=true https://opendev.org/openstack/requirements.git#${REQUIREMENTS_GIT_REF} /src/requirements
 RUN cp /src/requirements/upper-constraints.txt /upper-constraints.txt
@@ -12,7 +12,7 @@
 sed -i '/horizon/d' /upper-constraints.txt
 EOF
 
-FROM registry.atmosphere.dev/library/python-base:${RELEASE}
+FROM harbor.atmosphere.dev/library/python-base:${RELEASE}
 RUN <<EOF bash -xe
 apt-get update -qq
 apt-get install -qq -y --no-install-recommends \
diff --git a/images/ovn/Dockerfile b/images/ovn/Dockerfile
index 8333496..677d6e8 100644
--- a/images/ovn/Dockerfile
+++ b/images/ovn/Dockerfile
@@ -3,7 +3,7 @@
 
 ARG RELEASE
 
-FROM golang:1.20 AS ovn-kubernetes
+FROM harbor.atmosphere.dev/docker.io/library/golang:1.20 AS ovn-kubernetes
 ARG OVN_KUBERNETES_REF=5359e7d7f872058b6e5bf884c9f19d1922451f29
 ADD https://github.com/ovn-org/ovn-kubernetes.git#${OVN_KUBERNETES_REF} /src
 COPY patches/ovn-kubernetes /patches/ovn-kubernetes
@@ -13,7 +13,7 @@
 go build -o /usr/bin/ovn-kube-util ./cmd/ovn-kube-util
 EOF
 
-FROM registry.atmosphere.dev/library/openvswitch:${RELEASE}
+FROM harbor.atmosphere.dev/library/openvswitch:${RELEASE}
 ARG TARGETPLATFORM
 ADD --chmod=755 https://dl.k8s.io/release/v1.29.3/bin/${TARGETPLATFORM}/kubectl /usr/local/bin/kubectl
 ARG OVN_SERIES=24.03
diff --git a/images/placement/Dockerfile b/images/placement/Dockerfile
index 1085e19..6182b9f 100644
--- a/images/placement/Dockerfile
+++ b/images/placement/Dockerfile
@@ -3,7 +3,7 @@
 
 ARG RELEASE
 
-FROM registry.atmosphere.dev/library/openstack-venv-builder:${RELEASE} AS build
+FROM harbor.atmosphere.dev/library/openstack-venv-builder:${RELEASE} AS build
 ARG PLACEMENT_GIT_REF=a361622d749d3b24aad638ec1b03a7d7124a87b3
 ADD --keep-git-dir=true https://opendev.org/openstack/placement.git#${PLACEMENT_GIT_REF} /src/placement
 RUN git -C /src/placement fetch --unshallow
@@ -13,5 +13,5 @@
         /src/placement
 EOF
 
-FROM registry.atmosphere.dev/library/openstack-python-runtime:${RELEASE}
+FROM harbor.atmosphere.dev/library/openstack-python-runtime:${RELEASE}
 COPY --from=build --link /var/lib/openstack /var/lib/openstack
diff --git a/images/python-base/Dockerfile b/images/python-base/Dockerfile
index 221a668..9aba37f 100644
--- a/images/python-base/Dockerfile
+++ b/images/python-base/Dockerfile
@@ -3,7 +3,7 @@
 
 ARG RELEASE
 
-FROM registry.atmosphere.dev/library/ubuntu-cloud-archive:${RELEASE}
+FROM harbor.atmosphere.dev/library/ubuntu-cloud-archive:${RELEASE}
 ENV PATH=/var/lib/openstack/bin:$PATH
 RUN \
     apt-get update -qq && \
diff --git a/images/python-openstackclient/Dockerfile b/images/python-openstackclient/Dockerfile
index 9b0e985..7a098c1 100644
--- a/images/python-openstackclient/Dockerfile
+++ b/images/python-openstackclient/Dockerfile
@@ -3,7 +3,7 @@
 
 ARG RELEASE
 
-FROM registry.atmosphere.dev/library/openstack-venv-builder:${RELEASE} AS build
+FROM harbor.atmosphere.dev/library/openstack-venv-builder:${RELEASE} AS build
 RUN --mount=type=cache,mode=0755,target=/root/.cache/pip,sharing=private <<EOF bash -xe
 pip3 install \
     --constraint /upper-constraints.txt \
@@ -21,7 +21,7 @@
         python-swiftclient
 EOF
 
-FROM registry.atmosphere.dev/library/python-base:${RELEASE}
+FROM harbor.atmosphere.dev/library/python-base:${RELEASE}
 COPY --from=build --link /var/lib/openstack /var/lib/openstack
 
 # NOTE(mnaser): The Magnum client relies on the SHELL environment variable
diff --git a/images/staffeln/Dockerfile b/images/staffeln/Dockerfile
index 9542799..b4e930d 100644
--- a/images/staffeln/Dockerfile
+++ b/images/staffeln/Dockerfile
@@ -3,7 +3,7 @@
 
 ARG RELEASE
 
-FROM registry.atmosphere.dev/library/openstack-venv-builder:${RELEASE} AS build
+FROM harbor.atmosphere.dev/library/openstack-venv-builder:${RELEASE} AS build
 ARG STAFFELN_GIT_REF=v2.2.3
 ADD --keep-git-dir=true https://github.com/vexxhost/staffeln.git#${STAFFELN_GIT_REF} /src/staffeln
 RUN git -C /src/staffeln fetch --unshallow
@@ -13,5 +13,5 @@
         /src/staffeln
 EOF
 
-FROM registry.atmosphere.dev/library/openstack-python-runtime:${RELEASE}
+FROM harbor.atmosphere.dev/library/openstack-python-runtime:${RELEASE}
 COPY --from=build --link /var/lib/openstack /var/lib/openstack
diff --git a/images/tempest/Dockerfile b/images/tempest/Dockerfile
index ef24b83..aa1c033 100644
--- a/images/tempest/Dockerfile
+++ b/images/tempest/Dockerfile
@@ -3,14 +3,14 @@
 
 ARG RELEASE
 
-FROM golang:1.18 AS octavia-test-server
+FROM harbor.atmosphere.dev/docker.io/library/golang:1.18 AS octavia-test-server
 ADD --keep-git-dir=true https://opendev.org/openstack/octavia-tempest-plugin.git#master /src
 RUN GO111MODULE=off CGO_ENABLED=0 GOOS=linux go build \
     -a -ldflags '-s -w -extldflags -static' \
     -o /build/test_server.bin \
     /src/octavia_tempest_plugin/contrib/test_server/test_server.go
 
-FROM registry.atmosphere.dev/library/openstack-venv-builder:${RELEASE} AS build
+FROM harbor.atmosphere.dev/library/openstack-venv-builder:${RELEASE} AS build
 ARG TEMPEST_GIT_REF=c0da6e843a74c2392c8e87e8ff36d2fea12949c4
 ADD --keep-git-dir=true https://opendev.org/openstack/tempest.git#${TEMPEST_GIT_REF} /src/tempest
 RUN git -C /src/tempest fetch --unshallow
@@ -39,7 +39,7 @@
         /src/octavia-tempest-plugin
 EOF
 
-FROM registry.atmosphere.dev/library/openstack-python-runtime:${RELEASE}
+FROM harbor.atmosphere.dev/library/openstack-python-runtime:${RELEASE}
 RUN <<EOF bash -xe
 apt-get update -qq
 apt-get install -qq -y --no-install-recommends \
diff --git a/images/ubuntu-cloud-archive/Dockerfile b/images/ubuntu-cloud-archive/Dockerfile
index 87a4b26..65550c4 100644
--- a/images/ubuntu-cloud-archive/Dockerfile
+++ b/images/ubuntu-cloud-archive/Dockerfile
@@ -3,7 +3,7 @@
 
 ARG RELEASE
 
-FROM registry.atmosphere.dev/library/ubuntu:${RELEASE}
+FROM harbor.atmosphere.dev/library/ubuntu:${RELEASE}
 COPY trusted.gpg.d/ubuntu-cloud-keyring.gpg /etc/apt/trusted.gpg.d/ubuntu-cloud-keyring.gpg
 COPY <<EOF /etc/apt/sources.list.d/cloudarchive.list
 deb http://ubuntu-cloud.archive.canonical.com/ubuntu jammy-updates/bobcat main
diff --git a/images/ubuntu/Dockerfile b/images/ubuntu/Dockerfile
index 29d33fb..e3efabd 100644
--- a/images/ubuntu/Dockerfile
+++ b/images/ubuntu/Dockerfile
@@ -1,5 +1,5 @@
 # SPDX-License-Identifier: Apache-2.0
 # Atmosphere-Rebuild-Time: 2024-06-25T13:53:44Z
 
-FROM ubuntu:jammy-20240227
+FROM harbor.atmosphere.dev/docker.io/library/ubuntu:jammy-20240227
 LABEL org.opencontainers.image.source=https://github.com/vexxhost/atmosphere
diff --git a/molecule/csi/verify.yml b/molecule/csi/verify.yml
index 5f5fa54..1cadf22 100644
--- a/molecule/csi/verify.yml
+++ b/molecule/csi/verify.yml
@@ -49,7 +49,7 @@
                   claimName: test-pvc
             containers:
               - name: test-pvc-pod-container
-                image: registry.atmosphere.dev/docker.io/library/nginx:1.25
+                image: harbor.atmosphere.dev/docker.io/library/nginx:1.25
                 volumeMounts:
                   - name: test-pvc
                     mountPath: /usr/share/nginx/html
diff --git a/tox.ini b/tox.ini
index 34519eb..622a3fe 100644
--- a/tox.ini
+++ b/tox.ini
@@ -47,7 +47,7 @@
   ATMOSPHERE_*
   OS_*
 deps =
-  molecule
+  molecule==24.9.0
   kubernetes
   oslotest
   stestr
diff --git a/zuul.d/container-images/barbican.yaml b/zuul.d/container-images/barbican.yaml
index da767db..3a9caa8 100644
--- a/zuul.d/container-images/barbican.yaml
+++ b/zuul.d/container-images/barbican.yaml
@@ -43,8 +43,8 @@
       promote_container_image_job: atmosphere-upload-container-image-barbican
       container_images:
         - context: images/barbican
-          registry: registry.atmosphere.dev
-          repository: registry.atmosphere.dev/library/barbican
+          registry: harbor.atmosphere.dev
+          repository: harbor.atmosphere.dev/library/barbican
           arch:
             - linux/amd64
           build_args:
diff --git a/zuul.d/container-images/base.yaml b/zuul.d/container-images/base.yaml
index 021dbfc..32567c5 100644
--- a/zuul.d/container-images/base.yaml
+++ b/zuul.d/container-images/base.yaml
@@ -39,7 +39,7 @@
         - ['docker.io', 'https://registry-1.docker.io']
         - ['quay.io', 'https://quay.io']
         - ['gcr.io', 'https://gcr.io']
-        - ['registry.atmosphere.dev', 'https://registry.atmosphere.dev']
+        - ['harbor.atmosphere.dev', 'https://harbor.atmosphere.dev']
 
 - job:
     name: atmosphere-upload-container-image
diff --git a/zuul.d/container-images/cinder.yaml b/zuul.d/container-images/cinder.yaml
index 55c9442..a755adf 100644
--- a/zuul.d/container-images/cinder.yaml
+++ b/zuul.d/container-images/cinder.yaml
@@ -43,8 +43,8 @@
       promote_container_image_job: atmosphere-upload-container-image-cinder
       container_images:
         - context: images/cinder
-          registry: registry.atmosphere.dev
-          repository: registry.atmosphere.dev/library/cinder
+          registry: harbor.atmosphere.dev
+          repository: harbor.atmosphere.dev/library/cinder
           arch:
             - linux/amd64
           build_args:
diff --git a/zuul.d/container-images/designate.yaml b/zuul.d/container-images/designate.yaml
index bfc3c6a..41be3a7 100644
--- a/zuul.d/container-images/designate.yaml
+++ b/zuul.d/container-images/designate.yaml
@@ -43,8 +43,8 @@
       promote_container_image_job: atmosphere-upload-container-image-designate
       container_images:
         - context: images/designate
-          registry: registry.atmosphere.dev
-          repository: registry.atmosphere.dev/library/designate
+          registry: harbor.atmosphere.dev
+          repository: harbor.atmosphere.dev/library/designate
           arch:
             - linux/amd64
           build_args:
diff --git a/zuul.d/container-images/glance.yaml b/zuul.d/container-images/glance.yaml
index 6f92bed..f158d35 100644
--- a/zuul.d/container-images/glance.yaml
+++ b/zuul.d/container-images/glance.yaml
@@ -43,8 +43,8 @@
       promote_container_image_job: atmosphere-upload-container-image-glance
       container_images:
         - context: images/glance
-          registry: registry.atmosphere.dev
-          repository: registry.atmosphere.dev/library/glance
+          registry: harbor.atmosphere.dev
+          repository: harbor.atmosphere.dev/library/glance
           arch:
             - linux/amd64
           build_args:
diff --git a/zuul.d/container-images/heat.yaml b/zuul.d/container-images/heat.yaml
index 5b4087e..4c2fd87 100644
--- a/zuul.d/container-images/heat.yaml
+++ b/zuul.d/container-images/heat.yaml
@@ -43,8 +43,8 @@
       promote_container_image_job: atmosphere-upload-container-image-heat
       container_images:
         - context: images/heat
-          registry: registry.atmosphere.dev
-          repository: registry.atmosphere.dev/library/heat
+          registry: harbor.atmosphere.dev
+          repository: harbor.atmosphere.dev/library/heat
           arch:
             - linux/amd64
           build_args:
diff --git a/zuul.d/container-images/horizon.yaml b/zuul.d/container-images/horizon.yaml
index a9de5a2..d3a713e 100644
--- a/zuul.d/container-images/horizon.yaml
+++ b/zuul.d/container-images/horizon.yaml
@@ -43,8 +43,8 @@
       promote_container_image_job: atmosphere-upload-container-image-horizon
       container_images:
         - context: images/horizon
-          registry: registry.atmosphere.dev
-          repository: registry.atmosphere.dev/library/horizon
+          registry: harbor.atmosphere.dev
+          repository: harbor.atmosphere.dev/library/horizon
           arch:
             - linux/amd64
           build_args:
diff --git a/zuul.d/container-images/ironic.yaml b/zuul.d/container-images/ironic.yaml
index 780a02c..18403e0 100644
--- a/zuul.d/container-images/ironic.yaml
+++ b/zuul.d/container-images/ironic.yaml
@@ -43,8 +43,8 @@
       promote_container_image_job: atmosphere-upload-container-image-ironic
       container_images:
         - context: images/ironic
-          registry: registry.atmosphere.dev
-          repository: registry.atmosphere.dev/library/ironic
+          registry: harbor.atmosphere.dev
+          repository: harbor.atmosphere.dev/library/ironic
           arch:
             - linux/amd64
           build_args:
diff --git a/zuul.d/container-images/keepalived.yaml b/zuul.d/container-images/keepalived.yaml
index 81b18f0..e4f55ce 100644
--- a/zuul.d/container-images/keepalived.yaml
+++ b/zuul.d/container-images/keepalived.yaml
@@ -35,8 +35,8 @@
       promote_container_image_job: atmosphere-upload-container-image-keepalived
       container_images:
         - context: images/keepalived
-          registry: registry.atmosphere.dev
-          repository: registry.atmosphere.dev/library/keepalived
+          registry: harbor.atmosphere.dev
+          repository: harbor.atmosphere.dev/library/keepalived
           arch:
             - linux/amd64
           build_args:
diff --git a/zuul.d/container-images/keystone.yaml b/zuul.d/container-images/keystone.yaml
index 74f04b2..d3bc1b7 100644
--- a/zuul.d/container-images/keystone.yaml
+++ b/zuul.d/container-images/keystone.yaml
@@ -43,8 +43,8 @@
       promote_container_image_job: atmosphere-upload-container-image-keystone
       container_images:
         - context: images/keystone
-          registry: registry.atmosphere.dev
-          repository: registry.atmosphere.dev/library/keystone
+          registry: harbor.atmosphere.dev
+          repository: harbor.atmosphere.dev/library/keystone
           arch:
             - linux/amd64
           build_args:
diff --git a/zuul.d/container-images/kubernetes-entrypoint.yaml b/zuul.d/container-images/kubernetes-entrypoint.yaml
index b11ef16..03a2a39 100644
--- a/zuul.d/container-images/kubernetes-entrypoint.yaml
+++ b/zuul.d/container-images/kubernetes-entrypoint.yaml
@@ -33,8 +33,8 @@
       promote_container_image_job: atmosphere-upload-container-image-kubernetes-entrypoint
       container_images:
         - context: images/kubernetes-entrypoint
-          registry: registry.atmosphere.dev
-          repository: registry.atmosphere.dev/library/kubernetes-entrypoint
+          registry: harbor.atmosphere.dev
+          repository: harbor.atmosphere.dev/library/kubernetes-entrypoint
           arch:
             - linux/amd64
             - linux/arm64
diff --git a/zuul.d/container-images/libvirtd.yaml b/zuul.d/container-images/libvirtd.yaml
index 4fd0cef..f77f45e 100644
--- a/zuul.d/container-images/libvirtd.yaml
+++ b/zuul.d/container-images/libvirtd.yaml
@@ -39,8 +39,8 @@
       promote_container_image_job: atmosphere-upload-container-image-libvirtd
       container_images:
         - context: images/libvirtd
-          registry: registry.atmosphere.dev
-          repository: registry.atmosphere.dev/library/libvirtd
+          registry: harbor.atmosphere.dev
+          repository: harbor.atmosphere.dev/library/libvirtd
           arch:
             - linux/amd64
             - linux/arm64
diff --git a/zuul.d/container-images/magnum.yaml b/zuul.d/container-images/magnum.yaml
index bfa764e..2772c95 100644
--- a/zuul.d/container-images/magnum.yaml
+++ b/zuul.d/container-images/magnum.yaml
@@ -43,8 +43,8 @@
       promote_container_image_job: atmosphere-upload-container-image-magnum
       container_images:
         - context: images/magnum
-          registry: registry.atmosphere.dev
-          repository: registry.atmosphere.dev/library/magnum
+          registry: harbor.atmosphere.dev
+          repository: harbor.atmosphere.dev/library/magnum
           arch:
             - linux/amd64
             - linux/arm64
diff --git a/zuul.d/container-images/manila.yaml b/zuul.d/container-images/manila.yaml
index ad298ff..893f9fe 100644
--- a/zuul.d/container-images/manila.yaml
+++ b/zuul.d/container-images/manila.yaml
@@ -43,8 +43,8 @@
       promote_container_image_job: atmosphere-upload-container-image-manila
       container_images:
         - context: images/manila
-          registry: registry.atmosphere.dev
-          repository: registry.atmosphere.dev/library/manila
+          registry: harbor.atmosphere.dev
+          repository: harbor.atmosphere.dev/library/manila
           arch:
             - linux/amd64
           build_args:
diff --git a/zuul.d/container-images/netoffload.yaml b/zuul.d/container-images/netoffload.yaml
index 50620c5..4e23e9e 100644
--- a/zuul.d/container-images/netoffload.yaml
+++ b/zuul.d/container-images/netoffload.yaml
@@ -35,8 +35,8 @@
       promote_container_image_job: atmosphere-upload-container-image-netoffload
       container_images:
         - context: images/netoffload
-          registry: registry.atmosphere.dev
-          repository: registry.atmosphere.dev/library/netoffload
+          registry: harbor.atmosphere.dev
+          repository: harbor.atmosphere.dev/library/netoffload
           arch:
             - linux/amd64
           build_args:
diff --git a/zuul.d/container-images/neutron.yaml b/zuul.d/container-images/neutron.yaml
index 66ce8aa..54594fd 100644
--- a/zuul.d/container-images/neutron.yaml
+++ b/zuul.d/container-images/neutron.yaml
@@ -43,8 +43,8 @@
       promote_container_image_job: atmosphere-upload-container-image-neutron
       container_images:
         - context: images/neutron
-          registry: registry.atmosphere.dev
-          repository: registry.atmosphere.dev/library/neutron
+          registry: harbor.atmosphere.dev
+          repository: harbor.atmosphere.dev/library/neutron
           arch:
             - linux/amd64
             - linux/arm64
diff --git a/zuul.d/container-images/nova-ssh.yaml b/zuul.d/container-images/nova-ssh.yaml
index b38faf4..5d3e337 100644
--- a/zuul.d/container-images/nova-ssh.yaml
+++ b/zuul.d/container-images/nova-ssh.yaml
@@ -39,8 +39,8 @@
       promote_container_image_job: atmosphere-upload-container-image-nova-ssh
       container_images:
         - context: images/nova-ssh
-          registry: registry.atmosphere.dev
-          repository: registry.atmosphere.dev/library/nova-ssh
+          registry: harbor.atmosphere.dev
+          repository: harbor.atmosphere.dev/library/nova-ssh
           arch:
             - linux/amd64
             - linux/arm64
diff --git a/zuul.d/container-images/nova.yaml b/zuul.d/container-images/nova.yaml
index fcb1382..f377b8a 100644
--- a/zuul.d/container-images/nova.yaml
+++ b/zuul.d/container-images/nova.yaml
@@ -43,8 +43,8 @@
       promote_container_image_job: atmosphere-upload-container-image-nova
       container_images:
         - context: images/nova
-          registry: registry.atmosphere.dev
-          repository: registry.atmosphere.dev/library/nova
+          registry: harbor.atmosphere.dev
+          repository: harbor.atmosphere.dev/library/nova
           arch:
             - linux/amd64
             - linux/arm64
diff --git a/zuul.d/container-images/octavia.yaml b/zuul.d/container-images/octavia.yaml
index d7c74ac..7912168 100644
--- a/zuul.d/container-images/octavia.yaml
+++ b/zuul.d/container-images/octavia.yaml
@@ -43,8 +43,8 @@
       promote_container_image_job: atmosphere-upload-container-image-octavia
       container_images:
         - context: images/octavia
-          registry: registry.atmosphere.dev
-          repository: registry.atmosphere.dev/library/octavia
+          registry: harbor.atmosphere.dev
+          repository: harbor.atmosphere.dev/library/octavia
           arch:
             - linux/amd64
           build_args:
diff --git a/zuul.d/container-images/openstack-python-runtime.yaml b/zuul.d/container-images/openstack-python-runtime.yaml
index c3bbe01..eaa403c 100644
--- a/zuul.d/container-images/openstack-python-runtime.yaml
+++ b/zuul.d/container-images/openstack-python-runtime.yaml
@@ -39,14 +39,14 @@
       promote_container_image_job: atmosphere-upload-container-image-openstack-python-runtime
       container_images:
         - context: images/openstack-runtime
-          registry: registry.atmosphere.dev
-          repository: registry.atmosphere.dev/library/openstack-python-runtime
+          registry: harbor.atmosphere.dev
+          repository: harbor.atmosphere.dev/library/openstack-python-runtime
           arch:
             - linux/amd64
             - linux/arm64
           build_args:
             - "RELEASE={{ zuul.branch | replace('stable/', '') }}"
-            - "FROM=registry.atmosphere.dev/library/python-base:{{ zuul.branch | replace('stable/', '') }}"
+            - "FROM=harbor.atmosphere.dev/library/python-base:{{ zuul.branch | replace('stable/', '') }}"
           tags:
             - "{{ zuul.branch | replace('stable/', '') }}"
     files: &container_image_files
diff --git a/zuul.d/container-images/openstack-runtime.yaml b/zuul.d/container-images/openstack-runtime.yaml
index 45036da..33f5298 100644
--- a/zuul.d/container-images/openstack-runtime.yaml
+++ b/zuul.d/container-images/openstack-runtime.yaml
@@ -37,8 +37,8 @@
       promote_container_image_job: atmosphere-upload-container-image-openstack-runtime
       container_images:
         - context: images/openstack-runtime
-          registry: registry.atmosphere.dev
-          repository: registry.atmosphere.dev/library/openstack-runtime
+          registry: harbor.atmosphere.dev
+          repository: harbor.atmosphere.dev/library/openstack-runtime
           arch:
             - linux/amd64
             - linux/arm64
diff --git a/zuul.d/container-images/openstack-venv-builder.yaml b/zuul.d/container-images/openstack-venv-builder.yaml
index e5dabfb..844d203 100644
--- a/zuul.d/container-images/openstack-venv-builder.yaml
+++ b/zuul.d/container-images/openstack-venv-builder.yaml
@@ -39,8 +39,8 @@
       promote_container_image_job: atmosphere-upload-container-image-openstack-venv-builder
       container_images:
         - context: images/openstack-venv-builder
-          registry: registry.atmosphere.dev
-          repository: registry.atmosphere.dev/library/openstack-venv-builder
+          registry: harbor.atmosphere.dev
+          repository: harbor.atmosphere.dev/library/openstack-venv-builder
           arch:
             - linux/amd64
             - linux/arm64
diff --git a/zuul.d/container-images/openvswitch.yaml b/zuul.d/container-images/openvswitch.yaml
index e2345e2..f11caec 100644
--- a/zuul.d/container-images/openvswitch.yaml
+++ b/zuul.d/container-images/openvswitch.yaml
@@ -33,8 +33,8 @@
       promote_container_image_job: atmosphere-upload-container-image-openvswitch
       container_images:
         - context: images/openvswitch
-          registry: registry.atmosphere.dev
-          repository: registry.atmosphere.dev/library/openvswitch
+          registry: harbor.atmosphere.dev
+          repository: harbor.atmosphere.dev/library/openvswitch
           arch:
             - linux/amd64
             - linux/arm64
diff --git a/zuul.d/container-images/ovn.yaml b/zuul.d/container-images/ovn.yaml
index e7735cb..83d4aca 100644
--- a/zuul.d/container-images/ovn.yaml
+++ b/zuul.d/container-images/ovn.yaml
@@ -35,8 +35,8 @@
       promote_container_image_job: atmosphere-upload-container-image-ovn
       container_images:
         - context: images/ovn
-          registry: registry.atmosphere.dev
-          repository: registry.atmosphere.dev/library/ovn-central
+          registry: harbor.atmosphere.dev
+          repository: harbor.atmosphere.dev/library/ovn-central
           arch:
             - linux/amd64
           build_args:
@@ -45,8 +45,8 @@
           tags:
             - "{{ zuul.branch | replace('stable/', '') }}"
         - context: images/ovn
-          registry: registry.atmosphere.dev
-          repository: registry.atmosphere.dev/library/ovn-host
+          registry: harbor.atmosphere.dev
+          repository: harbor.atmosphere.dev/library/ovn-host
           arch:
             - linux/amd64
             - linux/arm64
diff --git a/zuul.d/container-images/placement.yaml b/zuul.d/container-images/placement.yaml
index a3a024d..c892dc4 100644
--- a/zuul.d/container-images/placement.yaml
+++ b/zuul.d/container-images/placement.yaml
@@ -43,8 +43,8 @@
       promote_container_image_job: atmosphere-upload-container-image-placement
       container_images:
         - context: images/placement
-          registry: registry.atmosphere.dev
-          repository: registry.atmosphere.dev/library/placement
+          registry: harbor.atmosphere.dev
+          repository: harbor.atmosphere.dev/library/placement
           arch:
             - linux/amd64
           build_args:
diff --git a/zuul.d/container-images/python-base.yaml b/zuul.d/container-images/python-base.yaml
index 5faec22..dae0fd3 100644
--- a/zuul.d/container-images/python-base.yaml
+++ b/zuul.d/container-images/python-base.yaml
@@ -37,8 +37,8 @@
       promote_container_image_job: atmosphere-upload-container-image-python-base
       container_images:
         - context: images/python-base
-          registry: registry.atmosphere.dev
-          repository: registry.atmosphere.dev/library/python-base
+          registry: harbor.atmosphere.dev
+          repository: harbor.atmosphere.dev/library/python-base
           arch:
             - linux/amd64
             - linux/arm64
diff --git a/zuul.d/container-images/python-openstackclient.yaml b/zuul.d/container-images/python-openstackclient.yaml
index f6c4566..f05b9b5 100644
--- a/zuul.d/container-images/python-openstackclient.yaml
+++ b/zuul.d/container-images/python-openstackclient.yaml
@@ -41,8 +41,8 @@
       promote_container_image_job: atmosphere-upload-container-image-python-openstackclient
       container_images:
         - context: images/python-openstackclient
-          registry: registry.atmosphere.dev
-          repository: registry.atmosphere.dev/library/python-openstackclient
+          registry: harbor.atmosphere.dev
+          repository: harbor.atmosphere.dev/library/python-openstackclient
           arch:
             - linux/amd64
           build_args:
diff --git a/zuul.d/container-images/staffeln.yaml b/zuul.d/container-images/staffeln.yaml
index 7cecc39..30cb920 100644
--- a/zuul.d/container-images/staffeln.yaml
+++ b/zuul.d/container-images/staffeln.yaml
@@ -43,8 +43,8 @@
       promote_container_image_job: atmosphere-upload-container-image-staffeln
       container_images:
         - context: images/staffeln
-          registry: registry.atmosphere.dev
-          repository: registry.atmosphere.dev/library/staffeln
+          registry: harbor.atmosphere.dev
+          repository: harbor.atmosphere.dev/library/staffeln
           arch:
             - linux/amd64
           build_args:
diff --git a/zuul.d/container-images/tempest.yaml b/zuul.d/container-images/tempest.yaml
index 1a979e2..ead0bdb 100644
--- a/zuul.d/container-images/tempest.yaml
+++ b/zuul.d/container-images/tempest.yaml
@@ -43,8 +43,8 @@
       promote_container_image_job: atmosphere-upload-container-image-tempest
       container_images:
         - context: images/tempest
-          registry: registry.atmosphere.dev
-          repository: registry.atmosphere.dev/library/tempest
+          registry: harbor.atmosphere.dev
+          repository: harbor.atmosphere.dev/library/tempest
           arch:
             - linux/amd64
           build_args:
diff --git a/zuul.d/container-images/ubuntu-cloud-archive.yaml b/zuul.d/container-images/ubuntu-cloud-archive.yaml
index f4a62ca..aab44f8 100644
--- a/zuul.d/container-images/ubuntu-cloud-archive.yaml
+++ b/zuul.d/container-images/ubuntu-cloud-archive.yaml
@@ -35,8 +35,8 @@
       promote_container_image_job: atmosphere-upload-container-image-ubuntu-cloud-archive
       container_images:
         - context: images/ubuntu-cloud-archive
-          registry: registry.atmosphere.dev
-          repository: registry.atmosphere.dev/library/ubuntu-cloud-archive
+          registry: harbor.atmosphere.dev
+          repository: harbor.atmosphere.dev/library/ubuntu-cloud-archive
           arch:
             - linux/amd64
             - linux/arm64
diff --git a/zuul.d/container-images/ubuntu.yaml b/zuul.d/container-images/ubuntu.yaml
index 86d7363..6c90f69 100644
--- a/zuul.d/container-images/ubuntu.yaml
+++ b/zuul.d/container-images/ubuntu.yaml
@@ -33,8 +33,8 @@
       promote_container_image_job: atmosphere-upload-container-image-ubuntu
       container_images:
         - context: images/ubuntu
-          registry: registry.atmosphere.dev
-          repository: registry.atmosphere.dev/library/ubuntu
+          registry: harbor.atmosphere.dev
+          repository: harbor.atmosphere.dev/library/ubuntu
           arch:
             - linux/amd64
             - linux/arm64
diff --git a/zuul.d/playbooks/common/switch-to-atmosphere-mirror.yml b/zuul.d/playbooks/common/switch-to-atmosphere-mirror.yml
index c925321..839841b 100644
--- a/zuul.d/playbooks/common/switch-to-atmosphere-mirror.yml
+++ b/zuul.d/playbooks/common/switch-to-atmosphere-mirror.yml
@@ -1,10 +1,16 @@
 - name: Switch to Atmosphere image mirror
   hosts: all
   tasks:
+    - name: Switch all images out of the CDN
+      ansible.builtin.replace:
+        path: "{{ zuul.project.src_dir }}/roles/defaults/vars/main.yml"
+        regexp: 'registry.atmosphere.dev'
+        replace: 'harbor.atmosphere.dev'
+
     # TODO(mnaser): Drop this when we can use https://github.com/vexxhost/atmosphere/pull/977
     - name: Prefix all images for the job to point to mirror
       ansible.builtin.shell: |
-        sed -i '/registry.atmosphere.dev/!s/  \(.*\): \(.*\)$/  \1: registry.atmosphere.dev\/\2/' roles/defaults/vars/main.yml
+        sed -i '/harbor.atmosphere.dev/!s/  \(.*\): \(.*\)$/  \1: harbor.atmosphere.dev\/\2/' roles/defaults/vars/main.yml
       args:
         chdir: "{{ zuul.project.src_dir }}"
 
diff --git a/zuul.d/secrets.yaml b/zuul.d/secrets.yaml
index 0c59229..b9ed603 100644
--- a/zuul.d/secrets.yaml
+++ b/zuul.d/secrets.yaml
@@ -13,9 +13,9 @@
 # under the License.
 
 - secret:
-    name: atmosphere-registry-credentials
+    name: atmosphere-harbor-credentials
     data:
-      registry.atmosphere.dev:
+      harbor.atmosphere.dev:
         username: robot$zuul
         password: !encrypted/pkcs1-oaep
           - OOykjodZE21qsYYLpzplp+PV0QbsKQ1B3+kI7bY97VQI/d5RlewqlNABc10eQnyYFSDvq