blob: bc04d96d461b82495ffb71eadedcb0dbe45230e5 [file] [log] [blame]
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",
"senlin",
"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-senlin",
"openstack-staffeln",
"openstack-tempest",
"openvswitch",
"ovn-central",
"ovn-host",
"python-openstackclient",
]
}