Home

Awesome

This is a very light demonstration of how the gusty package works with Airflow to assist in the organization, construction, and management of DAGs, tasks, dependencies, and operators. It requires that you have Docker and Docker Compose installed on your machine.

TL;DR

gusty takes YAML specifications of individual tasks and converts those specs into full Airflow DAGs. gusty includes full support for Airflow DAGs, task groups, tasks, dependencies, external dependencies, and more.

If don't have time to run the demo, please check out the "Why You Should Try gusty" section below.

Lastly, here is how gusty renders the more_gusty DAG:

a rendered gusty DAG

Running the demo

Up and Running

  1. Clone this repository to your local machine
  2. In your terminal, while in the gusty-demo-lite directory, run docker-compose build
  3. Once the build is done, run docker-compose up

Once you see this:

|  ____    |__( )_________  __/__  /________      __
| ____  /| |_  /__  ___/_  /_ __  /_  __ \_ | /| / /
| ___  ___ |  / _  /   _  __/ _  / / /_/ /_ |/ |/ /
|  _/_/  |_/_/  /_/    /_/    /_/  \____/____/|__/

You are good to go check out Airflow at localhost:8080 in your browser! You can log in with the username gusty and the password demo.

Security Note

Please note this demo is not safe, as usernames, passwords, and keys are stored in plain text in the docker-compose.yml file. In general, you should store these sensitive items in your environments. For a more secure demonstration of gusty with Airflow, please go to the full-sized gusty demo.

A Bigger Demo is Available

If you have tried this demo, and think gusty is cool but you don't see a reason to use it yet, please check out the full-sized gusty demo, which provides proofs of concept for how gusty helps enable:

Note the bigger demo takes a while longer to build, which is why we made a light demo here.

Why You Should Try gusty

Below are all of the current gusty features, as described in the more_gusty DAG docs:

Everything can be specified as YAML (or other file formats)

Defaults can be specified in create_dag

DAG-level features (which can be placed either in create_dag or a METADATA.yml file)

Task Group features

Note shown here but also very useful