[CHAOSPLT-1364] Fix cloud disruption hosts only injected in first chaos pod #1012
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.

What does this PR do?
Please briefly describe your changes as well as the motivation behind them:
Bug Fix: Cloud network disruptions (e.g., AWS S3) were only injecting
--hostsarguments into the first chaos pod. When multiple targets were selected, subsequentchaos pods were created without any hosts, causing the disruption to fail partially.
Root Cause: The
r.Client.Status().Update(ctx, instance)call increateChaosPods(line 709) overwrites the localinstanceobject with the API server's response.Since
UpdateHostsOnCloudDisruptionmodifiesinstance.Spec.Network.Hostsin memory only (not persisted to etcd), the hosts were cleared after the first pod creation.Solution: Use
DeepCopy()before callingStatus().Update()to preserve in-memory spec changes. This follows Kubernetes controller-runtime best practices(cluster-api #1259, controller-runtime
#2850).
BTW: It also fix the flaky test.
Code Quality Checklist
Testing
unittests orend-to-endtests.unittests orend-to-endtests.--hostsarguments, second pod had 0.ginkgo --focus "should create a cloud disruption but apply a host disruption with the list of cloud managed service ip ranges"- passessuccessfully.