blob: bc04d96d461b82495ffb71eadedcb0dbe45230e5 [file] [log] [blame]
Mohammed Naserfe5e63b2025-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
18target "ubuntu-cloud-archive" {
19 context = "images/ubuntu-cloud-archive"
20 platforms = ["linux/amd64", "linux/arm64"]
21
22 contexts = {
23 "ubuntu" = "target:ubuntu"
24 }
25}
26
27target "python-base" {
28 context = "images/python-base"
29 platforms = ["linux/amd64", "linux/arm64"]
30
31 contexts = {
32 "ubuntu-cloud-archive" = "target:ubuntu-cloud-archive"
33 }
34}
35
36target "openstack-venv-builder" {
37 context = "images/openstack-venv-builder"
38 platforms = ["linux/amd64", "linux/arm64"]
39
40 contexts = {
41 "ubuntu-cloud-archive" = "target:ubuntu-cloud-archive"
42 "python-base" = "target:python-base"
43 }
44}
45
46target "openstack-runtime" {
47 context = "images/openstack-runtime"
48 platforms = ["linux/amd64", "linux/arm64"]
49
50 contexts = {
51 "base" = "target:ubuntu-cloud-archive"
52 }
53}
54
55target "openstack-python-runtime" {
56 context = "images/openstack-runtime"
57 platforms = ["linux/amd64", "linux/arm64"]
58
59 contexts = {
60 "base" = "target:python-base"
61 }
62}
63
64target "keepalived" {
65 context = "images/keepalived"
66 platforms = ["linux/amd64", "linux/arm64"]
67
68 contexts = {
69 "ubuntu" = "target:ubuntu"
70 }
71
72 tags = [
73 "${REGISTRY}/keepalived:${TAG}"
74 ]
75}
76
77target "kubernetes-entrypoint" {
78 context = "images/kubernetes-entrypoint"
79 platforms = ["linux/amd64", "linux/arm64"]
80
81 contexts = {
82 "golang" = "docker-image://docker.io/library/golang:1.21"
83 }
84
85 tags = [
86 "${REGISTRY}/kubernetes-entrypoint:${TAG}"
87 ]
88}
89
90target "libvirtd" {
91 context = "images/libvirtd"
92 platforms = ["linux/amd64", "linux/arm64"]
93
94 contexts = {
95 "openstack-runtime" = "target:openstack-runtime"
96 }
97
98 args = {
99 PROJECT = "nova"
100 }
101
102 tags = [
103 "${REGISTRY}/libvirtd:${TAG}"
104 ]
105}
106
107target "netoffload" {
108 context = "images/netoffload"
109 platforms = ["linux/amd64", "linux/arm64"]
110
111 contexts = {
112 "golang" = "docker-image://docker.io/library/golang:1.20"
113 "ubuntu" = "target:ubuntu"
114 }
115
116 tags = [
117 "${REGISTRY}/netoffload:${TAG}"
118 ]
119}
120
121target "nova-ssh" {
122 context = "images/nova-ssh"
123 platforms = ["linux/amd64", "linux/arm64"]
124
125 contexts = {
126 "openstack-runtime" = "target:openstack-runtime"
127 }
128
129 args = {
130 PROJECT = "nova"
131 }
132
133 tags = [
134 "${REGISTRY}/nova-ssh:${TAG}"
135 ]
136}
137
138target "openvswitch" {
139 context = "images/openvswitch"
140 platforms = ["linux/amd64", "linux/arm64"]
141
142 contexts = {
143 "centos" = "docker-image://quay.io/centos/centos:stream9"
144 }
145
146 tags = [
147 "${REGISTRY}/openvswitch:${TAG}"
148 ]
149}
150
151target "ovn" {
152 name = "ovn-${component}"
153 matrix = {
154 component = ["host", "central"]
155 }
156
157 context = "images/ovn"
158 platforms = ["linux/amd64", "linux/arm64"]
159
160 contexts = {
161 "golang" = "docker-image://docker.io/library/golang:1.20"
162 "openvswitch" = "target:openvswitch"
163 }
164
165 args = {
166 OVN_COMPONENT = "${component}"
167 }
168
169 tags = [
170 "${REGISTRY}/ovn-${component}:${TAG}"
171 ]
172}
173
174target "python-openstackclient" {
175 context = "images/python-openstackclient"
176 platforms = ["linux/amd64", "linux/arm64"]
177
178 contexts = {
179 "openstack-venv-builder" = "target:openstack-venv-builder"
180 "python-base" = "target:python-base"
181 }
182
183 tags = [
184 "${REGISTRY}/python-openstackclient:${TAG}"
185 ]
186}
187
188target "openstack" {
189 name = "openstack-${service}"
190 matrix = {
191 service = [
192 "barbican",
193 "cinder",
194 "designate",
195 "glance",
196 "heat",
197 "horizon",
198 "ironic",
199 "keystone",
200 "magnum",
201 "manila",
202 "neutron",
203 "nova",
204 "octavia",
205 "placement",
Mohammed Naser4c92a7f2025-01-29 11:15:23 -0500206 "senlin",
Mohammed Naserfe5e63b2025-01-18 15:49:44 -0500207 "staffeln",
208 "tempest",
209 ]
210 }
211
212 context = "images/${service}"
213 platforms = ["linux/amd64", "linux/arm64"]
214
215 args = {
216 PROJECT = "${service}"
217 }
218
219 contexts = {
220 "openstack-venv-builder" = "target:openstack-venv-builder"
221 "openstack-python-runtime" = "target:openstack-python-runtime"
222 }
223
224 tags = [
225 "${REGISTRY}/${service}:${TAG}"
226 ]
227}
228
229group "default" {
230 targets = [
231 "keepalived",
232 "kubernetes-entrypoint",
233 "libvirtd",
234 "netoffload",
235 "nova-ssh",
236 "openstack-barbican",
237 "openstack-cinder",
238 "openstack-designate",
239 "openstack-glance",
240 "openstack-heat",
241 "openstack-horizon",
242 "openstack-ironic",
243 "openstack-keystone",
244 "openstack-magnum",
245 "openstack-manila",
246 "openstack-neutron",
247 "openstack-nova",
248 "openstack-octavia",
249 "openstack-placement",
Mohammed Naser4c92a7f2025-01-29 11:15:23 -0500250 "openstack-senlin",
Mohammed Naserfe5e63b2025-01-18 15:49:44 -0500251 "openstack-staffeln",
252 "openstack-tempest",
253 "openvswitch",
254 "ovn-central",
255 "ovn-host",
256 "python-openstackclient",
257 ]
258}