Skip to content

Enable shared Azure and OneLake test resources for maintainers #773

Open

Description

@kevinjqliu

@crepererum and I were talking the other day and it might be a good idea to get access to a real azure bucket to test against -- perhaps @kevinjqliu could help facilitate this somehow (I am not sure the best way to integrate real integration tests)

Originally posted by @alamb in #711 (comment)

Context

Disclosure: I am a Microsoft employee and currently work on Microsoft OneLake, our SaaS data lake offering.

I’m happy to help provide real Azure buckets and OneLake accounts for testing against production services. This repo is important to us in Azure Storage and Azure Data, and we want to help ensure compatibility and alignment with the open source ecosystem.

There may also be a possibility of sponsorship through Microsoft Open Source.

I’d love to hear thoughts on the best way to proceed. I can provision accounts and share access with maintainers. I’m also happy to move the conversation to the dev list if that would be better.

Activity

  1. alamb commented on Jun 22, 2026

    @alamb
    Contributor

    What I think is missing from our Azure/OneLake testing strategy is

    1. Being able to test a proposed change against a real endpoint to make sure the 1) feature does what is desired, and 2) doesn't break anything else.
    2. Ensure that as the backend service continues to evolve, the object_store APIs keep working as designed

    We currently use the "Azurite" emulator for this in the integration tests, but that comes with the same caveats as any emulator.

    I am not sure that trying to integrate a real azure bucket into the automated CI is a good idea due to the maintenance burden of keeping it working, secret management, etc.

    Maybe we could make a semi-automated way to run the tests with some given credentials and then trigger that outside the main repo for particular PRs 🤔

  2. kevinjqliu commented on Sep 29, 2026

    @kevinjqliu
    ContributorAuthor

    Following up on this, I took some time to investigate and I see 3 parallel paths.

    1. I have $150/month in Azure credit courtesy of being an MSFT FTE, and I'm happy to provide it as a way to improve the testing strategy against real Azure endpoints. It automatically stops once the credit is reached within a month, so there's no additional financial risk to me 😄

      I think this fits well with @alamb's suggestion above. Instead of putting this into the main CI, we can have a semi-automated way to run the integration tests against real Azure resources for specific PRs. I can also help provide OneLake access for testing.

    2. Microsoft also has a [Free and Open Source Software Fund (FOSS Fund)](https://github.com/microsoft/foss-fund) specifically for supporting open source projects. For example, apache/solr was recently accepted. Any MSFT FTE can nominate a project, and I've already nominated this one. Will report back if I hear anything.

    3. Since this is an Apache project, another path is to ask ASF if they can help provide Azure resources. ASF's [Targeted Sponsorship Policy](https://www.apache.org/foundation/docs/targeted-sponsorship-policy.html) specifically calls out Microsoft Azure Credits as an example. This seems like a better long-term home for shared test infrastructure than tying it to my personal Azure subscription.

  3. alamb commented on Oct 5, 2026

    @alamb
    Contributor
  4. crepererum commented on Oct 6, 2026

    @crepererum
    Contributor

    TBH if tests aren't "convenient" and/or don't run on most/all PRs, then I think they have rather limited value. Even today people can test manually against an actual cloud provider. The issue is rather that a) most people don't and b) the emulators that we have don't reflect the actual upstream behavior.

  5. alamb commented on Oct 6, 2026

    @alamb
    Contributor

    TBH if tests aren't "convenient" and/or don't run on most/all PRs,

    Yeah, this is why I was thinking something automated (but in another repository) could at least give us coverage without manually intervention (unless there is a failure)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions