fix(ovn): pin host names (#863)

diff --git a/images/Earthfile b/images/Earthfile
index 4c0e423..f5ff111 100644
--- a/images/Earthfile
+++ b/images/Earthfile
@@ -9,6 +9,17 @@
     apt-get clean && \
     rm -rf /var/lib/apt/lists/*
 
+DNF_INSTALL:
+  COMMAND
+  ARG PACKAGES
+  RUN \
+    dnf -y install \
+      ${PACKAGES} \
+      --setopt=install_weak_deps=False \
+      --setopt=tsflags=nodocs && \
+    dnf -y clean all && \
+    rm -rf /var/cache/dnf
+
 CREATE_PROJECT_USER:
   COMMAND
   ARG PROJECT
diff --git a/images/cloud-archive-base/Earthfile b/images/cloud-archive-base/Earthfile
index ab0f46a..473d5d8 100644
--- a/images/cloud-archive-base/Earthfile
+++ b/images/cloud-archive-base/Earthfile
@@ -14,6 +14,8 @@
       RUN echo "deb http://ubuntu-cloud.archive.canonical.com/ubuntu $(lsb_release -sc)-updates/antelope main" > /etc/apt/sources.list.d/cloudarchive.list
     ELSE IF [ "${RELEASE}" = "2023.2" ]
       RUN echo "deb http://ubuntu-cloud.archive.canonical.com/ubuntu $(lsb_release -sc)-updates/bobcat main" > /etc/apt/sources.list.d/cloudarchive.list
+    ELSE IF [ "${RELEASE}" = "master" ]
+      RUN echo "deb http://ubuntu-cloud.archive.canonical.com/ubuntu $(lsb_release -sc)-updates/caracal main" > /etc/apt/sources.list.d/cloudarchive.list
     ELSE
       RUN echo "${RELEASE} is not supported on $(lsb_release -sc)"
       RUN exit 1
diff --git a/images/libvirtd/Earthfile b/images/libvirtd/Earthfile
new file mode 100644
index 0000000..07c358f
--- /dev/null
+++ b/images/libvirtd/Earthfile
@@ -0,0 +1,21 @@
+VERSION 0.7
+
+platform-image:
+  ARG RELEASE=zed
+  FROM ../cloud-archive-base+image --RELEASE=${RELEASE}
+  LABEL org.opencontainers.image.source=https://github.com/vexxhost/atmosphere
+  COPY keyrings/ceph.gpg /etc/apt/trusted.gpg.d/
+  IF [ "$(lsb_release -sc)" = "focal" ]
+    RUN echo "deb http://download.ceph.com/debian-quincy/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/ceph.list
+  ELSE IF [ "$(lsb_release -sc)" = "jammy" ]
+    RUN echo "deb http://download.ceph.com/debian-reef/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/ceph.list
+  ELSE
+    RUN echo "${RELEASE} is not supported on $(lsb_release -sc)"
+    RUN exit 1
+  END
+  DO ../+APT_INSTALL --PACKAGES="ceph-common cgroup-tools dmidecode ebtables iproute2 ipxe-qemu kmod libvirt-clients libvirt-daemon-system openssh-client openvswitch-switch ovmf pm-utils qemu-block-extra qemu-efi qemu-kvm seabios"
+  DO ../+CREATE_PROJECT_USER --PROJECT=nova
+  SAVE IMAGE --push ghcr.io/vexxhost/atmosphere/libvirtd:${RELEASE}
+
+image:
+  BUILD --platform linux/amd64 --platform linux/arm64 +platform-image
diff --git a/images/libvirtd/keyrings/ceph.gpg b/images/libvirtd/keyrings/ceph.gpg
new file mode 100644
index 0000000..c5d8bd3
--- /dev/null
+++ b/images/libvirtd/keyrings/ceph.gpg
Binary files differ
diff --git a/images/manila/patches/0000-fix-stop-using-batch_op-for-rename_table.patch b/images/manila/patches/0000-fix-stop-using-batch_op-for-rename_table.patch
new file mode 100644
index 0000000..a55e4e6
--- /dev/null
+++ b/images/manila/patches/0000-fix-stop-using-batch_op-for-rename_table.patch
@@ -0,0 +1,26 @@
+From eb7f03c667261557d7f809f7851bad6b3eea4646 Mon Sep 17 00:00:00 2001
+From: Mohammed Naser <mnaser@vexxhost.com>
+Date: Mon, 08 Jan 2024 14:00:37 -0500
+Subject: [PATCH] fix: Stop using batch_op for rename_table
+
+For migrations that rename tables, batch_op is not needed, which
+is also even causing issues with newer versions of Alembic.
+
+Change-Id: Ib43f5a24c497f7d97cb2d852b99489b0c3bd75fb
+---
+
+diff --git a/manila/db/migrations/alembic/versions/5077ffcc5f1c_add_share_instances.py b/manila/db/migrations/alembic/versions/5077ffcc5f1c_add_share_instances.py
+index 42d26b7..373e308 100644
+--- a/manila/db/migrations/alembic/versions/5077ffcc5f1c_add_share_instances.py
++++ b/manila/db/migrations/alembic/versions/5077ffcc5f1c_add_share_instances.py
+@@ -245,8 +245,8 @@
+     with op.batch_alter_table("share_export_locations") as batch_op:
+         batch_op.drop_constraint('sel_id_fk', type_='foreignkey')
+         batch_op.drop_column('share_id')
+-        batch_op.rename_table('share_export_locations',
+-                              'share_instance_export_locations')
++    op.rename_table('share_export_locations',
++                            'share_instance_export_locations')
+ 
+ 
+ def downgrade_export_locations_table(connection):
diff --git a/images/openvswitch/Earthfile b/images/openvswitch/Earthfile
new file mode 100644
index 0000000..d53786f
--- /dev/null
+++ b/images/openvswitch/Earthfile
@@ -0,0 +1,16 @@
+VERSION 0.7
+
+ARG --global SERIES=3.1
+ARG --global VERSION=3.1.0-65
+
+platform-image:
+  FROM quay.io/centos/centos:stream9
+  LABEL org.opencontainers.image.source=https://github.com/vexxhost/atmosphere
+  DO ../+DNF_INSTALL --PACKAGES "centos-release-nfv-openvswitch.noarch"
+  DO ../+DNF_INSTALL --PACKAGES "openvswitch${SERIES}-${VERSION}.el9s iptables"
+  SAVE IMAGE --push \
+    ghcr.io/vexxhost/atmosphere/openvswitch:${SERIES} \
+    ghcr.io/vexxhost/atmosphere/openvswitch:${VERSION}
+
+image:
+  BUILD --platform linux/amd64 --platform linux/arm64 +platform-image
diff --git a/images/ovn/Earthfile b/images/ovn/Earthfile
new file mode 100644
index 0000000..436535a
--- /dev/null
+++ b/images/ovn/Earthfile
@@ -0,0 +1,26 @@
+VERSION 0.7
+
+ARG --global SERIES=23.03
+ARG --global VERSION=23.03.0-69
+
+component-image:
+  FROM ../openvswitch+platform-image
+  DO ../+DNF_INSTALL --PACKAGES "firewalld-filesystem hostname ovn${SERIES}-${VERSION}.el9s procps-ng"
+  ARG --required NAME
+  DO ../+DNF_INSTALL --PACKAGES "ovn${SERIES}-${NAME}-${VERSION}.el9s"
+  IF [ "${NAME}" = "host" ]
+    COPY ../kubernetes+image/kubectl /usr/local/bin/kubectl
+  END
+  SAVE IMAGE --push \
+    ghcr.io/vexxhost/atmosphere/ovn-${NAME}:${SERIES} \
+    ghcr.io/vexxhost/atmosphere/ovn-${NAME}:${VERSION}
+
+central:
+  BUILD +component-image --NAME central
+
+host:
+  BUILD +component-image --NAME host
+
+images:
+  BUILD +central
+  BUILD --platform linux/amd64 --platform linux/arm64 +host
diff --git a/images/tempest/Earthfile b/images/tempest/Earthfile
new file mode 100644
index 0000000..062d82a
--- /dev/null
+++ b/images/tempest/Earthfile
@@ -0,0 +1,18 @@
+VERSION 0.7
+
+image:
+  ARG PROJECT=tempest
+  ARG RELEASE=master
+  ARG REF=699749ec27897efe9bd7824664237c16c3339c03
+  FROM ../openstack-service+image \
+    --PROJECT ${PROJECT} \
+    --RELEASE ${RELEASE} \
+    --PROJECT_REF ${REF} \
+    --PIP_PACKAGES "git+https://github.com/openstack/barbican-tempest-plugin.git git+https://github.com/openstack/cinder-tempest-plugin.git git+https://github.com/openstack/heat-tempest-plugin.git git+https://github.com/openstack/keystone-tempest-plugin.git git+https://github.com/openstack/neutron-tempest-plugin.git"
+  DO \
+    ../+APT_INSTALL \
+    --PACKAGES "iputils-ping"
+  DO ../+APPLY_PATCHES
+  SAVE IMAGE --push \
+    ghcr.io/vexxhost/atmosphere/${PROJECT}:${RELEASE} \
+    ghcr.io/vexxhost/atmosphere/${PROJECT}:${REF}