Skip to content

Commit b28413f

Browse files
authored
Merge pull request #3238 from AkihiroSuda/gomodjail
go.mod: experimental integration of gomodjail (library sandbox)
2 parents 8b8b267 + 6c43132 commit b28413f

File tree

2 files changed

+143
-111
lines changed

2 files changed

+143
-111
lines changed

.github/workflows/test.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -476,3 +476,35 @@ jobs:
476476
uses: ./.github/actions/upload_failure_logs_if_exists
477477
with:
478478
suffix: ${{ matrix.template }}
479+
480+
# gomodjail is a library sandbox for Go
481+
# https://github.com/AkihiroSuda/gomodjail
482+
#
483+
# This is an early experiment.
484+
# CI failures that only occurs with gomodjail shall not block merging PRs.
485+
gomodjail:
486+
name: "gomodjail (experimental; failures shall not block merging PRs)"
487+
runs-on: macos-15-large # Intel
488+
timeout-minutes: 30
489+
steps:
490+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
491+
with:
492+
fetch-depth: 1
493+
- uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5.3.0
494+
with:
495+
go-version: 1.24.x
496+
- name: Install gomodjail
497+
run: |
498+
set -eux -o pipefail
499+
git clone https://github.com/AkihiroSuda/gomodjail
500+
cd gomodjail
501+
make binaries install
502+
- name: Install Lima
503+
# gomodjail depends on symbols
504+
run: make KEEP_SYMBOLS=1 binaries install
505+
- name: Cache image used by templates/default.yaml
506+
uses: ./.github/actions/setup_cache_for_template
507+
with:
508+
template: templates/default.yaml
509+
- name: Smoke test
510+
run: gomodjail run --go-mod=./go.mod -- limactl start --tty=false

go.mod

Lines changed: 111 additions & 111 deletions
Original file line numberDiff line numberDiff line change
@@ -3,134 +3,134 @@ module github.com/lima-vm/lima
33
go 1.23.0
44

