-
Notifications
You must be signed in to change notification settings - Fork 819
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add expand-and-modify test type to ebs-scale-test #2330
Add expand-and-modify test type to ebs-scale-test #2330
Conversation
Code Coverage DiffThis PR does not change the code coverage |
parameters: | ||
type: gp3 | ||
--- | ||
{{- range $index, $value := seq 1 .Env.REPLICAS }} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Decided to rely on Immediately bound PVCs instead of scaling statefulset (as we do in the scale-sts test).
Pros:
- Separation of concerns between scale-sts test and expand-and-modify test
- Order of magnitude shorter test: no waiting for all volumes to attach/detach + creating karpenter instances.
- Two way door. Changing this test to scale sts is trivial.
Cons:
- We do not excercise NodeExpandVolume at scale. (Though to me this sounds like a kubelet, AMI, resize2fs testing responsibility. We already have e2e tests)
Discussed this offline with @torredil, who lightly agreed with me.
hack/ebs-scale-test/helpers/scale-test/expand-and-modify-test/expand-and-modify.sh
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will lgtm once other comments are addressed
persistentvolumeclaim/ebs-claim-2 patched
persistentvolumeclaim/ebs-claim-1 patched
persistentvolumeclaim/ebs-claim-0 patched
persistentvolumeclaim/ebs-claim-3 patched
persistentvolumeclaim/ebs-claim-4 patched
persistentvolumeclaim/ebs-claim-6 patched
persistentvolumeclaim/ebs-claim-5 patched
persistentvolumeclaim/ebs-claim-7 patched
persistentvolumeclaim/ebs-claim-8 patched
persistentvolumeclaim/ebs-claim-9 patched
Waiting until volumes modified and/or expanded
0/10 volumes modified
10/10 volumes modified
All volumes modified
8/10 volumes expanded
10/10 volumes expanded
All volumes expanded
Deleting resources
verified all resources where delete properly.
6f7ae80
to
ef6dcd4
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/lgtm
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/lgtm
/approve
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: torredil The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
What type of PR is this?
/kind documentation
What is this PR about? / Why do we need it?
Add ebs-scale-test tool
TEST_TYPE='expand-and-modify'
to guard against regressions in how EBS CSI Driver handles concurrent volume modifications and/or expansions.Creates
$REPLICAS
block volumes. Patches PVC capacity and VACName at rate of 5 PVCs per second. Ensures PVCs are expanded and modified before deleting them. Exercises ControllerExpandVolume & ControllerModifyVolume. SetMODIFY_ONLY
orEXPAND_ONLY
to 'true' to test solely volume modification/expansion.Note: As of Feb 2025, EBS CSI Driver can handle high amounts of concurrent modifications expansions at a rate of 5 patches per second. However due to our current coalescing implementation and the current AWS EC2 ModifyVolume 6 hour cooldown, modifying AND expanding more than 1 volume per second may lead to errors.
How was this change tested?
See gist for full logs proof
Also tested that MODIFY_ONLY and EXPAND_ONLY env vars work.
Shortened version:
Does this PR introduce a user-facing change?