blob: 5094d567b1a46b203c407c38bc2d323bd6f5ada5 [file] [log] [blame]
variable "REGISTRY" {
default = "registry.atmosphere.dev/library"
}
variable "CACHE_REGISTRY" {
default = "registry.atmosphere.dev/cache"
}
variable "PUSH_TO_CACHE" {
default = false
}
function "cache_from" {
params = [image]
result = ["type=registry,ref=${CACHE_REGISTRY}/${image}"]
}
function "cache_to" {
params = [image]
result = PUSH_TO_CACHE ? [format("%s,%s", cache_from(image)[0], "mode=max,image-manifest=true,oci-mediatypes=true,compression=zstd")] : []
}
target "ubuntu" {
context = "./images/ubuntu"
cache-from = cache_from("ubuntu")
cache-to = cache_to("ubuntu")
contexts = {
ubuntu = "docker-image://ubuntu:jammy-20240227"
}
}
target "git" {
context = "./images/git"
cache-from = cache_from("git")
cache-to = cache_to("git")
}
target "ubuntu-cloud-archive" {
name = "ubuntu-cloud-archive-${release.tgt}"
context = "./images/ubuntu-cloud-archive"
cache-from = cache_from("ubuntu-cloud-archive:${release.name}")
cache-to = cache_to("ubuntu-cloud-archive:${release.name}")
matrix = {
release = [
{
tgt = "zed",
name = "zed",
},
{
tgt = "bobcat",
name = "2023.2",
}
]
}
contexts = {
ubuntu = "target:ubuntu"
}
args = {
RELEASE = release.name
}
}
target "requirements" {
name = "requirements-${release.tgt}"
context = "./images/requirements"
cache-from = cache_from("requirements:${release.name}")
cache-to = cache_to("requirements:${release.name}")
matrix = {
release = [
{
tgt = "zed",
name = "zed",
},
{
tgt = "bobcat",
name = "2023.2",
}
]
}
contexts = {
ubuntu = "target:ubuntu"
}
args = {
RELEASE = release.name
}
}
target "openstack-venv-builder" {
name = "openstack-venv-builder-${release.tgt}"
context = "./images/openstack-venv-builder"
cache-from = cache_from("openstack-venv-builder:${release.name}")
cache-to = cache_to("openstack-venv-builder:${release.name}")
matrix = {
release = [
{
tgt = "zed",
name = "zed",
},
{
tgt = "bobcat",
name = "2023.2",
}
]
}
contexts = {
ubuntu-cloud-archive = "target:ubuntu-cloud-archive-${release.tgt}",
requirements = "target:requirements-${release.tgt}",
}
args = {
RELEASE = release.name
}
}
target "openstack-runtime" {
name = "openstack-runtime-${release.tgt}"
context = "./images/openstack-runtime"
cache-from = cache_from("openstack-runtime:${release.name}")
cache-to = cache_to("openstack-runtime:${release.name}")
matrix = {
release = [
{
tgt = "zed",
name = "zed",
},
{
tgt = "bobcat",
name = "2023.2",
}
]
}
contexts = {
ubuntu-cloud-archive = "target:ubuntu-cloud-archive-${release.tgt}",
}
args = {
RELEASE = release.name
}
}
target "barbican" {
name = "barbican-${release.tgt}"
context = "./images/barbican"
cache-from = cache_from("barbican:${release.name}")
cache-to = cache_to("barbican:${release.name}")
tags = [
"${REGISTRY}/barbican:${release.name}",
"${REGISTRY}/barbican:${release.ref}"
]
matrix = {
release = [
{
tgt = "bobcat",
name = "2023.2",
ref = "a00fcade4138ffc52cd9c84b5999297966f019b5"
}
]
}
contexts = {
openstack-venv-builder = "target:openstack-venv-builder-${release.tgt}"
openstack-runtime = "target:openstack-runtime-${release.tgt}",
git = "target:git"
}
args = {
RELEASE = release.name
PROJECT = "barbican"
BARBICAN_GIT_REF = release.ref
}
}
group "default" {
targets = [
"barbican"
]
}