Skip to content

HDDS-16467. Run S3 smoketests with AWS CLI v1 and v2 (parallel CI) - #11569

Closed
jojochuang wants to merge 3 commits into
apache:masterfrom
jojochuang:HDDS-16467-parallel-ci
Closed

jojochuang wants to merge 3 commits into
apache:masterfrom
jojochuang:HDDS-16467-parallel-ci

Conversation

@jojochuang

Copy link
Copy Markdown
Contributor

Summary

  • Run smoketest/s3/ with AWS CLI v1 and v2 (from HDDS-16467. Run S3 smoketests with AWS CLI v1 and v2 #11509 base).
  • Parallel CI experiment: split acceptance jobs for HA-unsecure, HA-secure, secure, and EC into separate matrix legs (OZONE_AWS_CLI=aws|aws2) instead of running both CLIs sequentially in one job.

Motivation

Sequential v1+v2 in execute_s3_smoketests added ~30m wall clock on HA-unsecure acceptance. Parallel matrix legs should restore ~single-pass duration at the cost of extra runners.

Test plan

Generated-by: Cursor (Auto)

Made with Cursor

sreejasahithi and others added 2 commits October 13, 2026 09:57
Split acceptance matrix for suites that run the full s3 smoketest tree
(HA-unsecure, HA-secure, secure, EC) into separate jobs for aws and aws2
via OZONE_AWS_CLI, instead of running both sequentially in one job.

Co-authored-by: Cursor <cursoragent@cursor.com>
Change-Id: I322d41797b57cc2c807ec574f42a133a36c3914f
Copilot AI balanced review requested due to automatic review settings October 16, 2026 17:00
@jojochuang
jojochuang marked this pull request as draft October 16, 2026 17:02
@github-actions github-actions Bot added the CI label Oct 16, 2026
@adoroszlai

Copy link
Copy Markdown
Contributor

Please make sure to cancel CI run when changing an open pull request to draft.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

CLI argument handling can select unintended test coverage, and prefixed bucket names remove existing routing regression coverage.

1 open finding
What changed in this PR

Extends Ozone’s S3 smoketests to AWS CLI v1 and v2, with parallel CI jobs intended to reduce runtime.

Changes:

  • Splits four acceptance suites into separate CLI-version jobs.
  • Adds a shared runner supporting single-CLI or sequential dual-CLI execution.
  • Updates Robot tests for CLI selection, response differences, and test-data isolation.
File Description
hadoop-ozone/​dist/​src/​main/​smoketest/​s3/​rclone.robot Uses the selected CLI for credentials.
hadoop-ozone/​dist/​src/​main/​smoketest/​s3/​presignedurl.robot Uses the selected CLI for credentials.
hadoop-ozone/​dist/​src/​main/​smoketest/​s3/​objectlist.robot Uses the selected CLI for uploads.
hadoop-ozone/​dist/​src/​main/​smoketest/​s3/​MultipartUpload.robot Adapts credentials and timestamp parsing.
hadoop-ozone/​dist/​src/​main/​smoketest/​s3/​freon.robot Updates credential handling and test prefixes.
hadoop-ozone/​dist/​src/​main/​smoketest/​s3/​conditionalput.robot Prefixes keys and adjusts argument quoting.
hadoop-ozone/​dist/​src/​main/​smoketest/​s3/​commonawslib.robot Adds shared CLI compatibility helpers.
hadoop-ozone/​dist/​src/​main/​smoketest/​s3/​bucketlist.robot Uses the selected CLI for credential changes.
hadoop-ozone/​dist/​src/​main/​smoketest/​s3/​bucketcreate.robot Prefixes endpoint-named test buckets.
hadoop-ozone/​dist/​src/​main/​compose/​testlib.sh Adds the shared S3 test runner.
hadoop-ozone/​dist/​src/​main/​compose/​ozonesecure/​test.sh Adopts the shared runner.
hadoop-ozone/​dist/​src/​main/​compose/​ozonesecure/​test-vault.sh Adopts the shared runner.
hadoop-ozone/​dist/​src/​main/​compose/​ozonesecure-ha/​test.sh Adopts the shared runner.
hadoop-ozone/​dist/​src/​main/​compose/​ozonesecure-ha/​test-haproxy-s3g.sh Adopts the shared runner.
hadoop-ozone/​dist/​src/​main/​compose/​ozone-ha/​test.sh Adopts the shared runner across layouts.
hadoop-ozone/​dist/​src/​main/​compose/​ozone-ha/​test-haproxy-s3g.sh Adopts the shared runner.
hadoop-ozone/​dist/​src/​main/​compose/​common/​ec-test.sh Adopts the shared runner for EC.
hadoop-ozone/​dev-support/​checks/​acceptance.sh Passes CLI selection to acceptance tests.
dev-support/​ci/​acceptance_suites.sh Generates CLI-specific matrix entries.
.github/​workflows/​ci.yml Runs the expanded acceptance matrix.

🧠 Review effort: Balanced


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

: ${OZONE_OLD_VERSIONS:="${2:-}"}
export OZONE_OLD_VERSIONS
else
export OZONE_AWS_CLI="${2:-}"

@adoroszlai adoroszlai left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Summary from #11509 (comment):

  1. We should implement the parallel version in the first commit, not as follow-up.
  2. We should not run a full matrix. Adding parallel split may restore original wall-clock CI time, overall time would still increase significantly, affecting all other Apache projects (and our other repos), with whom we share the queue of runners. Simply running v1 and v2 in distinct environments (e.g. non-HA and HA, respectively) would also make all the plumbing changes unnecessary.

Co-authored-by: Cursor <cursoragent@cursor.com>
Change-Id: I05021b5967786d35795aba3ba2e86e2cee92030d
@jojochuang jojochuang closed this Oct 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants