Skip to content

Commit 00198a1

Browse files
Add nil guard for nodegroup config update structs (#43)
Fixes aws-controllers-k8s/community#1320 Description of changes: Ensures the `ScalingConfig` and `UpdateConfig` properties are non-nil before attempting to add them to the `UpdateNodegroupConfig` request. By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
1 parent ecc3c0a commit 00198a1

File tree

3 files changed

+21
-7
lines changed

3 files changed

+21
-7
lines changed

apis/v1alpha1/ack-generate-metadata.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
ack_generate_info:
2-
build_date: "2022-05-09T19:51:01Z"
3-
build_hash: c6efa6ac643edb21219e0763541b2558718b5fe6
4-
go_version: go1.18.1
5-
version: v0.18.4-10-gc6efa6a
2+
build_date: "2022-06-08T19:33:40Z"
3+
build_hash: 6acf40fe3e3cfd97b799ef7cbf1e89e01c3db8f7
4+
go_version: go1.18.3
5+
version: v0.18.4-15-g6acf40f
66
api_directory_checksum: 7b070fe012124ee552759771abc96d313cd2be43
77
api_version: v1alpha1
88
aws_sdk_go_version: v1.42.28

pkg/resource/nodegroup/hook.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -332,12 +332,18 @@ func (rm *resourceManager) updateConfig(
332332
input := &svcsdk.UpdateNodegroupConfigInput{
333333
NodegroupName: desired.ko.Spec.Name,
334334
ClusterName: desired.ko.Spec.ClusterName,
335-
ScalingConfig: rm.newNodegroupScalingConfig(desired),
336-
UpdateConfig: rm.newNodegroupUpdateConfig(desired),
337335
Labels: newUpdateLabelsPayload(desired, latest),
338336
Taints: newUpdateTaintsPayload(desired, latest),
339337
}
340338

339+
if desired.ko.Spec.ScalingConfig != nil {
340+
input.SetScalingConfig(rm.newNodegroupScalingConfig(desired))
341+
}
342+
343+
if desired.ko.Spec.UpdateConfig != nil {
344+
input.SetUpdateConfig(rm.newNodegroupUpdateConfig(desired))
345+
}
346+
341347
_, err = rm.sdkapi.UpdateNodegroupConfigWithContext(ctx, input)
342348
rm.metrics.RecordAPICall("UPDATE", "UpdateNodegroupConfig", err)
343349
if err != nil {

test/e2e/tests/test_nodegroup.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,12 +107,17 @@ def test_create_update_delete_nodegroup(self, simple_nodegroup, eks_client):
107107

108108
wait_for_nodegroup_active(eks_client, cluster_name, nodegroup_name)
109109

110-
# Update the logging and VPC config fields
110+
# Update the update and scaling configs fields
111111
updates = {
112112
"spec": {
113113
"updateConfig": {
114114
"maxUnavailable": None,
115115
"maxUnavailablePercentage": 15
116+
},
117+
"scalingConfig": {
118+
"minSize": 2,
119+
"maxSize": 2,
120+
"desiredSize": 2,
116121
}
117122
}
118123
}
@@ -132,6 +137,9 @@ def test_create_update_delete_nodegroup(self, simple_nodegroup, eks_client):
132137
)
133138

134139
assert aws_res["nodegroup"]["updateConfig"]["maxUnavailablePercentage"] == 15
140+
assert aws_res["nodegroup"]["scalingConfig"]["minSize"] == 2
141+
assert aws_res["nodegroup"]["scalingConfig"]["maxSize"] == 2
142+
assert aws_res["nodegroup"]["scalingConfig"]["desiredSize"] == 2
135143

136144
updates = {
137145
"spec": {

0 commit comments

Comments
 (0)