Skip to content

Commit 3d5d33c

Browse files
committed
add immutability check for nodegroup fields
1 parent cd13360 commit 3d5d33c

12 files changed

+156
-94
lines changed
+6-6
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
ack_generate_info:
2-
build_date: "2025-03-14T20:25:33Z"
3-
build_hash: 0ab258c51775fd52af32e649da00d57373b20869
4-
go_version: go1.24.0
5-
version: v0.43.2-6-g0ab258c
6-
api_directory_checksum: feb947454f62a1c6a36512771ee31f36ae7bcb6d
2+
build_date: "2025-04-01T06:11:19Z"
3+
build_hash: a2d05644d640d09599c7a075655c6ef7c72b765f
4+
go_version: go1.24.1
5+
version: v0.44.0-1-ga2d0564
6+
api_directory_checksum: 28323c8c90317b6ded6a625dd0f3e2b652c91468
77
api_version: v1alpha1
88
aws_sdk_go_version: v1.32.6
99
generator_config_info:
10-
file_checksum: 687d1b51c5afe75b62b50c3c32c83d7e6cadc3e3
10+
file_checksum: 32b67ddca993ba172f22fc079e76748027b9749b
1111
original_file_name: generator.yaml
1212
last_modification:
1313
reason: API generation

apis/v1alpha1/generator.yaml

+8-1
Original file line numberDiff line numberDiff line change
@@ -312,6 +312,9 @@ resources:
312312
references:
313313
resource: Cluster
314314
path: Spec.Name
315+
is_immutable: true
316+
Name:
317+
is_immutable: true
315318
NodeRole:
316319
references:
317320
service_name: iam
@@ -333,6 +336,10 @@ resources:
333336
resource: Subnet
334337
path: Status.SubnetID
335338
is_immutable: true
339+
AmiType:
340+
is_immutable: true
341+
InstanceTypes:
342+
is_immutable: true
336343
Taints:
337344
compare:
338345
is_ignored: true
@@ -523,4 +530,4 @@ ignore:
523530
- AssociateIdentityProviderConfigInput.ClientRequestToken
524531
- AssociateIdentityProviderConfigOutput.Update
525532
- AssociateAccessPolicyInput.PrincipalArn
526-
- AssociateAccessPolicyInput.ClusterName
533+
- AssociateAccessPolicyInput.ClusterName

apis/v1alpha1/nodegroup.go

+4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cmd/controller/main.go

+11-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config/crd/bases/eks.services.k8s.aws_nodegroups.yaml

+12
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,9 @@ spec:
8585
Amazon EKS, see Customizing managed nodes with launch templates (https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html)
8686
in the Amazon EKS User Guide.
8787
type: string
88+
x-kubernetes-validations:
89+
- message: Value is immutable once set
90+
rule: self == oldSelf
8891
capacityType:
8992
description: The capacity type for your node group.
9093
type: string
@@ -96,6 +99,9 @@ spec:
9699
clusterName:
97100
description: The name of your cluster.
98101
type: string
102+
x-kubernetes-validations:
103+
- message: Value is immutable once set
104+
rule: self == oldSelf
99105
clusterRef:
100106
description: "AWSResourceReferenceWrapper provides a wrapper around
101107
*AWSResourceReference\ntype to provide more user friendly syntax
@@ -144,6 +150,9 @@ spec:
144150
items:
145151
type: string
146152
type: array
153+
x-kubernetes-validations:
154+
- message: Value is immutable once set
155+
rule: self == oldSelf
147156
labels:
148157
additionalProperties:
149158
type: string
@@ -169,6 +178,9 @@ spec:
169178
name:
170179
description: The unique name to give your node group.
171180
type: string
181+
x-kubernetes-validations:
182+
- message: Value is immutable once set
183+
rule: self == oldSelf
172184
nodeRole:
173185
description: |-
174186
The Amazon Resource Name (ARN) of the IAM role to associate with your node

generator.yaml

+8-1
Original file line numberDiff line numberDiff line change
@@ -312,6 +312,9 @@ resources:
312312
references:
313313
resource: Cluster
314314
path: Spec.Name
315+
is_immutable: true
316+
Name:
317+
is_immutable: true
315318
NodeRole:
316319
references:
317320
service_name: iam
@@ -333,6 +336,10 @@ resources:
333336
resource: Subnet
334337
path: Status.SubnetID
335338
is_immutable: true
339+
AmiType:
340+
is_immutable: true
341+
InstanceTypes:
342+
is_immutable: true
336343
Taints:
337344
compare:
338345
is_ignored: true
@@ -523,4 +530,4 @@ ignore:
523530
- AssociateIdentityProviderConfigInput.ClientRequestToken
524531
- AssociateIdentityProviderConfigOutput.Update
525532
- AssociateAccessPolicyInput.PrincipalArn
526-
- AssociateAccessPolicyInput.ClusterName
533+
- AssociateAccessPolicyInput.ClusterName

go.mod

+27-27
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
11
module github.com/aws-controllers-k8s/eks-controller
22

3-
go 1.22.0
3+
go 1.23.0
44

5-
toolchain go1.22.5
5+
toolchain go1.24.1
66

