Repository navigation
HDDS-16467. Run S3 smoketests with AWS CLI v1 and v2 - #11509
sreejasahithi wants to merge 1 commit into
Conversation
|
@sreejasahithi as @jojochuang noticed (see #11569), this significantly increases wall-clock CI time (+30 minutes?), since the runs affected are on the critical path. While we may drop v1 support in the future, I don't think such change should be merged to We can decrease both wall-clock and total CI time by running v1 and v2 tests on different backend configurations, instead of a full matrix. For example I would guess that HA or non-HA cluster behaves the same, since the differences are probably at the S3 Gateway-side, not in OM/SCM. So we can run e.g. v1 with non-HA and v2 with HA (to reflect the importance of v2). We have similar optimization for filesystem tests vs. bucket types vs. HA/non-HA: I have some work in progress to drop existing duplicates (HDDS-16818). Instead of dropping all duplicate S3 tests, we may convert some of them to v2. |
Thanks for the feedback, I understand the concern about both the wall clock CI time and the overall CI resource usage. I will look into splitting the v1 and v2 tests across the existing backend configurations rather than running the full matrix. |
Problem with the First Version of This PRThe initial compose wiring used This causes approximately 30 minutes of extra wall-clock time Why Not the Parallel Matrix (#11569)?#11569 tried to recover wall-clock time by splitting acceptance into matrix legs ( That restores per-job duration, but still runs the full S3 suite twice in CI and adds concurrent runner load on the shared Apache queue. Review feedback was to avoid that plumbing and a full matrix, we should not pay 2× the total work, whether sequentially or in parallel. Proposed Approach: Partition CLI Across Existing Compose Legs (OzoneFS-Style)We already split coverage across different acceptance environments using Robot variables instead of rerunning the same suite everywhere. For example, OzoneFS uses
Proposal: Treat
No new acceptance suites and no workflow changes. The number of full How to Split v1 vs v2Pattern A - One CLI per script (most legs)
Pattern B - EC pair (unsecure vs secure)
Pattern C - HA-unsecure layout loop (split across existing runs, no extra invocations)
Proposal: Add a
Expected totals: 10 full Why This Split?
Trade-offEach Robot case runs under one CLI on one backend configuration. We do not run every test with both CLIs on the same cluster. Regressions that occur only with the other CLI on the same backend would require a different leg or a targeted test. Does this partition look reasonable before I commit and push the changes? I am happy to adjust the |
|
Thanks @sreejasahithi, sounds good to me. |
|
@sreejasahithi #11761 removed some duplicate S3 combinations. |
|
@jojochuang Could you please also review the plan. |
|
Given that HDDS-17707 is moving towards removing AWS CLI/SDK v1 entirely rather than maintaining support for both versions, I wanted to highlight that this PR (HDDS-16467) may no longer be necessary.
Once the runner image is bumped, every S3 smoketest runs on v2 automatically, so the dual-run / AWS_CLI split this PR adds is no longer needed. If any v2 behaviour differences that break the smoketests will be taken care in the runner-bump PR. CC: @adoroszlai @jojochuang what do you think? Does it make sense to close this PR given the direction of HDDS-17707? |
Agree. Thanks @sreejasahithi for working on this. |
What changes were proposed in this pull request?
Run smoketest/s3/ with both aws (v1) and aws2 (v2)
The runner version is updated by : #11431
What is the link to the Apache JIRA
HDDS-16467
How was this patch tested?
Green CI: https://github.com/sreejasahithi/ozone/actions/runs/38346577758