55
require (
6-
al.essio.dev/pkg/shellescape v1.5.1
7-
github.com/AlecAivazis/survey/v2 v2.3.7
6+
al.essio.dev/pkg/shellescape v1.5.1 // gomodjail:confined
7+
github.com/AlecAivazis/survey/v2 v2.3.7 // gomodjail:confined
88
github.com/Code-Hex/vz/v3 v3.6.0
99
github.com/Microsoft/go-winio v0.6.2
10-
github.com/apparentlymart/go-cidr v1.1.0
11-
github.com/balajiv113/fd v0.0.0-20230330094840-143eec500f3e
10+
github.com/apparentlymart/go-cidr v1.1.0 // gomodjail:confined
11+
github.com/balajiv113/fd v0.0.0-20230330094840-143eec500f3e // gomodjail:confined
1212
github.com/cheggaaa/pb/v3 v3.1.6
13-
github.com/containerd/containerd v1.7.25
14-
github.com/containerd/continuity v0.4.5
13+
github.com/containerd/containerd v1.7.25 // gomodjail:confined
14+
github.com/containerd/continuity v0.4.5 // gomodjail:confined
1515
github.com/containers/gvisor-tap-vsock v0.8.3
16-
github.com/coreos/go-semver v0.3.1
17-
github.com/cpuguy83/go-md2man/v2 v2.0.6
18-
github.com/cyphar/filepath-securejoin v0.4.1
19-
github.com/digitalocean/go-qemu v0.0.0-20221209210016-f035778c97f7
16+
github.com/coreos/go-semver v0.3.1 // gomodjail:confined
17+
github.com/cpuguy83/go-md2man/v2 v2.0.6 // gomodjail:confined
18+
github.com/cyphar/filepath-securejoin v0.4.1 // gomodjail:confined
19+
github.com/digitalocean/go-qemu v0.0.0-20221209210016-f035778c97f7 // gomodjail:confined
2020
github.com/diskfs/go-diskfs v1.5.0
21-
github.com/docker/go-units v0.5.0
22-
github.com/elastic/go-libaudit/v2 v2.6.1
23-
github.com/foxcpp/go-mockdns v1.1.0
24-
github.com/goccy/go-yaml v1.15.22
25-
github.com/google/go-cmp v0.6.0
26-
github.com/google/yamlfmt v0.16.0
27-
github.com/invopop/jsonschema v0.13.0
28-
github.com/lima-vm/go-qcow2reader v0.6.0
21+
github.com/docker/go-units v0.5.0 // gomodjail:confined
22+
github.com/elastic/go-libaudit/v2 v2.6.1 // gomodjail:confined
23+
github.com/foxcpp/go-mockdns v1.1.0 // gomodjail:confined
24+
github.com/goccy/go-yaml v1.15.22 // gomodjail:confined
25+
github.com/google/go-cmp v0.6.0 // gomodjail:confined
26+
github.com/google/yamlfmt v0.16.0 // gomodjail:confined
27+
github.com/invopop/jsonschema v0.13.0 // gomodjail:confined
28+
github.com/lima-vm/go-qcow2reader v0.6.0 // gomodjail:confined
2929
github.com/lima-vm/sshocker v0.3.5
30-
github.com/mattn/go-isatty v0.0.20
31-
github.com/mattn/go-shellwords v1.0.12
30+
github.com/mattn/go-isatty v0.0.20 // gomodjail:confined
31+
github.com/mattn/go-shellwords v1.0.12 // gomodjail:confined
3232
github.com/mdlayher/vsock v1.2.1
3333
github.com/miekg/dns v1.1.63
34-
github.com/mikefarah/yq/v4 v4.45.1
34+
github.com/mikefarah/yq/v4 v4.45.1 // gomodjail:confined
3535
github.com/nxadm/tail v1.4.11
36-
github.com/opencontainers/go-digest v1.0.0
37-
github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58
38-
github.com/rjeczalik/notify v0.9.3
39-
github.com/santhosh-tekuri/jsonschema/v6 v6.0.1
40-
github.com/sethvargo/go-password v0.3.1
41-
github.com/sirupsen/logrus v1.9.4-0.20230606125235-dd1b4c2e81af
36+
github.com/opencontainers/go-digest v1.0.0 // gomodjail:confined
37+
github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 // gomodjail:confined
38+
github.com/rjeczalik/notify v0.9.3 // gomodjail:confined
39+
github.com/santhosh-tekuri/jsonschema/v6 v6.0.1 // gomodjail:confined
40+
github.com/sethvargo/go-password v0.3.1 // gomodjail:confined
41+
github.com/sirupsen/logrus v1.9.4-0.20230606125235-dd1b4c2e81af // gomodjail:confined
4242
github.com/spf13/cobra v1.8.1
43-
github.com/spf13/pflag v1.0.6
44-
github.com/wk8/go-ordered-map/v2 v2.1.8
45-
golang.org/x/net v0.35.0
46-
golang.org/x/sync v0.11.0
43+
github.com/spf13/pflag v1.0.6 // gomodjail:confined
44+
github.com/wk8/go-ordered-map/v2 v2.1.8 // gomodjail:confined
45+
golang.org/x/net v0.35.0 // gomodjail:confined
46+
golang.org/x/sync v0.11.0 // gomodjail:confined
4747
golang.org/x/sys v0.30.0
48-
golang.org/x/text v0.22.0
49-
google.golang.org/grpc v1.70.0
48+
golang.org/x/text v0.22.0 // gomodjail:confined
49+
google.golang.org/grpc v1.70.0 // gomodjail:confined
5050
google.golang.org/protobuf v1.36.5
51-
gopkg.in/op/go-logging.v1 v1.0.0-20160211212156-b2cb9fa56473
52-
gotest.tools/v3 v3.5.2
53-
k8s.io/api v0.32.2
54-
k8s.io/apimachinery v0.32.2
55-
k8s.io/client-go v0.32.2
51+
gopkg.in/op/go-logging.v1 v1.0.0-20160211212156-b2cb9fa56473 // gomodjail:confined
52+
gotest.tools/v3 v3.5.2 // gomodjail:confined
53+
k8s.io/api v0.32.2 // gomodjail:confined
54+
k8s.io/apimachinery v0.32.2 // gomodjail:confined
55+
k8s.io/client-go v0.32.2 // gomodjail:confined
5656
)
5757

