Apache Airflow Pulumi provider containing Operators & Hooks.
Project description
Pulumi Airflow Provider
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
.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for airflow-provider-pulumi-0.1.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9c2c5d63538558e2c2c3166b51d50230ec24aa4dfa29e862993eb1333561bbe7 |
|
MD5 | 28f95226d7195824b10398a238430ed1 |
|
BLAKE2b-256 | 9f8d32b53270df0db2ec42921001bd550867eb22857d437b8423adc8d972893c |
Close
Hashes for airflow_provider_pulumi-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 30e87036ccf2878f356a34248c51985b12af2b91b77b3c85bf156752c85b689e |
|
MD5 | 5b41b9fb4e5afca04ef24e8ed17cf0b7 |
|
BLAKE2b-256 | 406edf91442d2a3aafa4e2ae6a1b15ea19b240129a63a3c9ad90c7bba3f92d68 |