Skip to main content

⚠️ Discontinuation of project

This project is no longer actively maintained by Astronomer, but we'd love to see it live on in the community. While Astronomer has paused development and is not accepting new contributions, bug fixes or releases, the code is still here for you to explore, fork and adapt under the terms of its license. Please note that it may not work with the latest dependencies or platforms, and it could contain security vulnerabilities. Astronomer can't offer guarantees or warranties for its use. If you're interested in adopting or stewarding this project, we'd be happy to chat, reach us at oss@astronomer.io. Thanks for being part of the open-source journey and helping keep great ideas alive!

Pulumi Provider Logo

Pulumi Provider

Pulumi IaaC in Airflow.

Created with ❤️ by the CETA Team @ Astronomer

An airflow provider to:

  • preview infrastructure resources before deployment
  • deploy infrastructure resources via Pulumi
  • destroy infrastructure resources

This package currently contains

1 hook :

  • airflow_provider_pulumi.hooks.automation.PulumiAutoHook - a hook to setup the Pulumi backend connection.

4 operators :

  • airflow_provider_pulumi.operators.base.BasePulumiOperator - the base operator for Pulumi.
  • airflow_provider_pulumi.operators.preview.PulumiPreviewOperator - an operator that previews the deployment of infrastructure resources with Pulumi.
  • airflow_provider_pulumi.operators.up.PulumiUpOperator - an operator that deploys infrastructure resources with Pulumi.
  • airflow_provider_pulumi.operators.destroy.PulumiDestroyOperator - an operator that destroys infrastructure resources with Pulumi.

Requirements

These operators require the Pulumi client to be installed. Use the following script to install the Pulumi client in your Airflow environment:

curl -fsSL https://get.pulumi.com | sh
export PATH="$HOME/.pulumi/bin:$PATH"

Quick start

pip install airflow-provider-pulumi

# example_pulumi_dag.py
from datetime import datetime

from airflow.decorators import dag
from airflow_provider_pulumi.operators.destroy import PulumiDestroyOperator
from airflow_provider_pulumi.operators.preview import PulumiPreviewOperator
from airflow_provider_pulumi.operators.up import PulumiUpOperator


@dag(
    schedule_interval=None,
    start_date=datetime(2022, 1, 1),
    tags=["example"],
)
def example_pulumi():
    def create_s3_bucket():
        import pulumi
        import pulumi_aws as aws

        # Creates an AWS resource (S3 Bucket)
        bucket = aws.s3.Bucket("my-bucket")

        # Exports the DNS name of the bucket
        pulumi.export("bucket_name", bucket.bucket_domain_name)

    preview_s3_create_task = PulumiPreviewOperator(
        task_id="preview_s3_create",
        pulumi_program=create_s3_bucket,
        stack_config={"aws:region": "us-west-2"},
        plugins={"aws": "v5.0.0"},
    )

    s3_create_task = PulumiUpOperator(
        task_id="s3_create",
        pulumi_program=create_s3_bucket,
        stack_config={"aws:region": "us-west-2"},
        plugins={"aws": "v5.0.0"},
    )

    s3_destroy_task = PulumiDestroyOperator(
        task_id="s3_destroy",
        pulumi_program=create_s3_bucket,
        stack_config={"aws:region": "us-west-2"},
        plugins={"aws": "v5.0.0"},
    )

    preview_s3_create_task >> s3_create_task >> s3_destroy_task


example_pulumi_dag = example_pulumi()

Development

Unit Tests

Unit tests are located at tests, the Pulumi client is required to run these tests. Execute with pytest.

Metadata

Release files for airflow-provider-pulumi 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for airflow-provider-pulumi 0.1.3
File Size Uploaded
airflow_provider_pulumi-0.1.3.tar.gz 8.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for airflow-provider-pulumi 0.1.3
File Interpreter ABI Platform
airflow_provider_pulumi-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 19.8 kB

Release files / airflow_provider_pulumi-0.1.3.tar.gz

Download URL airflow_provider_pulumi-0.1.3.tar.gz
Size 8.8 kB
Tags Source
SHA-256 checksum
How to use checksums
6c631c96bc124237fe3a18fe0cca6982341ca10eb2064c026b8033886483fe54
BLAKE2b-256 checksum
How to use checksums
3ac64946ec6ba55f344663bc473f087b841844e1b4e704009ce431982c5b9e96
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.

Transparency log

Release files / airflow_provider_pulumi-0.1.3-py3-none-any.whl

Download URL airflow_provider_pulumi-0.1.3-py3-none-any.whl
Size 11.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1c5e4fd0aab0c17a449a11afd46c9a382b8fb2a464f34349674a8dd9b45a9a38
BLAKE2b-256 checksum
How to use checksums
c14232b9c92ca1a6f6a72997a05e521ccbb5c77540c622b752a9370957983999
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page