Skip to content

Commit 7c3efa7

Browse files
authored
feat(nodeadm): support public ECR authentication (#2153)
1 parent a789b54 commit 7c3efa7

File tree

76 files changed

+2777
-536
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

76 files changed

+2777
-536
lines changed

nodeadm/go.mod

Lines changed: 31 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,62 +1,45 @@
11
module github.com/awslabs/amazon-eks-ami/nodeadm
22

3-
go 1.24.0
4-
5-
toolchain go1.24.4
3+
go 1.25.1
64

75
require (
8-
github.com/aws/aws-sdk-go-v2/config v1.31.8
9-
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.7
10-
github.com/aws/aws-sdk-go-v2/service/ec2 v1.251.2
6+
dario.cat/mergo v1.0.2
7+
github.com/aws/aws-sdk-go-v2 v1.39.2
8+
github.com/aws/aws-sdk-go-v2/config v1.31.12
9+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.9
10+
github.com/aws/aws-sdk-go-v2/service/ec2 v1.254.1
1111
github.com/aws/smithy-go v1.23.0
1212
github.com/coreos/go-systemd/v22 v22.6.0
13-
github.com/google/cel-go v0.26.0
14-
github.com/integrii/flaggy v1.5.2
13+
github.com/google/cel-go v0.26.1
14+
github.com/integrii/flaggy v1.7.1
1515
github.com/pelletier/go-toml/v2 v2.2.4
1616
github.com/stretchr/testify v1.11.1
1717
go.uber.org/zap v1.27.0
1818
golang.org/x/mod v0.28.0
19+
k8s.io/api v0.34.1
1920
k8s.io/apimachinery v0.34.1
2021
k8s.io/kubelet v0.34.1
22+
k8s.io/utils v0.0.0-20251002143259-bc988d571ff4
2123
sigs.k8s.io/controller-runtime v0.22.1
2224
)
2325

2426
require (
2527
cel.dev/expr v0.24.0 // indirect
2628
github.com/antlr4-go/antlr/v4 v4.13.0 // indirect
27-
github.com/fxamacker/cbor/v2 v2.9.0 // indirect
28-
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
29-
github.com/stoewer/go-strcase v1.3.0 // indirect
30-
github.com/stretchr/objx v0.5.2 // indirect
31-
github.com/x448/float16 v0.8.4 // indirect
32-
go.opentelemetry.io/otel v1.35.0 // indirect
33-
go.opentelemetry.io/otel/trace v1.35.0 // indirect
34-
go.yaml.in/yaml/v2 v2.4.2 // indirect
35-
golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect
36-
google.golang.org/genproto/googleapis/api v0.0.0-20250303144028-a0af3efb3deb // indirect
37-
google.golang.org/genproto/googleapis/rpc v0.0.0-20250303144028-a0af3efb3deb // indirect
38-
k8s.io/component-base v0.34.1 // indirect
39-
sigs.k8s.io/randfill v1.0.0 // indirect
40-
sigs.k8s.io/structured-merge-diff/v6 v6.3.0 // indirect
41-
)
42-
43-
require dario.cat/mergo v1.0.2 // direct
44-
45-
require (
46-
github.com/aws/aws-sdk-go-v2 v1.39.0
47-
github.com/aws/aws-sdk-go-v2/credentials v1.18.12 // indirect
48-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.7 // indirect
49-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.7 // indirect
29+
github.com/aws/aws-sdk-go-v2/credentials v1.18.16 // indirect
30+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.9 // indirect
31+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.9 // indirect
5032
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 // indirect
5133
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1 // indirect
52-
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.7 // indirect
53-
github.com/aws/aws-sdk-go-v2/service/sso v1.29.3 // indirect
54-
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.34.4 // indirect
55-
github.com/aws/aws-sdk-go-v2/service/sts v1.38.4 // indirect
34+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.9 // indirect
35+
github.com/aws/aws-sdk-go-v2/service/sso v1.29.6 // indirect
36+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.1 // indirect
37+
github.com/aws/aws-sdk-go-v2/service/sts v1.38.6 // indirect
5638
github.com/beorn7/perks v1.0.1 // indirect
5739
github.com/blang/semver/v4 v4.0.0 // indirect
5840
github.com/cespare/xxhash/v2 v2.3.0 // indirect
5941
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
42+
github.com/fxamacker/cbor/v2 v2.9.0 // indirect
6043
github.com/go-logr/logr v1.4.2 // indirect
6144
github.com/godbus/dbus/v5 v5.1.0 // indirect
6245
github.com/gogo/protobuf v1.3.2 // indirect
@@ -65,23 +48,34 @@ require (
6548
github.com/json-iterator/go v1.1.12 // indirect
6649
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
6750
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect
51+
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
6852
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
6953
github.com/prometheus/client_golang v1.22.0 // indirect
7054
github.com/prometheus/client_model v0.6.1 // indirect
7155
github.com/prometheus/common v0.62.0 // indirect
7256
github.com/prometheus/procfs v0.15.1 // indirect
7357
github.com/spf13/cobra v1.9.1 // indirect
7458
github.com/spf13/pflag v1.0.6 // indirect
59+
github.com/stoewer/go-strcase v1.3.0 // indirect
60+
github.com/stretchr/objx v0.5.2 // indirect
61+
github.com/x448/float16 v0.8.4 // indirect
62+
go.opentelemetry.io/otel v1.35.0 // indirect
63+
go.opentelemetry.io/otel/trace v1.35.0 // indirect
7564
go.uber.org/multierr v1.11.0 // indirect
65+
go.yaml.in/yaml/v2 v2.4.2 // indirect
66+
golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect
7667
golang.org/x/net v0.38.0 // indirect
7768
golang.org/x/sys v0.31.0 // indirect
7869
golang.org/x/text v0.23.0 // indirect
70+
google.golang.org/genproto/googleapis/api v0.0.0-20250303144028-a0af3efb3deb // indirect
71+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250303144028-a0af3efb3deb // indirect
7972
google.golang.org/protobuf v1.36.5 // indirect
8073
gopkg.in/inf.v0 v0.9.1 // indirect
8174
gopkg.in/yaml.v3 v3.0.1 // indirect
82-
k8s.io/api v0.34.1
75+
k8s.io/component-base v0.34.1 // indirect
8376
k8s.io/klog/v2 v2.130.1 // indirect
84-
k8s.io/utils v0.0.0-20250820121507-0af2bda4dd1d // direct
8577
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect
78+
sigs.k8s.io/randfill v1.0.0 // indirect
79+
sigs.k8s.io/structured-merge-diff/v6 v6.3.0 // indirect
8680
sigs.k8s.io/yaml v1.6.0 // indirect
8781
)

nodeadm/go.sum

Lines changed: 28 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -4,32 +4,32 @@ dario.cat/mergo v1.0.2 h1:85+piFYR1tMbRrLcDwR18y4UKJ3aH1Tbzi24VRW1TK8=
44
dario.cat/mergo v1.0.2/go.mod h1:E/hbnu0NxMFBjpMIE34DRGLWqDy0g5FuKDhCb31ngxA=
55
github.com/antlr4-go/antlr/v4 v4.13.0 h1:lxCg3LAv+EUK6t1i0y1V6/SLeUi0eKEKdhQAlS8TVTI=
66
github.com/antlr4-go/antlr/v4 v4.13.0/go.mod h1:pfChB/xh/Unjila75QW7+VU4TSnWnnk9UTnmpPaOR2g=
7-
github.com/aws/aws-sdk-go-v2 v1.39.0 h1:xm5WV/2L4emMRmMjHFykqiA4M/ra0DJVSWUkDyBjbg4=
8-
github.com/aws/aws-sdk-go-v2 v1.39.0/go.mod h1:sDioUELIUO9Znk23YVmIk86/9DOpkbyyVb1i/gUNFXY=
9-
github.com/aws/aws-sdk-go-v2/config v1.31.8 h1:kQjtOLlTU4m4A64TsRcqwNChhGCwaPBt+zCQt/oWsHU=
10-
github.com/aws/aws-sdk-go-v2/config v1.31.8/go.mod h1:QPpc7IgljrKwH0+E6/KolCgr4WPLerURiU592AYzfSY=
11-
github.com/aws/aws-sdk-go-v2/credentials v1.18.12 h1:zmc9e1q90wMn8wQbjryy8IwA6Q4XlaL9Bx2zIqdNNbk=
12-
github.com/aws/aws-sdk-go-v2/credentials v1.18.12/go.mod h1:3VzdRDR5u3sSJRI4kYcOSIBbeYsgtVk7dG5R/U6qLWY=
13-
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.7 h1:Is2tPmieqGS2edBnmOJIbdvOA6Op+rRpaYR60iBAwXM=
14-
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.7/go.mod h1:F1i5V5421EGci570yABvpIXgRIBPb5JM+lSkHF6Dq5w=
15-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.7 h1:UCxq0X9O3xrlENdKf1r9eRJoKz/b0AfGkpp3a7FPlhg=
16-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.7/go.mod h1:rHRoJUNUASj5Z/0eqI4w32vKvC7atoWR0jC+IkmVH8k=
17-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.7 h1:Y6DTZUn7ZUC4th9FMBbo8LVE+1fyq3ofw+tRwkUd3PY=
18-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.7/go.mod h1:x3XE6vMnU9QvHN/Wrx2s44kwzV2o2g5x/siw4ZUJ9g8=
7+
github.com/aws/aws-sdk-go-v2 v1.39.2 h1:EJLg8IdbzgeD7xgvZ+I8M1e0fL0ptn/M47lianzth0I=
8+
github.com/aws/aws-sdk-go-v2 v1.39.2/go.mod h1:sDioUELIUO9Znk23YVmIk86/9DOpkbyyVb1i/gUNFXY=
9+
github.com/aws/aws-sdk-go-v2/config v1.31.12 h1:pYM1Qgy0dKZLHX2cXslNacbcEFMkDMl+Bcj5ROuS6p8=
10+
github.com/aws/aws-sdk-go-v2/config v1.31.12/go.mod h1:/MM0dyD7KSDPR+39p9ZNVKaHDLb9qnfDurvVS2KAhN8=
11+
github.com/aws/aws-sdk-go-v2/credentials v1.18.16 h1:4JHirI4zp958zC026Sm+V4pSDwW4pwLefKrc0bF2lwI=
12+
github.com/aws/aws-sdk-go-v2/credentials v1.18.16/go.mod h1:qQMtGx9OSw7ty1yLclzLxXCRbrkjWAM7JnObZjmCB7I=
13+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.9 h1:Mv4Bc0mWmv6oDuSWTKnk+wgeqPL5DRFu5bQL9BGPQ8Y=
14+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.9/go.mod h1:IKlKfRppK2a1y0gy1yH6zD+yX5uplJ6UuPlgd48dJiQ=
15+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.9 h1:se2vOWGD3dWQUtfn4wEjRQJb1HK1XsNIt825gskZ970=
16+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.9/go.mod h1:hijCGH2VfbZQxqCDN7bwz/4dzxV+hkyhjawAtdPWKZA=
17+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.9 h1:6RBnKZLkJM4hQ+kN6E7yWFveOTg8NLPHAkqrs4ZPlTU=
18+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.9/go.mod h1:V9rQKRmK7AWuEsOMnHzKj8WyrIir1yUJbZxDuZLFvXI=
1919
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 h1:bIqFDwgGXXN1Kpp99pDOdKMTTb5d2KyU5X/BZxjOkRo=
2020
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3/go.mod h1:H5O/EsxDWyU+LP/V8i5sm8cxoZgc2fdNR9bxlOFrQTo=
21-
github.com/aws/aws-sdk-go-v2/service/ec2 v1.251.2 h1:6TssXFfLHcwUS5E3MdYKkCFeOrYVBlDhJjs5kRJp0ic=
22-
github.com/aws/aws-sdk-go-v2/service/ec2 v1.251.2/go.mod h1:MXJiLJZtMqb2dVXgEIn35d5+7MqLd4r8noLen881kpk=
21+
github.com/aws/aws-sdk-go-v2/service/ec2 v1.254.1 h1:7p9bJCZ/b3EJXXARW7JMEs2IhsnI4YFHpfXQfgMh0eg=
22+
github.com/aws/aws-sdk-go-v2/service/ec2 v1.254.1/go.mod h1:M8WWWIfXmxA4RgTXcI/5cSByxRqjgne32Sh0VIbrn0A=
2323
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1 h1:oegbebPEMA/1Jny7kvwejowCaHz1FWZAQ94WXFNCyTM=
2424
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1/go.mod h1:kemo5Myr9ac0U9JfSjMo9yHLtw+pECEHsFtJ9tqCEI8=
25-
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.7 h1:mLgc5QIgOy26qyh5bvW+nDoAppxgn3J2WV3m9ewq7+8=
26-
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.7/go.mod h1:wXb/eQnqt8mDQIQTTmcw58B5mYGxzLGZGK8PWNFZ0BA=
27-
github.com/aws/aws-sdk-go-v2/service/sso v1.29.3 h1:7PKX3VYsZ8LUWceVRuv0+PU+E7OtQb1lgmi5vmUE9CM=
28-
github.com/aws/aws-sdk-go-v2/service/sso v1.29.3/go.mod h1:Ql6jE9kyyWI5JHn+61UT/Y5Z0oyVJGmgmJbZD5g4unY=
29-
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.34.4 h1:e0XBRn3AptQotkyBFrHAxFB8mDhAIOfsG+7KyJ0dg98=
30-
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.34.4/go.mod h1:XclEty74bsGBCr1s0VSaA11hQ4ZidK4viWK7rRfO88I=
31-
github.com/aws/aws-sdk-go-v2/service/sts v1.38.4 h1:PR00NXRYgY4FWHqOGx3fC3lhVKjsp1GdloDv2ynMSd8=
32-
github.com/aws/aws-sdk-go-v2/service/sts v1.38.4/go.mod h1:Z+Gd23v97pX9zK97+tX4ppAgqCt3Z2dIXB02CtBncK8=
25+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.9 h1:5r34CgVOD4WZudeEKZ9/iKpiT6cM1JyEROpXjOcdWv8=
26+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.9/go.mod h1:dB12CEbNWPbzO2uC6QSWHteqOg4JfBVJOojbAoAUb5I=
27+
github.com/aws/aws-sdk-go-v2/service/sso v1.29.6 h1:A1oRkiSQOWstGh61y4Wc/yQ04sqrQZr1Si/oAXj20/s=
28+
github.com/aws/aws-sdk-go-v2/service/sso v1.29.6/go.mod h1:5PfYspyCU5Vw1wNPsxi15LZovOnULudOQuVxphSflQA=
29+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.1 h1:5fm5RTONng73/QA73LhCNR7UT9RpFH3hR6HWL6bIgVY=
30+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.1/go.mod h1:xBEjWD13h+6nq+z4AkqSfSvqRKFgDIQeaMguAJndOWo=
31+
github.com/aws/aws-sdk-go-v2/service/sts v1.38.6 h1:p3jIvqYwUZgu/XYeI48bJxOhvm47hZb5HUQ0tn6Q9kA=
32+
github.com/aws/aws-sdk-go-v2/service/sts v1.38.6/go.mod h1:WtKK+ppze5yKPkZ0XwqIVWD4beCwv056ZbPQNoeHqM8=
3333
github.com/aws/smithy-go v1.23.0 h1:8n6I3gXzWJB2DxBDnfxgBaSX6oe0d/t10qGz7OKqMCE=
3434
github.com/aws/smithy-go v1.23.0/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI=
3535
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
@@ -55,18 +55,17 @@ github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk=
5555
github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
5656
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
5757
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
58-
github.com/google/cel-go v0.26.0 h1:DPGjXackMpJWH680oGY4lZhYjIameYmR+/6RBdDGmaI=
59-
github.com/google/cel-go v0.26.0/go.mod h1:A9O8OU9rdvrK5MQyrqfIxo1a0u4g3sF8KB6PUIaryMM=
60-
github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
58+
github.com/google/cel-go v0.26.1 h1:iPbVVEdkhTX++hpe3lzSk7D3G3QSYqLGoHOcEio+UXQ=
59+
github.com/google/cel-go v0.26.1/go.mod h1:A9O8OU9rdvrK5MQyrqfIxo1a0u4g3sF8KB6PUIaryMM=
6160
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
6261
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
6362
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
6463
github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db h1:097atOisP2aRj7vFgYQBbFN4U4JNXUNYpxael3UzMyo=
6564
github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144=
6665
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
6766
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
68-
github.com/integrii/flaggy v1.5.2 h1:bWV20MQEngo4hWhno3i5Z9ISPxLPKj9NOGNwTWb/8IQ=
69-
github.com/integrii/flaggy v1.5.2/go.mod h1:dO13u7SYuhk910nayCJ+s1DeAAGC1THCMj1uSFmwtQ8=
67+
github.com/integrii/flaggy v1.7.1 h1:UTGDWksXL0ilNGWiw6J7KREZZrQVO1ZlRo3svlWzsjc=
68+
github.com/integrii/flaggy v1.7.1/go.mod h1:QS4c80m87SXG0pmVUT/Lx2RY5EbkLvLp7IKBD2jwcFA=
7069
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
7170
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
7271
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
@@ -203,8 +202,8 @@ k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
203202
k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
204203
k8s.io/kubelet v0.34.1 h1:doAaTA9/Yfzbdq/u/LveZeONp96CwX9giW6b+oHn4m4=
205204
k8s.io/kubelet v0.34.1/go.mod h1:PtV3Ese8iOM19gSooFoQT9iyRisbmJdAPuDImuccbbA=
206-
k8s.io/utils v0.0.0-20250820121507-0af2bda4dd1d h1:wAhiDyZ4Tdtt7e46e9M5ZSAJ/MnPGPs+Ki1gHw4w1R0=
207-
k8s.io/utils v0.0.0-20250820121507-0af2bda4dd1d/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
205+
k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 h1:SjGebBtkBqHFOli+05xYbK8YF1Dzkbzn+gDM4X9T4Ck=
206+
k8s.io/utils v0.0.0-20251002143259-bc988d571ff4/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
208207
sigs.k8s.io/controller-runtime v0.22.1 h1:Ah1T7I+0A7ize291nJZdS1CabF/lB4E++WizgV24Eqg=
209208
sigs.k8s.io/controller-runtime v0.22.1/go.mod h1:FwiwRjkRPbiN+zp2QRp7wlTCzbUXxZ/D4OzuQUDwBHY=
210209
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE=

nodeadm/internal/kubelet/image-credential-provider.go

Lines changed: 36 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,20 @@ package kubelet
22

33
import (
44
"bytes"
5-
_ "embed"
65
"fmt"
76
"os"
87
"path"
98
"path/filepath"
10-
"text/template"
9+
"time"
1110

1211
"github.com/awslabs/amazon-eks-ami/nodeadm/internal/util"
1312
"go.uber.org/zap"
13+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
14+
"k8s.io/apimachinery/pkg/runtime"
15+
16+
k8sjson "k8s.io/apimachinery/pkg/runtime/serializer/json"
17+
"k8s.io/apimachinery/pkg/runtime/serializer/versioning"
18+
configv1 "k8s.io/kubelet/config/v1"
1419
)
1520

1621
const (
@@ -23,12 +28,7 @@ const (
2328
ecrCredentialProviderBinPathEnvironmentName = "ECR_CREDENTIAL_PROVIDER_BIN_PATH"
2429
)
2530

26-
var (
27-
//go:embed image-credential-provider.template.json
28-
imageCredentialProviderTemplateData string
29-
imageCredentialProviderTemplate = template.Must(template.New("image-credential-provider").Parse(imageCredentialProviderTemplateData))
30-
imageCredentialProviderConfigPath = path.Join(imageCredentialProviderRoot, imageCredentialProviderConfig)
31-
)
31+
var imageCredentialProviderConfigPath = path.Join(imageCredentialProviderRoot, imageCredentialProviderConfig)
3232

3333
func (k *kubelet) writeImageCredentialProviderConfig() error {
3434
// fallback default for image credential provider binary if not overridden
@@ -52,21 +52,37 @@ func (k *kubelet) writeImageCredentialProviderConfig() error {
5252
return util.WriteFileWithDir(imageCredentialProviderConfigPath, config, imageCredentialProviderPerm)
5353
}
5454

55-
type imageCredentialProviderTemplateVars struct {
56-
ConfigApiVersion string
57-
ProviderApiVersion string
58-
EcrProviderName string
59-
}
60-
6155
func generateImageCredentialProviderConfig(ecrCredentialProviderBinPath string) ([]byte, error) {
62-
templateVars := imageCredentialProviderTemplateVars{
63-
EcrProviderName: filepath.Base(ecrCredentialProviderBinPath),
64-
ConfigApiVersion: "kubelet.config.k8s.io/v1",
65-
ProviderApiVersion: "credentialprovider.kubelet.k8s.io/v1",
56+
cfg := configv1.CredentialProviderConfig{
57+
Providers: []configv1.CredentialProvider{
58+
{
59+
Name: filepath.Base(ecrCredentialProviderBinPath),
60+
MatchImages: []string{
61+
"*.dkr.ecr.*.amazonaws.com",
62+
"*.dkr-ecr.*.on.aws",
63+
"*.dkr.ecr.*.amazonaws.com.cn",
64+
"*.dkr-ecr.*.on.amazonwebservices.com.cn",
65+
"*.dkr.ecr-fips.*.amazonaws.com",
66+
"*.dkr-ecr-fips.*.on.aws",
67+
"*.dkr.ecr.*.c2s.ic.gov",
68+
"*.dkr.ecr.*.sc2s.sgov.gov",
69+
"*.dkr.ecr.*.cloud.adc-e.uk",
70+
"*.dkr.ecr.*.csp.hci.ic.gov",
71+
"*.dkr.ecr.*.amazonaws.eu",
72+
"public.ecr.aws",
73+
},
74+
APIVersion: "credentialprovider.kubelet.k8s.io/v1",
75+
DefaultCacheDuration: &metav1.Duration{Duration: 12 * time.Hour},
76+
},
77+
},
6678
}
67-
79+
var scheme = runtime.NewScheme()
80+
if err := configv1.AddToScheme(scheme); err != nil {
81+
return nil, err
82+
}
83+
serializer := k8sjson.NewSerializerWithOptions(k8sjson.DefaultMetaFactory, scheme, scheme, k8sjson.SerializerOptions{Pretty: true})
6884
var buf bytes.Buffer
69-
if err := imageCredentialProviderTemplate.Execute(&buf, templateVars); err != nil {
85+
if err := versioning.NewDefaultingCodecForScheme(scheme, serializer, nil, nil, nil).Encode(&cfg, &buf); err != nil {
7086
return nil, err
7187
}
7288
return buf.Bytes(), nil

nodeadm/internal/kubelet/image-credential-provider.template.json

Lines changed: 0 additions & 24 deletions
This file was deleted.

nodeadm/test/e2e/cases/image-credential-provider/expected-image-credential-provider-config-127.json renamed to nodeadm/test/e2e/cases/image-credential-provider/expected-image-credential-provider-config.json

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,11 @@
1515
"*.dkr.ecr.*.sc2s.sgov.gov",
1616
"*.dkr.ecr.*.cloud.adc-e.uk",
1717
"*.dkr.ecr.*.csp.hci.ic.gov",
18-
"*.dkr.ecr.*.amazonaws.eu"
18+
"*.dkr.ecr.*.amazonaws.eu",
19+
"public.ecr.aws"
1920
],
20-
"defaultCacheDuration": "12h",
21+
"defaultCacheDuration": "12h0m0s",
2122
"apiVersion": "credentialprovider.kubelet.k8s.io/v1"
2223
}
2324
]
24-
}
25+
}

nodeadm/test/e2e/cases/image-credential-provider/run.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ source /helpers.sh
99
mock::aws
1010
wait::dbus-ready
1111

12-
mock::kubelet 1.27.0
12+
mock::kubelet 1.32.0
1313

1414
nodeadm init --skip run --config-source file://config.yaml
1515

16-
assert::json-files-equal /etc/eks/image-credential-provider/config.json expected-image-credential-provider-config-127.json
16+
assert::json-files-equal /etc/eks/image-credential-provider/config.json expected-image-credential-provider-config.json

nodeadm/vendor/github.com/aws/aws-sdk-go-v2/aws/go_module_metadata.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

nodeadm/vendor/github.com/aws/aws-sdk-go-v2/config/CHANGELOG.md

Lines changed: 16 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

nodeadm/vendor/github.com/aws/aws-sdk-go-v2/config/go_module_metadata.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

nodeadm/vendor/github.com/aws/aws-sdk-go-v2/credentials/CHANGELOG.md

Lines changed: 16 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)