5858
require (
59-
github.com/Code-Hex/go-infinity-channel v1.0.0 // indirect
60-
github.com/VividCortex/ewma v1.2.0 // indirect
61-
github.com/a8m/envsubst v1.4.2 // indirect
62-
github.com/alecthomas/participle/v2 v2.1.1 // indirect
63-
github.com/bahlo/generic-list-go v0.2.0 // indirect
64-
github.com/bmatcuk/doublestar/v4 v4.7.1 // indirect
65-
github.com/braydonk/yaml v0.9.0 // indirect
66-
github.com/buger/jsonparser v1.1.1 // indirect
67-
github.com/containerd/errdefs v0.3.0 // indirect
68-
github.com/containerd/log v0.1.0 // indirect
69-
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
70-
github.com/digitalocean/go-libvirt v0.0.0-20220804181439-8648fbde413e // indirect
71-
github.com/dimchansky/utfbom v1.1.1 // indirect
72-
github.com/djherbis/times v1.6.0 // indirect
73-
github.com/elliotchance/orderedmap v1.7.1 // indirect
74-
github.com/emicklei/go-restful/v3 v3.11.0 // indirect
75-
github.com/fatih/color v1.18.0 // indirect
59+
github.com/Code-Hex/go-infinity-channel v1.0.0 // indirect // gomodjail:confined
60+
github.com/VividCortex/ewma v1.2.0 // indirect // gomodjail:confined
61+
github.com/a8m/envsubst v1.4.2 // indirect // gomodjail:confined
62+
github.com/alecthomas/participle/v2 v2.1.1 // indirect // gomodjail:confined
63+
github.com/bahlo/generic-list-go v0.2.0 // indirect // gomodjail:confined
64+
github.com/bmatcuk/doublestar/v4 v4.7.1 // indirect // gomodjail:confined
65+
github.com/braydonk/yaml v0.9.0 // indirect // gomodjail:confined
66+
github.com/buger/jsonparser v1.1.1 // indirect // gomodjail:confined
67+
github.com/containerd/errdefs v0.3.0 // indirect // gomodjail:confined
68+
github.com/containerd/log v0.1.0 // indirect // gomodjail:confined
69+
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect // gomodjail:confined
70+
github.com/digitalocean/go-libvirt v0.0.0-20220804181439-8648fbde413e // indirect // gomodjail:confined
71+
github.com/dimchansky/utfbom v1.1.1 // indirect // gomodjail:confined
72+
github.com/djherbis/times v1.6.0 // indirect // gomodjail:confined
73+
github.com/elliotchance/orderedmap v1.7.1 // indirect // gomodjail:confined
74+
github.com/emicklei/go-restful/v3 v3.11.0 // indirect // gomodjail:confined
75+
github.com/fatih/color v1.18.0 // indirect // gomodjail:confined
7676
github.com/fsnotify/fsnotify v1.8.0 // indirect
77-
github.com/fxamacker/cbor/v2 v2.7.0 // indirect
78-
github.com/go-logr/logr v1.4.2 // indirect
79-
github.com/go-openapi/jsonpointer v0.21.0 // indirect
80-
github.com/go-openapi/jsonreference v0.20.2 // indirect
81-
github.com/go-openapi/swag v0.23.0 // indirect
82-
github.com/goccy/go-json v0.10.4 // indirect
83-
github.com/gogo/protobuf v1.3.2 // indirect
84-
github.com/golang/protobuf v1.5.4 // indirect
85-
github.com/google/btree v1.1.2 // indirect
86-
github.com/google/gnostic-models v0.6.8 // indirect
87-
github.com/google/gofuzz v1.2.0 // indirect
88-
github.com/google/gopacket v1.1.19 // indirect
89-
github.com/google/uuid v1.6.0 // indirect
90-
github.com/inconshreveable/mousetrap v1.1.0 // indirect
77+
github.com/fxamacker/cbor/v2 v2.7.0 // indirect // gomodjail:confined
78+
github.com/go-logr/logr v1.4.2 // indirect // gomodjail:confined
79+
github.com/go-openapi/jsonpointer v0.21.0 // indirect // gomodjail:confined
80+
github.com/go-openapi/jsonreference v0.20.2 // indirect // gomodjail:confined
81+
github.com/go-openapi/swag v0.23.0 // indirect // gomodjail:confined
82+
github.com/goccy/go-json v0.10.4 // indirect // gomodjail:confined
83+
github.com/gogo/protobuf v1.3.2 // indirect // gomodjail:confined
84+
github.com/golang/protobuf v1.5.4 // indirect // gomodjail:confined
85+
github.com/google/btree v1.1.2 // indirect // gomodjail:confined
86+
github.com/google/gnostic-models v0.6.8 // indirect // gomodjail:confined
87+
github.com/google/gofuzz v1.2.0 // indirect // gomodjail:confined
88+
github.com/google/gopacket v1.1.19 // indirect // gomodjail:confined
89+
github.com/google/uuid v1.6.0 // indirect // gomodjail:confined
90+
github.com/inconshreveable/mousetrap v1.1.0 // indirect // gomodjail:confined
9191
github.com/insomniacslk/dhcp v0.0.0-20240710054256-ddd8a41251c9 // indirect
92-
github.com/jinzhu/copier v0.4.0 // indirect
93-
github.com/josharian/intern v1.0.0 // indirect
94-
github.com/json-iterator/go v1.1.12 // indirect
95-
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect
96-
github.com/kr/fs v0.1.0 // indirect
97-
github.com/linuxkit/virtsock v0.0.0-20220523201153-1a23e78aa7a2 // indirect
98-
github.com/magiconair/properties v1.8.9 // indirect
99-
github.com/mailru/easyjson v0.7.7 // indirect
100-
github.com/mattn/go-colorable v0.1.14 // indirect
101-
github.com/mattn/go-runewidth v0.0.16 // indirect
102-
github.com/mdlayher/socket v0.4.1 // indirect
103-
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b // indirect
104-
github.com/mitchellh/mapstructure v1.5.0 // indirect
105-
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
106-
github.com/modern-go/reflect2 v1.0.2 // indirect
107-
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
108-
github.com/pelletier/go-toml/v2 v2.2.3 // indirect
109-
github.com/pierrec/lz4/v4 v4.1.17 // indirect
110-
github.com/pkg/errors v0.9.1 // indirect
111-
github.com/pkg/sftp v1.13.7 // indirect
112-
github.com/rivo/uniseg v0.2.0 // indirect
113-
github.com/russross/blackfriday/v2 v2.1.0 // indirect
114-
github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 // indirect
92+
github.com/jinzhu/copier v0.4.0 // indirect // gomodjail:confined
93+
github.com/josharian/intern v1.0.0 // indirect // gomodjail:confined
94+
github.com/json-iterator/go v1.1.12 // indirect // gomodjail:confined
95+
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect // gomodjail:confined
96+
github.com/kr/fs v0.1.0 // indirect // gomodjail:confined
97+
github.com/linuxkit/virtsock v0.0.0-20220523201153-1a23e78aa7a2 // indirect // gomodjail:confined
98+
github.com/magiconair/properties v1.8.9 // indirect // gomodjail:confined
99+
github.com/mailru/easyjson v0.7.7 // indirect // gomodjail:confined
100+
github.com/mattn/go-colorable v0.1.14 // indirect // gomodjail:confined
101+
github.com/mattn/go-runewidth v0.0.16 // indirect // gomodjail:confined
102+
github.com/mdlayher/socket v0.4.1 // indirect // gomodjail:confined
103+
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b // indirect // gomodjail:confined
104+
github.com/mitchellh/mapstructure v1.5.0 // indirect // gomodjail:confined
105+
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect // gomodjail:confined
106+
github.com/modern-go/reflect2 v1.0.2 // indirect // gomodjail:confined
107+
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect // gomodjail:confined
108+
github.com/pelletier/go-toml/v2 v2.2.3 // indirect // gomodjail:confined
109+
github.com/pierrec/lz4/v4 v4.1.17 // indirect // gomodjail:confined
110+
github.com/pkg/errors v0.9.1 // indirect // gomodjail:confined
111+
github.com/pkg/sftp v1.13.7 // indirect // gomodjail:confined
112+
github.com/rivo/uniseg v0.2.0 // indirect // gomodjail:confined
113+
github.com/russross/blackfriday/v2 v2.1.0 // indirect // gomodjail:confined
114+
github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 // indirect // gomodjail:confined
115115
github.com/u-root/uio v0.0.0-20240224005618-d2acac8f3701 // indirect
116-
github.com/x448/float16 v0.8.4 // indirect
117-
github.com/yuin/gopher-lua v1.1.1 // indirect
118-
golang.org/x/crypto v0.33.0 // indirect
119-
golang.org/x/mod v0.22.0 // indirect
120-
golang.org/x/oauth2 v0.24.0 // indirect
121-
golang.org/x/term v0.29.0 // indirect
122-
golang.org/x/time v0.7.0 // indirect
123-
golang.org/x/tools v0.28.0 // indirect
124-
google.golang.org/genproto/googleapis/rpc v0.0.0-20241202173237-19429a94021a // indirect
125-
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
126-
gopkg.in/inf.v0 v0.9.1 // indirect
127-
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
128-
gopkg.in/yaml.v3 v3.0.1 // indirect
116+
github.com/x448/float16 v0.8.4 // indirect // gomodjail:confined
117+
github.com/yuin/gopher-lua v1.1.1 // indirect // gomodjail:confined
118+
golang.org/x/crypto v0.33.0 // indirect // gomodjail:confined
119+
golang.org/x/mod v0.22.0 // indirect // gomodjail:confined
120+
golang.org/x/oauth2 v0.24.0 // indirect // gomodjail:confined
121+
golang.org/x/term v0.29.0 // indirect // gomodjail:confined
122+
golang.org/x/time v0.7.0 // indirect // gomodjail:confined
123+
golang.org/x/tools v0.28.0 // indirect // gomodjail:confined
124+
google.golang.org/genproto/googleapis/rpc v0.0.0-20241202173237-19429a94021a // indirect // gomodjail:confined
125+
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect // gomodjail:confined
126+
gopkg.in/inf.v0 v0.9.1 // indirect // gomodjail:confined
127+
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect // gomodjail:confined
128+
gopkg.in/yaml.v3 v3.0.1 // indirect // gomodjail:confined
129129
gvisor.dev/gvisor v0.0.0-20240916094835-a174eb65023f // indirect
130-
k8s.io/klog/v2 v2.130.1 // indirect
131-
k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f // indirect
132-
k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 // indirect
133-
sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect
134-
sigs.k8s.io/structured-merge-diff/v4 v4.4.2 // indirect
135-
sigs.k8s.io/yaml v1.4.0 // indirect
130+
k8s.io/klog/v2 v2.130.1 // indirect // gomodjail:confined
131+
k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f // indirect // gomodjail:confined
132+
k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 // indirect // gomodjail:confined
133+
sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect // gomodjail:confined
134+
sigs.k8s.io/structured-merge-diff/v4 v4.4.2 // indirect // gomodjail:confined
135+
sigs.k8s.io/yaml v1.4.0 // indirect // gomodjail:confined
136136
)

0 commit comments

Comments
 (0)