Skip to content

Commit 2bb2298

Browse files
authored
Use zstd compression for layer cache (#29)
1 parent 34cae9b commit 2bb2298

File tree

3 files changed

+127
-151
lines changed

3 files changed

+127
-151
lines changed

envbuilder.go

+5
Original file line numberDiff line numberDiff line change
@@ -490,6 +490,11 @@ func Run(ctx context.Context, options Options) error {
490490
CacheRunLayers: true,
491491
CacheCopyLayers: true,
492492
CompressedCaching: true,
493+
Compression: config.ZStd,
494+
// Maps to "default" level, ~100-300 MB/sec according to
495+
// benchmarks in klauspost/compress README
496+
// https://github.com/klauspost/compress/blob/67a538e2b4df11f8ec7139388838a13bce84b5d5/zstd/encoder_options.go#L188
497+
CompressionLevel: 3,
493498
CacheOptions: config.CacheOptions{
494499
// Cache for a week by default!
495500
CacheTTL: time.Hour * 24 * 7,

go.mod

+32-31
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ go 1.20
44

55
// There are a few options we need added to Kaniko!
66
// See: https://github.com/GoogleContainerTools/kaniko/compare/main...coder:kaniko:main
7-
replace github.com/GoogleContainerTools/kaniko => github.com/coder/kaniko v0.0.0-20230630144655-c825422ea1d2
7+
replace github.com/GoogleContainerTools/kaniko => github.com/coder/kaniko v0.0.0-20230712162612-efb9a14afa73
88

99
// Required to import the codersdk!
1010
replace tailscale.com => github.com/coder/tailscale v0.0.0-20230522123520-74712221d00f
@@ -14,16 +14,17 @@ require (
1414
github.com/GoogleContainerTools/kaniko v1.9.2
1515
github.com/breml/rootcerts v0.2.10
1616
github.com/coder/coder v0.24.2-0.20230630184129-6015319e9d30
17-
github.com/containerd/containerd v1.7.0
17+
github.com/containerd/containerd v1.7.2
1818
github.com/distribution/distribution/v3 v3.0.0-20230629214736-bac7f02e02a1
19-
github.com/docker/cli v23.0.1+incompatible
20-
github.com/docker/docker v23.0.3+incompatible
19+
github.com/docker/cli v23.0.5+incompatible
20+
github.com/docker/docker v23.0.5+incompatible
2121
github.com/fatih/color v1.15.0
2222
github.com/go-git/go-billy/v5 v5.4.1
23-
github.com/go-git/go-git/v5 v5.6.1
24-
github.com/google/go-containerregistry v0.14.0
23+
github.com/go-git/go-git/v5 v5.7.0
24+
github.com/google/go-containerregistry v0.15.2
25+
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51
2526
github.com/mattn/go-isatty v0.0.19
26-
github.com/sirupsen/logrus v1.9.2
27+
github.com/sirupsen/logrus v1.9.3
2728
github.com/spf13/cobra v1.7.0
2829
github.com/stretchr/testify v1.8.4
2930
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2
@@ -46,7 +47,7 @@ require (
4647
github.com/Azure/go-autorest/tracing v0.6.0 // indirect
4748
github.com/Microsoft/go-winio v0.6.1 // indirect
4849
github.com/OneOfOne/xxhash v1.2.8 // indirect
49-
github.com/ProtonMail/go-crypto v0.0.0-20230217124315-7d5c6f04bbb8 // indirect
50+
github.com/ProtonMail/go-crypto v0.0.0-20230518184743-7afd39499903 // indirect
5051
github.com/acomagu/bufpipe v1.0.4 // indirect
5152
github.com/agext/levenshtein v1.2.3 // indirect
5253
github.com/agnivade/levenshtein v1.1.1 // indirect
@@ -55,20 +56,21 @@ require (
5556
github.com/ammario/tlru v0.3.0 // indirect
5657
github.com/apparentlymart/go-textseg/v13 v13.0.0 // indirect
5758
github.com/armon/go-radix v1.0.0 // indirect
58-
github.com/aws/aws-sdk-go-v2 v1.17.3 // indirect
59-
github.com/aws/aws-sdk-go-v2/config v1.15.5 // indirect
60-
github.com/aws/aws-sdk-go-v2/credentials v1.12.0 // indirect
61-
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.4 // indirect
62-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.27 // indirect
63-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.21 // indirect
64-
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.11 // indirect
65-
github.com/aws/aws-sdk-go-v2/service/ecr v1.15.0 // indirect
66-
github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.12.0 // indirect
67-
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.4 // indirect
68-
github.com/aws/aws-sdk-go-v2/service/sso v1.11.4 // indirect
69-
github.com/aws/aws-sdk-go-v2/service/sts v1.16.4 // indirect
59+
github.com/aws/aws-sdk-go-v2 v1.18.1 // indirect
60+
github.com/aws/aws-sdk-go-v2/config v1.18.27 // indirect
61+
github.com/aws/aws-sdk-go-v2/credentials v1.13.26 // indirect
62+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.4 // indirect
63+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.34 // indirect
64+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.28 // indirect
65+
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.35 // indirect
66+
github.com/aws/aws-sdk-go-v2/service/ecr v1.18.10 // indirect
67+
github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.16.1 // indirect
68+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.28 // indirect
69+
github.com/aws/aws-sdk-go-v2/service/sso v1.12.12 // indirect
70+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.12 // indirect
71+
github.com/aws/aws-sdk-go-v2/service/sts v1.19.2 // indirect
7072
github.com/aws/smithy-go v1.13.5 // indirect
71-
github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20220228164355-396b2034c795 // indirect
73+
github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20230522190001-adf1bafd791a // indirect
7274
github.com/beorn7/perks v1.0.1 // indirect
7375
github.com/bytedance/sonic v1.9.2 // indirect
7476
github.com/cenkalti/backoff/v4 v4.2.0 // indirect
@@ -79,7 +81,7 @@ require (
7981
github.com/coder/retry v1.4.0 // indirect
8082
github.com/coder/terraform-provider-coder v0.9.0 // indirect
8183
github.com/containerd/cgroups v1.1.0 // indirect
82-
github.com/containerd/continuity v0.3.0 // indirect
84+
github.com/containerd/continuity v0.4.1 // indirect
8385
github.com/containerd/fifo v1.1.0 // indirect
8486
github.com/containerd/stargz-snapshotter/estargz v0.14.3 // indirect
8587
github.com/containerd/typeurl v1.0.2 // indirect
@@ -101,7 +103,7 @@ require (
101103
github.com/fxamacker/cbor/v2 v2.4.0 // indirect
102104
github.com/ghodss/yaml v1.0.0 // indirect
103105
github.com/go-chi/chi/v5 v5.0.8 // indirect
104-
github.com/go-git/gcfg v1.5.0 // indirect
106+
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
105107
github.com/go-jose/go-jose/v3 v3.0.0 // indirect
106108
github.com/go-logr/logr v1.2.4 // indirect
107109
github.com/go-logr/stdr v1.2.2 // indirect
@@ -139,7 +141,7 @@ require (
139141
github.com/hashicorp/yamux v0.1.1 // indirect
140142
github.com/hdevalence/ed25519consensus v0.0.0-20220222234857-c00d1f31bab3 // indirect
141143
github.com/illarion/gonotify v1.0.1 // indirect
142-
github.com/imdario/mergo v0.3.13 // indirect
144+
github.com/imdario/mergo v0.3.15 // indirect
143145
github.com/inconshreveable/mousetrap v1.1.0 // indirect
144146
github.com/insomniacslk/dhcp v0.0.0-20221215072855-de60144f33f8 // indirect
145147
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
@@ -148,7 +150,6 @@ require (
148150
github.com/josharian/native v1.1.1-0.20230202152459-5c7d0dd6ab86 // indirect
149151
github.com/jsimonetti/rtnetlink v1.1.2-0.20220408201609-d380b505068b // indirect
150152
github.com/karrick/godirwalk v1.16.1 // indirect
151-
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect
152153
github.com/kevinburke/ssh_config v1.2.0 // indirect
153154
github.com/klauspost/compress v1.16.5 // indirect
154155
github.com/kortschak/wol v0.0.0-20200729010619-da482cc4850a // indirect
@@ -167,7 +168,7 @@ require (
167168
github.com/mitchellh/go-wordwrap v1.0.1 // indirect
168169
github.com/mitchellh/mapstructure v1.5.0 // indirect
169170
github.com/mitchellh/reflectwalk v1.0.2 // indirect
170-
github.com/moby/buildkit v0.11.4 // indirect
171+
github.com/moby/buildkit v0.11.6 // indirect
171172
github.com/moby/locker v1.0.1 // indirect
172173
github.com/moby/patternmatcher v0.5.0 // indirect
173174
github.com/moby/swarmkit/v2 v2.0.0-20230315203717-e28e8ba9bc83 // indirect
@@ -184,7 +185,7 @@ require (
184185
github.com/opencontainers/runc v1.1.5 // indirect
185186
github.com/opencontainers/runtime-spec v1.1.0-rc.1 // indirect
186187
github.com/opencontainers/selinux v1.11.0 // indirect
187-
github.com/otiai10/copy v1.7.0 // indirect
188+
github.com/otiai10/copy v1.12.0 // indirect
188189
github.com/pjbgf/sha1cd v0.3.0 // indirect
189190
github.com/pkg/errors v0.9.1 // indirect
190191
github.com/pmezard/go-difflib v1.0.0 // indirect
@@ -195,7 +196,7 @@ require (
195196
github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0 // indirect
196197
github.com/rootless-containers/rootlesskit v1.1.0 // indirect
197198
github.com/sergi/go-diff v1.3.1 // indirect
198-
github.com/skeema/knownhosts v1.1.0 // indirect
199+
github.com/skeema/knownhosts v1.1.1 // indirect
199200
github.com/spf13/afero v1.9.5 // indirect
200201
github.com/spf13/pflag v1.0.5 // indirect
201202
github.com/tabbed/pqtype v0.1.1 // indirect
@@ -242,7 +243,7 @@ require (
242243
golang.org/x/net v0.11.0 // indirect
243244
golang.org/x/oauth2 v0.9.0 // indirect
244245
golang.org/x/sync v0.3.0 // indirect
245-
golang.org/x/sys v0.9.0 // indirect
246+
golang.org/x/sys v0.10.0 // indirect
246247
golang.org/x/term v0.9.0 // indirect
247248
golang.org/x/text v0.10.0 // indirect
248249
golang.org/x/time v0.3.0 // indirect
@@ -253,8 +254,8 @@ require (
253254
google.golang.org/genproto v0.0.0-20230530153820-e85fd2cbaebc // indirect
254255
google.golang.org/genproto/googleapis/api v0.0.0-20230530153820-e85fd2cbaebc // indirect
255256
google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc // indirect
256-
google.golang.org/grpc v1.56.0 // indirect
257-
google.golang.org/protobuf v1.30.0 // indirect
257+
google.golang.org/grpc v1.56.1 // indirect
258+
google.golang.org/protobuf v1.31.0 // indirect
258259
gopkg.in/warnings.v0 v0.1.2 // indirect
259260
gopkg.in/yaml.v2 v2.4.0 // indirect
260261
gopkg.in/yaml.v3 v3.0.1 // indirect

0 commit comments

Comments
 (0)