Skip to content

Conversation

@michalcabir-ui
Copy link
Contributor

Summary & Motivation

This PR implements the infrastructure for Dagster-Azure Components, enabling declarative YAML configuration for Azure resources.

We leverage the existing credential classes in dagster-azure by making them dg.Resolvable. This supports environment variable resolution directly within the existing resource structure, avoiding the need for separate credential components.

Key Changes
Credentials: Updated AzureBlobStorage and ADLS2 credential config classes to inherit from dg.Resolvable.

Components: Implemented Pydantic-based components for:

AzureBlobStorageResourceComponent

ADLS2ResourceComponent

ADLS2PickleIOManagerComponent

Registration: Registered dagster_azure in setup.py entry points.

How I Tested These Changes

dagster_azure_tests/components/test_azure_components.py:

Sandbox Integration: Validated full YAML-to-Resource lifecycles using the create_defs_folder_sandbox pattern for Blob Storage, ADLS2, and IO Managers.

Field Synchronization: Added parameterized unit tests to ensure that component configuration schemas match the underlying ConfigurableResource models (checking for missing or extra fields).

Credential Resolution: Verified that different credential types (SAS, Key) are correctly resolved from YAML attributes.

Changelog

Added dagster_azure.components module with foundational infrastructure.

Updated AzureBlobStorage and ADLS2 credential configuration classes to inherit from dg.Resolvable.

Implemented AzureBlobStorageResourceComponent and ADLS2ResourceComponent.

Implemented ADLS2PickleIOManagerComponent.

Registered dagster_azure components in setup.py entry points.

test: Added integration tests using the Dagster sandbox pattern and field synchronization checks.

docs: Added a guide for Azure Components in docs/docs/integrations/libraries/azure/components.md.

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.

1 participant