An opinionated implementation of exclusively using airflow DockerOperators for all Operators
Project description
airflow-docker
Description
An opinionated implementation of exclusively using airflow DockerOperators for all Operators.
Default Operator
from airflow_docker.operator import Operator
task = Operator(
image='some-image:latest',
...
)
Default Sensor
from airflow_docker.operator import Sensor
sensor = Sensor(
image='some-image:latest',
...
)
Task Code
from airflow_docker_helper import client
client.sensor(True)
Branch Operator
Dag Task
from airflow_docker.operator import BranchOperator
branching_task = BranchOperator(
image='some-image:latest',
...
)
Task Code
from airflow_docker_helper import client
client.branch_to_tasks(['task1', 'task2'])
Short Circuit Operator
Dag Task
from airflow_docker.operator import ShortCircuitOperator
short_circuit = ShortCircuitOperator(
image='some-image:latest',
...
)
Task Code
from airflow_docker_helper import client
client.short_circuit() # This task will short circuit if this function gets called
Context Usage
Dag Task
from airflow_docker.operator import Operator
task = Operator(
image='some-image:latest',
provide_context=True,
...
)
Task Code
from airflow_docker_helper import client
context = client.context()
Configuration
The following operator defaults can be set under the airflowdocker
namespace:
- force_pull (boolean true/false)
- auto_remove (boolean true/false)
- network_mode
For example, to set force_pull
to False by default set the following environment variable like so:
export AIRFLOW__AIRFLOWDOCKER__FORCE_PULL=false
Plugin
This package works as an airflow plugin as well. When installed and running airflow, dags can import like so
from airflow.{type, like "operators", "sensors"}.{name specificed inside the plugin class} import *
i.e.
from airflow.operators.airflow_docker import Operator
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
File details
Details for the file airflow-docker-0.4.3.tar.gz
.
File metadata
- Download URL: airflow-docker-0.4.3.tar.gz
- Upload date:
- Size: 12.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/39.2.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.6.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c288dbb7439b80c3f7e49dc1d5674d27ab1966c57297c83d2a354309b2523889 |
|
MD5 | 35dceaed3e8842ef2cb34b846a7400ae |
|
BLAKE2b-256 | 8faaab488571e5ec653077f2ce4cde45e357cbe7a65d87443c352842c0d080cd |
File details
Details for the file airflow_docker-0.4.3-py2.py3-none-any.whl
.
File metadata
- Download URL: airflow_docker-0.4.3-py2.py3-none-any.whl
- Upload date:
- Size: 13.0 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/39.2.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.6.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c85620d791e36c7f3f911d29d5b55d377c40f8b1cd5ee500727e8303cd1ca6c8 |
|
MD5 | 9e5c7dc5c5a3190cea3e2290c2193769 |
|
BLAKE2b-256 | 530d6b28dde699bf534a8168840cd76f6c98fec35b9e162c5e7fa0a3583d3e2e |