blob: 14746b65290518d902429a132c4e427293128594 [file] [log] [blame]
Mohammed Naserf1ac3f82025-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"
Mohammed Naser942099f2025-02-13 13:23:51 -0500131 SHELL = "/bin/bash"
Mohammed Naserf1ac3f82025-01-18 15:49:44 -0500132 }
133
134 tags = [
135 "${REGISTRY}/nova-ssh:${TAG}"
136 ]
137}
138
139target "openvswitch" {
140 context = "images/openvswitch"
141 platforms = ["linux/amd64", "linux/arm64"]
142
143 contexts = {
144 "centos" = "docker-image://quay.io/centos/centos:stream9"
145 }
146
147 tags = [
148 "${REGISTRY}/openvswitch:${TAG}"
149 ]
150}
151
152target "ovn" {
153 name = "ovn-${component}"
154 matrix = {
155 component = ["host", "central"]
156 }
157
158 context = "images/ovn"
159 platforms = ["linux/amd64", "linux/arm64"]
160
161 contexts = {
162 "golang" = "docker-image://docker.io/library/golang:1.20"
163 "openvswitch" = "target:openvswitch"
164 }
165
166 args = {
167 OVN_COMPONENT = "${component}"
168 }
169
170 tags = [
171 "${REGISTRY}/ovn-${component}:${TAG}"
172 ]
173}
174
175target "python-openstackclient" {
176 context = "images/python-openstackclient"
177 platforms = ["linux/amd64", "linux/arm64"]
178
179 contexts = {
180 "openstack-venv-builder" = "target:openstack-venv-builder"
181 "python-base" = "target:python-base"
182 }
183
184 tags = [
185 "${REGISTRY}/python-openstackclient:${TAG}"
186 ]
187}
188
189target "openstack" {
190 name = "openstack-${service}"
191 matrix = {
192 service = [
193 "barbican",
194 "cinder",
195 "designate",
196 "glance",
197 "heat",
198 "horizon",
199 "ironic",
200 "keystone",
201 "magnum",
202 "manila",
203 "neutron",
204 "nova",
205 "octavia",
206 "placement",
207 "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",
250 "openstack-staffeln",
251 "openstack-tempest",
252 "openvswitch",
253 "ovn-central",
254 "ovn-host",
255 "python-openstackclient",
256 ]
257}