Skip to content

[history server][e2e] Add Azure Blob Storage E2E test for History Server#4460

Open
ikchifo wants to merge 10 commits intoray-project:masterfrom
ikchifo:feature/azure-historyserver-e2e
Open

[history server][e2e] Add Azure Blob Storage E2E test for History Server#4460
ikchifo wants to merge 10 commits intoray-project:masterfrom
ikchifo:feature/azure-historyserver-e2e

Conversation

@ikchifo
Copy link
Contributor

@ikchifo ikchifo commented Jan 29, 2026

Why are these changes needed?

This PR adds Azure Blob Storage support for the History Server E2E tests. It is a follow-up to #4413 which added Azure Blob Storage support for the Collector component.

With the Collector now supporting Azure Blob Storage, users need:

  1. An example deployment manifest showing how to configure the History Server for Azure
  2. E2E test coverage to ensure the History Server works correctly with Azure Blob Storage

Changes:

  • Add historyserver/config/historyserver-azureblob.yaml - History Server deployment configured for Azure Blob Storage (Azurite)
  • Add historyserver/test/e2e/historyserver_azureblob_test.go - E2E test for live clusters using Azure

Related issue number

Closes #4459

Checks

  • I've made sure the tests are passing.
  • Testing Strategy
    • Unit tests
    • Manual tests
    • This PR is not tested :(

@ikchifo ikchifo changed the title chore: add .worktrees to .gitignore [history server][e2e] Add Azure Blob Storage E2E test for History Server Jan 29, 2026
@ikchifo ikchifo force-pushed the feature/azure-historyserver-e2e branch from 0b56ac8 to faf0062 Compare January 29, 2026 19:50
Refactor ApplyHistoryServer to accept an optional manifest path parameter,
eliminating the need for a separate ApplyAzureHistoryServer function.
Remove PrepareAzureHistoryServerTestEnv as it was identical to
PrepareAzureBlobTestEnv.
@ikchifo ikchifo force-pushed the feature/azure-historyserver-e2e branch from faf0062 to 058506b Compare January 29, 2026 20:07
@ikchifo
Copy link
Contributor Author

ikchifo commented Feb 5, 2026

Bumping this @Future-Outlier. PTAL when you get the chance.

@Future-Outlier
Copy link
Member

Bumping this @Future-Outlier. PTAL when you get the chance.

will do this recently, tks!

@Future-Outlier
Copy link
Member

Hi, @ikchifo the CI fails, do you mind take a look?

@Future-Outlier Future-Outlier self-assigned this Feb 5, 2026
Signed-off-by: Future-Outlier <eric901201@gmail.com>
Copy link
Member

@Future-Outlier Future-Outlier left a comment

Choose a reason for hiding this comment

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

Hi, @ikchifo
I just helped you solve the merge conflict, do you mind help me add the dead cluster's e2e test? since this is the most important part of the history server.

Add e2e tests for Azure Blob Storage that verify history server
functionality after cluster deletion:
- testAzureDeadClusters: verifies all endpoints work for dead clusters
- testAzureLogFileEndpointLiveCluster: verifies log file access for live
- testAzureLogFileEndpointDeadCluster: verifies log file access for dead

Extract shared test helpers to avoid duplication between S3 and Azure:
- VerifyLogFileEndpointReturnsContent
- VerifyLogFileEndpointRejectsPathTraversal
- DeleteRayClusterAndWait
@ikchifo
Copy link
Contributor Author

ikchifo commented Feb 5, 2026

@Future-Outlier Added!

Also, to avoid code duplication between S3 and Azure tests, I extracted shared verification helpers into historyserver.go So both S3 and Azure (and GCS in future) tests can use them,:

  • VerifyLogFileEndpointReturnsContent - verifies log file endpoint returns content
  • VerifyLogFileEndpointRejectsPathTraversal - verifies path traversal is rejected
  • DeleteRayClusterAndWait - deletes a RayCluster and waits for full deletion

…luster-id

The Azure dead cluster tests were failing because the collector uploaded
logs to a path based on the hardcoded 'default' namespace, but the history
server searched for clusters in the test namespace.

Add --ray-cluster-id injection to ApplyAzureRayClusterWithCollector,
matching the behavior of the S3 test helper, so logs are uploaded to the
correct namespace-prefixed path.
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Update Azure collector tests to use namespace.Name instead of hardcoded
RayClusterID constant, matching the S3 collector test pattern. This
ensures the expected blob path matches the actual upload path when
--ray-cluster-id is injected dynamically.
@ikchifo ikchifo force-pushed the feature/azure-historyserver-e2e branch from 647bf88 to b7df758 Compare February 5, 2026 20:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[history server][e2e] Add Azure Blob Storage E2E test for History Server

2 participants