blob: fb1b0fe395a8f7373da0d8b39cb269f72fbd1b2a [file] [log] [blame]
Mohammed Naser564caa82025-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",
206 "staffeln",
207 "tempest",
208 ]
209 }
210
211 context = "images/${service}"
212 platforms = ["linux/amd64", "linux/arm64"]
213
214 args = {
215 PROJECT = "${service}"
216 }
217
218 contexts = {
219 "openstack-venv-builder" = "target:openstack-venv-builder"
220 "openstack-python-runtime" = "target:openstack-python-runtime"
221 }
222
223 tags = [
224 "${REGISTRY}/${service}:${TAG}"
225 ]
226}
227
228group "default" {
229 targets = [
230 "keepalived",
231 "kubernetes-entrypoint",
232 "libvirtd",
233 "netoffload",
234 "nova-ssh",
235 "openstack-barbican",
236 "openstack-cinder",
237 "openstack-designate",
238 "openstack-glance",
239 "openstack-heat",
240 "openstack-horizon",
241 "openstack-ironic",
242 "openstack-keystone",
243 "openstack-magnum",
244 "openstack-manila",
245 "openstack-neutron",
246 "openstack-nova",
247 "openstack-octavia",
248 "openstack-placement",
249 "openstack-staffeln",
250 "openstack-tempest",
251 "openvswitch",
252 "ovn-central",
253 "ovn-host",
254 "python-openstackclient",
255 ]
256}