[stable/2023.1] Stop using CDN for CI (#2185) (#2196)

Switch image builds to use Harbor
Switch Zuul to avoid CDN
Small more fixes
Configure CI bits to not use CDN
fixes #2189
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 27f1e65..2441646 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=9c8fb8c3a9a47276868d38a86f098e54e5f05ea6
 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 abfce9c..fb37662 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=5f5e86e3542866227b7339713148b5169d069f21
 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 4f0498a..8cc6ecc 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=ff1986cbb755f0d74a7db98623d6d17816d933a6
 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 55d5dd8..080789e 100644
--- a/images/glance/Dockerfile
+++ b/images/glance/Dockerfile
@@ -3,11 +3,11 @@
 
 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=edd75b70a4541c5dd89715a75ad565692dca2efa
 ADD --keep-git-dir=true https://opendev.org/openstack/glance.git#${GLANCE_GIT_REF} /src/glance
 RUN git -C /src/glance fetch --unshallow
-ADD --keep-git-dir=true https://opendev.org/openstack/glance_store.git#stable/2023.1 /src/glance_store
+ADD --keep-git-dir=true https://opendev.org/openstack/glance_store.git#unmaintained/2023.1 /src/glance_store
 RUN git -C /src/glance_store fetch --unshallow
 COPY patches/glance_store /patches/glance_store
 RUN git -C /src/glance_store apply --verbose /patches/glance_store/*
@@ -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}
 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 d3358e7..872e259 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=362bd38d902e006b50caf86f46581dfd16f7adab
 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 d9b4933..bd9426b 100644
--- a/images/horizon/Dockerfile
+++ b/images/horizon/Dockerfile
@@ -3,25 +3,25 @@
 
 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=b467683b1ed2aab4e38fe2cb2ac7ae5500e5d5c0
 ADD --keep-git-dir=true https://opendev.org/openstack/horizon.git#${HORIZON_GIT_REF} /src/horizon
 RUN git -C /src/horizon fetch --unshallow
-ADD --keep-git-dir=true https://opendev.org/openstack/designate-dashboard.git#stable/2023.1 /src/designate-dashboard
+ADD --keep-git-dir=true https://opendev.org/openstack/designate-dashboard.git#unmaintained/2023.1 /src/designate-dashboard
 RUN git -C /src/designate-dashboard fetch --unshallow
-ADD --keep-git-dir=true https://opendev.org/openstack/heat-dashboard.git#stable/2023.1 /src/heat-dashboard
+ADD --keep-git-dir=true https://opendev.org/openstack/heat-dashboard.git#unmaintained/2023.1 /src/heat-dashboard
 RUN git -C /src/heat-dashboard fetch --unshallow
-ADD --keep-git-dir=true https://opendev.org/openstack/ironic-ui.git#stable/2023.1 /src/ironic-ui
+ADD --keep-git-dir=true https://opendev.org/openstack/ironic-ui.git#unmaintained/2023.1 /src/ironic-ui
 RUN git -C /src/ironic-ui fetch --unshallow
-ADD --keep-git-dir=true https://opendev.org/openstack/magnum-ui.git#stable/2023.1 /src/magnum-ui
+ADD --keep-git-dir=true https://opendev.org/openstack/magnum-ui.git#unmaintained/2023.1 /src/magnum-ui
 RUN git -C /src/magnum-ui fetch --unshallow
 ADD --keep-git-dir=true https://opendev.org/openstack/manila-ui.git#stable/2023.1 /src/manila-ui
 RUN git -C /src/manila-ui fetch --unshallow
-ADD --keep-git-dir=true https://opendev.org/openstack/neutron-vpnaas-dashboard.git#stable/2023.1 /src/neutron-vpnaas-dashboard
+ADD --keep-git-dir=true https://opendev.org/openstack/neutron-vpnaas-dashboard.git#unmaintained/2023.1 /src/neutron-vpnaas-dashboard
 RUN git -C /src/neutron-vpnaas-dashboard fetch --unshallow
-ADD --keep-git-dir=true https://opendev.org/openstack/octavia-dashboard.git#stable/2023.1 /src/octavia-dashboard
+ADD --keep-git-dir=true https://opendev.org/openstack/octavia-dashboard.git#unmaintained/2023.1 /src/octavia-dashboard
 RUN git -C /src/octavia-dashboard fetch --unshallow
-ADD --keep-git-dir=true https://opendev.org/openstack/senlin-dashboard.git#stable/2023.1 /src/senlin-dashboard
+ADD --keep-git-dir=true https://opendev.org/openstack/senlin-dashboard.git#2023.1-eol /src/senlin-dashboard
 RUN git -C /src/senlin-dashboard fetch --unshallow
 COPY patches/horizon /patches/horizon
 RUN git -C /src/horizon apply --verbose /patches/horizon/*
@@ -42,7 +42,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 de35186..d7ba863 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=b9631245859596e53e048e64a17d9d4606169275
 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 af39fbc..6f96d7a 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 cf575c5..91dd106 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=084eeec60b259f2852002881cdb171a3f20584d4
 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 b63d8e4..ecdceb3 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-25T22:49:25Z
 
-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 2498857..78a8d2b 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 864f75c..2d8225b 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=30ab9c9f5c7d5787054560e0527314509e61a897
 ADD --keep-git-dir=true https://opendev.org/openstack/magnum.git#${MAGNUM_GIT_REF} /src/magnum
 RUN git -C /src/magnum fetch --unshallow
@@ -24,7 +24,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 47e5e55..f9d2573 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=7dbba77f8559532f46db3be24f698dbd81846279
 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 8774a78..c7f7355 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 e97e6d3..fc36c48 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=0c9735dfa92ba7ed0694f4b50356959fa4a145f6
 ADD --keep-git-dir=true https://opendev.org/openstack/neutron.git#${NEUTRON_GIT_REF} /src/neutron
 RUN git -C /src/neutron fetch --unshallow
@@ -27,7 +27,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 8f81864..c3976d7 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 5f64afe..7903801 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=f732f8476851e6272d8ad9937f54b918795844e8
 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 4ee530c..11f73c7 100644
--- a/images/octavia/Dockerfile
+++ b/images/octavia/Dockerfile
@@ -3,11 +3,11 @@
 
 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=06251e9716719dd8f62144ecd41d26360a539f7d
 ADD --keep-git-dir=true https://opendev.org/openstack/octavia.git#${OCTAVIA_GIT_REF} /src/octavia
 RUN git -C /src/octavia fetch --unshallow
-ADD --keep-git-dir=true https://opendev.org/openstack/ovn-octavia-provider.git#stable/2023.1 /src/ovn-octavia-provider
+ADD --keep-git-dir=true https://opendev.org/openstack/ovn-octavia-provider.git#unmaintained/2023.1 /src/ovn-octavia-provider
 RUN git -C /src/ovn-octavia-provider fetch --unshallow
 RUN --mount=type=cache,mode=0755,target=/root/.cache/pip,sharing=private <<EOF bash -xe
 pip3 install \
@@ -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 70129cd..d968a31 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 f408026..ff25dd4 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=c15ff09802a7cc4561275c9c0dbcfed9213c6e11
 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 de7a8e8..4859b29 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 3b175b9..644737b 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=b3652feea1855c9481c9441976379d9851c0c62f
 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 588dacd..6293ecd 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 145710d..25b5854 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 \
@@ -22,7 +22,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 6fb7f79..0f9a6e9 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 3522bf6..0c1cb2e 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 581e3f0..5f61784 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/caracal main
diff --git a/images/ubuntu/Dockerfile b/images/ubuntu/Dockerfile
index 2aa0428..89cae3d 100644
--- a/images/ubuntu/Dockerfile
+++ b/images/ubuntu/Dockerfile
@@ -1,5 +1,5 @@
 # SPDX-License-Identifier: Apache-2.0
 # Atmosphere-Rebuild-Time: 2024-06-25T22:49:25Z
 
-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