blob: 60b0937a3fab27ce84e42b3b7d6384e3b627b1bd [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"
Mohammed Naser203b96b2025-02-13 13:23:51 -0500131 SHELL = "/bin/bash"
Mohammed Naserfe5e63b2025-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",
Mohammed Naser4c92a7f2025-01-29 11:15:23 -0500207 "senlin",
Mohammed Naserfe5e63b2025-01-18 15:49:44 -0500208 "staffeln",
209 "tempest",
210 ]
211 }
212
213 context = "images/${service}"
214 platforms = ["linux/amd64", "linux/arm64"]
215
216 args = {
217 PROJECT = "${service}"
218 }
219
220 contexts = {
221 "openstack-venv-builder" = "target:openstack-venv-builder"
222 "openstack-python-runtime" = "target:openstack-python-runtime"
223 }
224
225 tags = [
226 "${REGISTRY}/${service}:${TAG}"
227 ]
228}
229
230group "default" {
231 targets = [
232 "keepalived",
233 "kubernetes-entrypoint",
234 "libvirtd",
235 "netoffload",
236 "nova-ssh",
237 "openstack-barbican",
238 "openstack-cinder",
239 "openstack-designate",
240 "openstack-glance",
241 "openstack-heat",
242 "openstack-horizon",
243 "openstack-ironic",
244 "openstack-keystone",
245 "openstack-magnum",
246 "openstack-manila",
247 "openstack-neutron",
248 "openstack-nova",
249 "openstack-octavia",
250 "openstack-placement",
Mohammed Naser4c92a7f2025-01-29 11:15:23 -0500251 "openstack-senlin",
Mohammed Naserfe5e63b2025-01-18 15:49:44 -0500252 "openstack-staffeln",
253 "openstack-tempest",
254 "openvswitch",
255 "ovn-central",
256 "ovn-host",
257 "python-openstackclient",
258 ]
259}