77
require (
88
github.com/aws-controllers-k8s/ec2-controller v1.1.0
99
github.com/aws-controllers-k8s/iam-controller v1.3.1
1010
github.com/aws-controllers-k8s/kms-controller v1.0.9
11-
github.com/aws-controllers-k8s/runtime v0.43.0
11+
github.com/aws-controllers-k8s/runtime v0.44.0
1212
github.com/aws/aws-sdk-go v1.55.5
1313
github.com/aws/aws-sdk-go-v2 v1.33.0
1414
github.com/aws/aws-sdk-go-v2/service/eks v1.56.5
1515
github.com/aws/smithy-go v1.22.2
1616
github.com/go-logr/logr v1.4.2
1717
github.com/spf13/pflag v1.0.5
1818
github.com/stretchr/testify v1.9.0
19-
k8s.io/api v0.31.0
20-
k8s.io/apimachinery v0.31.0
21-
k8s.io/client-go v0.31.0
22-
sigs.k8s.io/controller-runtime v0.19.0
19+
k8s.io/api v0.32.1
20+
k8s.io/apimachinery v0.32.1
21+
k8s.io/client-go v0.32.1
22+
sigs.k8s.io/controller-runtime v0.20.4
2323
)
2424

2525
require (
@@ -39,21 +39,20 @@ require (
3939
github.com/cespare/xxhash/v2 v2.3.0 // indirect
4040
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
4141
github.com/emicklei/go-restful/v3 v3.11.0 // indirect
42-
github.com/evanphx/json-patch/v5 v5.9.0 // indirect
42+
github.com/evanphx/json-patch/v5 v5.9.11 // indirect
4343
github.com/fsnotify/fsnotify v1.7.0 // indirect
4444
github.com/fxamacker/cbor/v2 v2.7.0 // indirect
4545
github.com/go-logr/zapr v1.3.0 // indirect
46-
github.com/go-openapi/jsonpointer v0.19.6 // indirect
46+
github.com/go-openapi/jsonpointer v0.21.0 // indirect
4747
github.com/go-openapi/jsonreference v0.20.2 // indirect
48-
github.com/go-openapi/swag v0.22.4 // indirect
48+
github.com/go-openapi/swag v0.23.0 // indirect
4949
github.com/gogo/protobuf v1.3.2 // indirect
50-
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
5150
github.com/golang/protobuf v1.5.4 // indirect
51+
github.com/google/btree v1.1.3 // indirect
5252
github.com/google/gnostic-models v0.6.8 // indirect
5353
github.com/google/go-cmp v0.6.0 // indirect
5454
github.com/google/gofuzz v1.2.0 // indirect
5555
github.com/google/uuid v1.6.0 // indirect
56-
github.com/imdario/mergo v0.3.12 // indirect
5756
github.com/itchyny/gojq v0.12.6 // indirect
5857
github.com/itchyny/timefmt-go v0.1.3 // indirect
5958
github.com/jaypipes/envutil v1.0.0 // indirect
@@ -73,24 +72,25 @@ require (
7372
github.com/samber/lo v1.37.0 // indirect
7473
github.com/x448/float16 v0.8.4 // indirect
7574
go.uber.org/multierr v1.11.0 // indirect
76-
go.uber.org/zap v1.26.0 // indirect
77-
golang.org/x/exp v0.0.0-20230515195305-f3d0a9c9a5cc // indirect
78-
golang.org/x/net v0.33.0 // indirect
79-
golang.org/x/oauth2 v0.21.0 // indirect
80-
golang.org/x/sys v0.28.0 // indirect
81-
golang.org/x/term v0.27.0 // indirect
82-
golang.org/x/text v0.21.0 // indirect
83-
golang.org/x/time v0.3.0 // indirect
75+
go.uber.org/zap v1.27.0 // indirect
76+
golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect
77+
golang.org/x/net v0.37.0 // indirect
78+
golang.org/x/oauth2 v0.23.0 // indirect
79+
golang.org/x/sync v0.12.0 // indirect
80+
golang.org/x/sys v0.31.0 // indirect
81+
golang.org/x/term v0.30.0 // indirect
82+
golang.org/x/text v0.23.0 // indirect
83+
golang.org/x/time v0.7.0 // indirect
8484
gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
85-
google.golang.org/protobuf v1.34.2 // indirect
85+
google.golang.org/protobuf v1.35.1 // indirect
86+
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
8687
gopkg.in/inf.v0 v0.9.1 // indirect
87-
gopkg.in/yaml.v2 v2.4.0 // indirect
8888
gopkg.in/yaml.v3 v3.0.1 // indirect
89-
k8s.io/apiextensions-apiserver v0.31.0 // indirect
89+
k8s.io/apiextensions-apiserver v0.32.1 // indirect
9090
k8s.io/klog/v2 v2.130.1 // indirect
91-
k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect
92-
k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 // indirect
93-
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
94-
sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
91+
k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f // indirect
92+
k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 // indirect
93+
sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect
94+
sigs.k8s.io/structured-merge-diff/v4 v4.4.2 // indirect
9595
sigs.k8s.io/yaml v1.4.0 // indirect
9696
)

0 commit comments

Comments
 (0)