Skip to content

Commit ca519e1

Browse files
authored
Merge pull request #122 from crazy-max/buildx-inspect-fup
buildx: handle new fields when parsing inspect output
2 parents b13ef76 + ab02f62 commit ca519e1

File tree

6 files changed

+400
-25
lines changed

6 files changed

+400
-25
lines changed

__tests__/buildx/builder.test.ts

+183
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,189 @@ describe('parseInspect', () => {
210210
}
211211
]
212212
}
213+
],
214+
[
215+
'inspect8.txt',
216+
{
217+
"name": "builder-52aa0611-faf0-42ac-a940-461e4e287d68",
218+
"driver": "docker-container",
219+
"lastActivity": new Date("2023-06-13T13:52:31.000Z"),
220+
"nodes": [
221+
{
222+
"buildkit": "v0.11.6",
223+
"buildkitd-flags": "--debug --allow-insecure-entitlement security.insecure --allow-insecure-entitlement network.host",
224+
"driver-opts": [
225+
"image=moby/buildkit:buildx-stable-1",
226+
"network=host",
227+
],
228+
"endpoint": "unix:///var/run/docker.sock",
229+
"name": "builder-52aa0611-faf0-42ac-a940-461e4e287d680",
230+
"platforms": "linux/amd64,linux/amd64/v2,linux/amd64/v3,linux/amd64/v4,linux/arm64,linux/riscv64,linux/ppc64le,linux/s390x,linux/386,linux/mips64le,linux/mips64,linux/arm/v7,linux/arm/v6",
231+
"status": "running",
232+
"labels": {
233+
"org.mobyproject.buildkit.worker.executor": "oci",
234+
"org.mobyproject.buildkit.worker.hostname": "fv-az572-38",
235+
"org.mobyproject.buildkit.worker.network": "host",
236+
"org.mobyproject.buildkit.worker.oci.process-mode": "sandbox",
237+
"org.mobyproject.buildkit.worker.selinux.enabled": "false",
238+
"org.mobyproject.buildkit.worker.snapshotter": "overlayfs",
239+
},
240+
"gcPolicy": [
241+
{
242+
"all": false,
243+
"filter": [
244+
"type==source.local",
245+
"type==exec.cachemount",
246+
"type==source.git.checkout"
247+
],
248+
"keepDuration": "48h0m0s",
249+
"keepBytes": "488.3MiB",
250+
},
251+
{
252+
"all": false,
253+
"keepDuration": "1440h0m0s",
254+
"keepBytes": "8.382GiB",
255+
},
256+
{
257+
"all": false,
258+
"keepBytes": "8.382GiB",
259+
},
260+
{
261+
"all": true,
262+
"keepBytes": "8.382GiB",
263+
}
264+
]
265+
}
266+
]
267+
}
268+
],
269+
[
270+
'inspect9.txt',
271+
{
272+
"name": "default",
273+
"driver": "docker",
274+
"lastActivity": new Date("2023-06-13T18:13:43.000Z"),
275+
"nodes": [
276+
{
277+
"buildkit": "v0.11.7-0.20230525183624-798ad6b0ce9f",
278+
"endpoint": "default",
279+
"name": "default",
280+
"platforms": "linux/amd64,linux/amd64/v2,linux/amd64/v3,linux/arm64,linux/riscv64,linux/ppc64le,linux/s390x,linux/386,linux/mips64le,linux/mips64,linux/arm/v7,linux/arm/v6",
281+
"status": "running",
282+
"gcPolicy": [
283+
{
284+
"all": true,
285+
"keepBytes": "100GiB",
286+
}
287+
]
288+
}
289+
]
290+
}
291+
],
292+
[
293+
'inspect10.txt',
294+
{
295+
"name": "remote-builder",
296+
"driver": "remote",
297+
"lastActivity": new Date("2023-04-20T12:47:49.000Z"),
298+
"nodes": [
299+
{
300+
"name": "remote-builder0",
301+
"endpoint": "docker-container://buildx_buildkit_dk-remote-builder0",
302+
"status": "inactive"
303+
},
304+
{
305+
"name": "aws_graviton2",
306+
"endpoint": "tcp://10.0.0.1:1234",
307+
"driver-opts": [
308+
"cacert=/home/user/.certs/aws_graviton2/ca.pem",
309+
"cert=/home/user/.certs/aws_graviton2/cert.pem",
310+
"key=/home/user/.certs/aws_graviton2/key.pem"
311+
],
312+
"status": "running",
313+
"buildkit": "v0.11.6",
314+
"platforms": "darwin/arm64,linux/arm64,linux/arm/v5,linux/arm/v6,linux/arm/v7,windows/arm64",
315+
"labels": {
316+
"org.mobyproject.buildkit.worker.executor": "oci",
317+
"org.mobyproject.buildkit.worker.hostname": "77ebc22e2d82",
318+
"org.mobyproject.buildkit.worker.network": "host",
319+
"org.mobyproject.buildkit.worker.oci.process-mode": "sandbox",
320+
"org.mobyproject.buildkit.worker.selinux.enabled": "false",
321+
"org.mobyproject.buildkit.worker.snapshotter": "overlayfs"
322+
},
323+
"gcPolicy": [
324+
{
325+
"all": false,
326+
"filter": [
327+
"type==source.local",
328+
"type==exec.cachemount",
329+
"type==source.git.checkout"
330+
],
331+
"keepDuration": "48h0m0s",
332+
"keepBytes": "488.3MiB"
333+
},
334+
{
335+
"all": false,
336+
"keepDuration": "1440h0m0s",
337+
"keepBytes": "23.28GiB"
338+
},
339+
{
340+
"all": false,
341+
"keepBytes": "23.28GiB"
342+
},
343+
{
344+
"all": true,
345+
"keepBytes": "23.28GiB"
346+
}
347+
]
348+
},
349+
{
350+
"name": "linuxone_s390x",
351+
"endpoint": "tcp://10.0.0.2:1234",
352+
"driver-opts": [
353+
"cacert=/home/user/.certs/linuxone_s390x/ca.pem",
354+
"cert=/home/user/.certs/linuxone_s390x/cert.pem",
355+
"key=/home/user/.certs/linuxone_s390x/key.pem"
356+
],
357+
"status": "running",
358+
"buildkit": "v0.11.6",
359+
"platforms": "linux/s390x",
360+
"labels": {
361+
"org.mobyproject.buildkit.worker.executor": "oci",
362+
"org.mobyproject.buildkit.worker.hostname": "9d0d62a96818",
363+
"org.mobyproject.buildkit.worker.network": "host",
364+
"org.mobyproject.buildkit.worker.oci.process-mode": "sandbox",
365+
"org.mobyproject.buildkit.worker.selinux.enabled": "false",
366+
"org.mobyproject.buildkit.worker.snapshotter": "overlayfs"
367+
},
368+
"gcPolicy": [
369+
{
370+
"all": false,
371+
"keepBytes": "488.3MiB",
372+
"filter": [
373+
"type==source.local",
374+
"type==exec.cachemount",
375+
"type==source.git.checkout"
376+
],
377+
"keepDuration": "48h0m0s"
378+
},
379+
{
380+
"all": false,
381+
"keepDuration": "1440h0m0s",
382+
"keepBytes": "9.313GiB"
383+
},
384+
{
385+
"all": false,
386+
"keepBytes": "9.313GiB"
387+
},
388+
{
389+
"all": true,
390+
"keepBytes": "9.313GiB"
391+
}
392+
]
393+
}
394+
],
395+
}
213396
]
214397
])('given %p', async (inspectFile, expected) => {
215398
expect(await Builder.parseInspect(fs.readFileSync(path.join(fixturesDir, inspectFile)).toString())).toEqual(expected);

__tests__/fixtures/inspect10.txt

+67
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
Name: remote-builder
2+
Driver: remote
3+
Last Activity: 2023-04-20 12:47:49 +0000 UTC
4+
5+
Nodes:
6+
Name: remote-builder0
7+
Endpoint: docker-container://buildx_buildkit_dk-remote-builder0
8+
Status: inactive
9+
Platforms:
10+
11+
Name: aws_graviton2
12+
Endpoint: tcp://10.0.0.1:1234
13+
Driver Options: cacert="/home/user/.certs/aws_graviton2/ca.pem" cert="/home/user/.certs/aws_graviton2/cert.pem" key="/home/user/.certs/aws_graviton2/key.pem"
14+
Status: running
15+
Buildkit: v0.11.6
16+
Platforms: darwin/arm64*, linux/arm64*, linux/arm/v5*, linux/arm/v6*, linux/arm/v7*, windows/arm64*
17+
Labels:
18+
org.mobyproject.buildkit.worker.executor: oci
19+
org.mobyproject.buildkit.worker.hostname: 77ebc22e2d82
20+
org.mobyproject.buildkit.worker.network: host
21+
org.mobyproject.buildkit.worker.oci.process-mode: sandbox
22+
org.mobyproject.buildkit.worker.selinux.enabled: false
23+
org.mobyproject.buildkit.worker.snapshotter: overlayfs
24+
GC Policy rule#0:
25+
All: false
26+
Filters: type==source.local,type==exec.cachemount,type==source.git.checkout
27+
Keep Duration: 48h0m0s
28+
Keep Bytes: 488.3MiB
29+
GC Policy rule#1:
30+
All: false
31+
Keep Duration: 1440h0m0s
32+
Keep Bytes: 23.28GiB
33+
GC Policy rule#2:
34+
All: false
35+
Keep Bytes: 23.28GiB
36+
GC Policy rule#3:
37+
All: true
38+
Keep Bytes: 23.28GiB
39+
40+
Name: linuxone_s390x
41+
Endpoint: tcp://10.0.0.2:1234
42+
Driver Options: cacert="/home/user/.certs/linuxone_s390x/ca.pem" cert="/home/user/.certs/linuxone_s390x/cert.pem" key="/home/user/.certs/linuxone_s390x/key.pem"
43+
Status: running
44+
Buildkit: v0.11.6
45+
Platforms: linux/s390x*
46+
Labels:
47+
org.mobyproject.buildkit.worker.executor: oci
48+
org.mobyproject.buildkit.worker.hostname: 9d0d62a96818
49+
org.mobyproject.buildkit.worker.network: host
50+
org.mobyproject.buildkit.worker.oci.process-mode: sandbox
51+
org.mobyproject.buildkit.worker.selinux.enabled: false
52+
org.mobyproject.buildkit.worker.snapshotter: overlayfs
53+
GC Policy rule#0:
54+
All: false
55+
Filters: type==source.local,type==exec.cachemount,type==source.git.checkout
56+
Keep Duration: 48h0m0s
57+
Keep Bytes: 488.3MiB
58+
GC Policy rule#1:
59+
All: false
60+
Keep Duration: 1440h0m0s
61+
Keep Bytes: 9.313GiB
62+
GC Policy rule#2:
63+
All: false
64+
Keep Bytes: 9.313GiB
65+
GC Policy rule#3:
66+
All: true
67+
Keep Bytes: 9.313GiB

__tests__/fixtures/inspect8.txt

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
Name: builder-52aa0611-faf0-42ac-a940-461e4e287d68
2+
Driver: docker-container
3+
Last Activity: 2023-06-13 13:52:31 +0000 UTC
4+
5+
Nodes:
6+
Name: builder-52aa0611-faf0-42ac-a940-461e4e287d680
7+
Endpoint: unix:///var/run/docker.sock
8+
Driver Options: image="moby/buildkit:buildx-stable-1" network="host"
9+
Status: running
10+
Flags: --debug --allow-insecure-entitlement security.insecure --allow-insecure-entitlement network.host
11+
Buildkit: v0.11.6
12+
Platforms: linux/amd64, linux/amd64/v2, linux/amd64/v3, linux/amd64/v4, linux/arm64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/mips64le, linux/mips64, linux/arm/v7, linux/arm/v6
13+
Labels:
14+
org.mobyproject.buildkit.worker.executor: oci
15+
org.mobyproject.buildkit.worker.hostname: fv-az572-38
16+
org.mobyproject.buildkit.worker.network: host
17+
org.mobyproject.buildkit.worker.oci.process-mode: sandbox
18+
org.mobyproject.buildkit.worker.selinux.enabled: false
19+
org.mobyproject.buildkit.worker.snapshotter: overlayfs
20+
GC Policy rule#0:
21+
All: false
22+
Filters: type==source.local,type==exec.cachemount,type==source.git.checkout
23+
Keep Duration: 48h0m0s
24+
Keep Bytes: 488.3MiB
25+
GC Policy rule#1:
26+
All: false
27+
Keep Duration: 1440h0m0s
28+
Keep Bytes: 8.382GiB
29+
GC Policy rule#2:
30+
All: false
31+
Keep Bytes: 8.382GiB
32+
GC Policy rule#3:
33+
All: true
34+
Keep Bytes: 8.382GiB

__tests__/fixtures/inspect9.txt

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
Name: default
2+
Driver: docker
3+
Last Activity: 2023-06-13 18:13:43 +0000 UTC
4+
5+
Nodes:
6+
Name: default
7+
Endpoint: default
8+
Status: running
9+
Buildkit: v0.11.7-0.20230525183624-798ad6b0ce9f
10+
Platforms: linux/amd64, linux/amd64/v2, linux/amd64/v3, linux/arm64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/mips64le, linux/mips64, linux/arm/v7, linux/arm/v6
11+
GC Policy rule#0:
12+
All: true
13+
Filters:
14+
Keep Bytes: 100GiB

0 commit comments

Comments
 (0)