Switch to building with Depot
Change-Id: I4547e671e11f76e6776192cc68040d5e2ff61be9
diff --git a/docker-bake.hcl b/docker-bake.hcl
new file mode 100644
index 0000000..fb1b0fe
--- /dev/null
+++ b/docker-bake.hcl
@@ -0,0 +1,256 @@
+variable "REGISTRY" {
+ default = "harbor.atmosphere.dev/library"
+}
+
+variable "TAG" {
+ default = "main"
+}
+
+target "ubuntu" {
+ context = "images/ubuntu"
+ platforms = ["linux/amd64", "linux/arm64"]
+
+ contexts = {
+ "ubuntu" = "docker-image://docker.io/library/ubuntu:jammy-20240227"
+ }
+}
+
+target "ubuntu-cloud-archive" {
+ context = "images/ubuntu-cloud-archive"
+ platforms = ["linux/amd64", "linux/arm64"]
+
+ contexts = {
+ "ubuntu" = "target:ubuntu"
+ }
+}
+
+target "python-base" {
+ context = "images/python-base"
+ platforms = ["linux/amd64", "linux/arm64"]
+
+ contexts = {
+ "ubuntu-cloud-archive" = "target:ubuntu-cloud-archive"
+ }
+}
+
+target "openstack-venv-builder" {
+ context = "images/openstack-venv-builder"
+ platforms = ["linux/amd64", "linux/arm64"]
+
+ contexts = {
+ "ubuntu-cloud-archive" = "target:ubuntu-cloud-archive"
+ "python-base" = "target:python-base"
+ }
+}
+
+target "openstack-runtime" {
+ context = "images/openstack-runtime"
+ platforms = ["linux/amd64", "linux/arm64"]
+
+ contexts = {
+ "base" = "target:ubuntu-cloud-archive"
+ }
+}
+
+target "openstack-python-runtime" {
+ context = "images/openstack-runtime"
+ platforms = ["linux/amd64", "linux/arm64"]
+
+ contexts = {
+ "base" = "target:python-base"
+ }
+}
+
+target "keepalived" {
+ context = "images/keepalived"
+ platforms = ["linux/amd64", "linux/arm64"]
+
+ contexts = {
+ "ubuntu" = "target:ubuntu"
+ }
+
+ tags = [
+ "${REGISTRY}/keepalived:${TAG}"
+ ]
+}
+
+target "kubernetes-entrypoint" {
+ context = "images/kubernetes-entrypoint"
+ platforms = ["linux/amd64", "linux/arm64"]
+
+ contexts = {
+ "golang" = "docker-image://docker.io/library/golang:1.21"
+ }
+
+ tags = [
+ "${REGISTRY}/kubernetes-entrypoint:${TAG}"
+ ]
+}
+
+target "libvirtd" {
+ context = "images/libvirtd"
+ platforms = ["linux/amd64", "linux/arm64"]
+
+ contexts = {
+ "openstack-runtime" = "target:openstack-runtime"
+ }
+
+ args = {
+ PROJECT = "nova"
+ }
+
+ tags = [
+ "${REGISTRY}/libvirtd:${TAG}"
+ ]
+}
+
+target "netoffload" {
+ context = "images/netoffload"
+ platforms = ["linux/amd64", "linux/arm64"]
+
+ contexts = {
+ "golang" = "docker-image://docker.io/library/golang:1.20"
+ "ubuntu" = "target:ubuntu"
+ }
+
+ tags = [
+ "${REGISTRY}/netoffload:${TAG}"
+ ]
+}
+
+target "nova-ssh" {
+ context = "images/nova-ssh"
+ platforms = ["linux/amd64", "linux/arm64"]
+
+ contexts = {
+ "openstack-runtime" = "target:openstack-runtime"
+ }
+
+ args = {
+ PROJECT = "nova"
+ }
+
+ tags = [
+ "${REGISTRY}/nova-ssh:${TAG}"
+ ]
+}
+
+target "openvswitch" {
+ context = "images/openvswitch"
+ platforms = ["linux/amd64", "linux/arm64"]
+
+ contexts = {
+ "centos" = "docker-image://quay.io/centos/centos:stream9"
+ }
+
+ tags = [
+ "${REGISTRY}/openvswitch:${TAG}"
+ ]
+}
+
+target "ovn" {
+ name = "ovn-${component}"
+ matrix = {
+ component = ["host", "central"]
+ }
+
+ context = "images/ovn"
+ platforms = ["linux/amd64", "linux/arm64"]
+
+ contexts = {
+ "golang" = "docker-image://docker.io/library/golang:1.20"
+ "openvswitch" = "target:openvswitch"
+ }
+
+ args = {
+ OVN_COMPONENT = "${component}"
+ }
+
+ tags = [
+ "${REGISTRY}/ovn-${component}:${TAG}"
+ ]
+}
+
+target "python-openstackclient" {
+ context = "images/python-openstackclient"
+ platforms = ["linux/amd64", "linux/arm64"]
+
+ contexts = {
+ "openstack-venv-builder" = "target:openstack-venv-builder"
+ "python-base" = "target:python-base"
+ }
+
+ tags = [
+ "${REGISTRY}/python-openstackclient:${TAG}"
+ ]
+}
+
+target "openstack" {
+ name = "openstack-${service}"
+ matrix = {
+ service = [
+ "barbican",
+ "cinder",
+ "designate",
+ "glance",
+ "heat",
+ "horizon",
+ "ironic",
+ "keystone",
+ "magnum",
+ "manila",
+ "neutron",
+ "nova",
+ "octavia",
+ "placement",
+ "staffeln",
+ "tempest",
+ ]
+ }
+
+ context = "images/${service}"
+ platforms = ["linux/amd64", "linux/arm64"]
+
+ args = {
+ PROJECT = "${service}"
+ }
+
+ contexts = {
+ "openstack-venv-builder" = "target:openstack-venv-builder"
+ "openstack-python-runtime" = "target:openstack-python-runtime"
+ }
+
+ tags = [
+ "${REGISTRY}/${service}:${TAG}"
+ ]
+}
+
+group "default" {
+ targets = [
+ "keepalived",
+ "kubernetes-entrypoint",
+ "libvirtd",
+ "netoffload",
+ "nova-ssh",
+ "openstack-barbican",
+ "openstack-cinder",
+ "openstack-designate",
+ "openstack-glance",
+ "openstack-heat",
+ "openstack-horizon",
+ "openstack-ironic",
+ "openstack-keystone",
+ "openstack-magnum",
+ "openstack-manila",
+ "openstack-neutron",
+ "openstack-nova",
+ "openstack-octavia",
+ "openstack-placement",
+ "openstack-staffeln",
+ "openstack-tempest",
+ "openvswitch",
+ "ovn-central",
+ "ovn-host",
+ "python-openstackclient",
+ ]
+}