blob: 29b68ba1cdc197de6a7ad7e6f5fcb5734f8a983c [file] [log] [blame]
Mohammed Naser7bda44d2025-01-18 15:49:44 -05001variable "REGISTRY" {
2 default = "harbor.atmosphere.dev/library"
3}
4
5variable "TAG" {
6 default = "main"
7}
8
9target "ubuntu" {
10 context = "images/ubuntu"
11 platforms = ["linux/amd64", "linux/arm64"]
12
13 contexts = {
14 "ubuntu" = "docker-image://docker.io/library/ubuntu:jammy-20240227"
15 }
16}
17
Mohammed Naser9acc76a2025-02-16 13:18:14 -050018target "ovsinit" {
19 context = "images/ovsinit"
20 platforms = ["linux/amd64", "linux/arm64"]
21
22 contexts = {
23 "runtime" = "docker-image://docker.io/library/debian:bullseye-slim"
24 "rust" = "docker-image://docker.io/library/rust:1.84-bullseye"
25 "src" = "./crates/ovsinit"
26 }
27}
28
Mohammed Naser7bda44d2025-01-18 15:49:44 -050029target "ubuntu-cloud-archive" {
30 context = "images/ubuntu-cloud-archive"
31 platforms = ["linux/amd64", "linux/arm64"]
32
33 contexts = {
34 "ubuntu" = "target:ubuntu"
35 }
36}
37
38target "python-base" {
39 context = "images/python-base"
40 platforms = ["linux/amd64", "linux/arm64"]
41
42 contexts = {
43 "ubuntu-cloud-archive" = "target:ubuntu-cloud-archive"
44 }
45}
46
47target "openstack-venv-builder" {
48 context = "images/openstack-venv-builder"
49 platforms = ["linux/amd64", "linux/arm64"]
50
51 contexts = {
52 "ubuntu-cloud-archive" = "target:ubuntu-cloud-archive"
53 "python-base" = "target:python-base"
54 }
55}
56
57target "openstack-runtime" {
58 context = "images/openstack-runtime"
59 platforms = ["linux/amd64", "linux/arm64"]
60
61 contexts = {
62 "base" = "target:ubuntu-cloud-archive"
63 }
64}
65
66target "openstack-python-runtime" {
67 context = "images/openstack-runtime"
68 platforms = ["linux/amd64", "linux/arm64"]
69
70 contexts = {
71 "base" = "target:python-base"
72 }
73}
74
75target "keepalived" {
76 context = "images/keepalived"
77 platforms = ["linux/amd64", "linux/arm64"]
78
79 contexts = {
80 "ubuntu" = "target:ubuntu"
81 }
82
83 tags = [
84 "${REGISTRY}/keepalived:${TAG}"
85 ]
86}
87
88target "kubernetes-entrypoint" {
89 context = "images/kubernetes-entrypoint"
90 platforms = ["linux/amd64", "linux/arm64"]
91
92 contexts = {
93 "golang" = "docker-image://docker.io/library/golang:1.21"
94 }
95
96 tags = [
97 "${REGISTRY}/kubernetes-entrypoint:${TAG}"
98 ]
99}
100
101target "libvirtd" {
102 context = "images/libvirtd"
103 platforms = ["linux/amd64", "linux/arm64"]
104
105 contexts = {
106 "openstack-runtime" = "target:openstack-runtime"
107 }
108
109 args = {
110 PROJECT = "nova"
111 }
112
113 tags = [
114 "${REGISTRY}/libvirtd:${TAG}"
115 ]
116}
117
118target "netoffload" {
119 context = "images/netoffload"
120 platforms = ["linux/amd64", "linux/arm64"]
121
122 contexts = {
123 "golang" = "docker-image://docker.io/library/golang:1.20"
124 "ubuntu" = "target:ubuntu"
125 }
126
127 tags = [
128 "${REGISTRY}/netoffload:${TAG}"
129 ]
130}
131
132target "nova-ssh" {
133 context = "images/nova-ssh"
134 platforms = ["linux/amd64", "linux/arm64"]
135
136 contexts = {
137 "openstack-runtime" = "target:openstack-runtime"
138 }
139
140 args = {
141 PROJECT = "nova"
Mohammed Naserc581e722025-02-13 13:23:51 -0500142 SHELL = "/bin/bash"
Mohammed Naser7bda44d2025-01-18 15:49:44 -0500143 }
144
145 tags = [
146 "${REGISTRY}/nova-ssh:${TAG}"
147 ]
148}
149
150target "openvswitch" {
151 context = "images/openvswitch"
152 platforms = ["linux/amd64", "linux/arm64"]
153
154 contexts = {
155 "centos" = "docker-image://quay.io/centos/centos:stream9"
156 }
157
158 tags = [
159 "${REGISTRY}/openvswitch:${TAG}"
160 ]
161}
162
163target "ovn" {
164 name = "ovn-${component}"
165 matrix = {
166 component = ["host", "central"]
167 }
168
169 context = "images/ovn"
170 platforms = ["linux/amd64", "linux/arm64"]
171
172 contexts = {
173 "golang" = "docker-image://docker.io/library/golang:1.20"
174 "openvswitch" = "target:openvswitch"
Mohammed Naser9acc76a2025-02-16 13:18:14 -0500175 "ovsinit" = "target:ovsinit"
Mohammed Naser7bda44d2025-01-18 15:49:44 -0500176 }
177
178 args = {
179 OVN_COMPONENT = "${component}"
180 }
181
182 tags = [
183 "${REGISTRY}/ovn-${component}:${TAG}"
184 ]
185}
186
187target "python-openstackclient" {
188 context = "images/python-openstackclient"
189 platforms = ["linux/amd64", "linux/arm64"]
190
191 contexts = {
192 "openstack-venv-builder" = "target:openstack-venv-builder"
193 "python-base" = "target:python-base"
194 }
195
196 tags = [
197 "${REGISTRY}/python-openstackclient:${TAG}"
198 ]
199}
200
201target "openstack" {
202 name = "openstack-${service}"
203 matrix = {
204 service = [
205 "barbican",
206 "cinder",
207 "designate",
208 "glance",
209 "heat",
210 "horizon",
211 "ironic",
212 "keystone",
213 "magnum",
214 "manila",
215 "neutron",
216 "nova",
217 "octavia",
218 "placement",
okozachenko1203f27197f2025-01-30 12:45:56 +1100219 "senlin",
Mohammed Naser7bda44d2025-01-18 15:49:44 -0500220 "staffeln",
221 "tempest",
222 ]
223 }
224
225 context = "images/${service}"
226 platforms = ["linux/amd64", "linux/arm64"]
227
228 args = {
229 PROJECT = "${service}"
230 }
231
232 contexts = {
Mohammed Naser7bda44d2025-01-18 15:49:44 -0500233 "openstack-python-runtime" = "target:openstack-python-runtime"
Mohammed Naser9acc76a2025-02-16 13:18:14 -0500234 "openstack-venv-builder" = "target:openstack-venv-builder"
235 "ovsinit" = "target:ovsinit"
Mohammed Naser7bda44d2025-01-18 15:49:44 -0500236 }
237
238 tags = [
239 "${REGISTRY}/${service}:${TAG}"
240 ]
241}
242
243group "default" {
244 targets = [
245 "keepalived",
246 "kubernetes-entrypoint",
247 "libvirtd",
248 "netoffload",
249 "nova-ssh",
250 "openstack-barbican",
251 "openstack-cinder",
252 "openstack-designate",
253 "openstack-glance",
254 "openstack-heat",
255 "openstack-horizon",
256 "openstack-ironic",
257 "openstack-keystone",
258 "openstack-magnum",
259 "openstack-manila",
260 "openstack-neutron",
261 "openstack-nova",
262 "openstack-octavia",
263 "openstack-placement",
okozachenko1203f27197f2025-01-30 12:45:56 +1100264 "openstack-senlin",
Mohammed Naser7bda44d2025-01-18 15:49:44 -0500265 "openstack-staffeln",
266 "openstack-tempest",
267 "openvswitch",
268 "ovn-central",
269 "ovn-host",
270 "python-openstackclient",
271 ]
272}