Home
Astronomer Orbiter can land legacy workloads safely down in a new home on Apache Airflow!
What is Orbiter?¶
Orbiter is both a CLI and Framework for converting workflows from other orchestration tools to Apache Airflow.
Generally it can be thoughts of as:
flowchart LR
origin{{ XML/JSON/YAML/Etc Workflows }}
origin -->| ✨ Translations ✨ | airflow{{ Apache Airflow Project }}
The framework is a set of Rules and Objects that can translate workflows
from an Origin system to an Airflow project.
Installation¶
Install the orbiter CLI via pip (requires Python >= 3.10):
orbiter CLI
are available for download on the Releases page.
Translate¶
Utilize the orbiter CLI with existing translations to convert workflows
from other systems to an Airflow project.
- Set up a new
workflow/folder. Add your workflows files to it - Determine the specific translation ruleset and repository via:
- the Origins documentation
- the
orbiter list-rulesetscommand - or by creating a translation ruleset, if one does not exist
- Install the translation ruleset via the
orbiter installcommand - Translate workloads via the
orbiter translatecommand - Review the contents of the output folder (default:
output/). If extensions or customizations are required, review how to extend a translation ruleset - (optional) Initialize a full Airflow project
containing your migrated workloads with the
astroCLI - (optional) Deploy to Astro to run your translated workflows in production! 🚀
Authoring Rulesets & Customization¶
Orbiter can be extended to fit specific needs, patterns, or to support additional origins.
Read more specifics about how to use the framework at Rules and Objects
Extend or Customize¶
To extend or customize an existing ruleset, you can easily modify it with simple Python code.
- Set up your workspace as described in steps 1+2 of the Translate instructions
- Create a Python script, named
override.py -
Add contents to
override.py:- Importing specific translation ruleset, determined via the Origins page
- Importing required Objects
- Importing required Rule types
- Create one or more
@rulefunctions, as required. A higher priority means this rule will be applied first.@task_ruleReference Ruleshave anif/elsestatement - they must always return a single thing or nothingOrbiterSSHOperatorReference- Append the new Rule
to the
translation_ruleset
-
Invoke the
orbiter translatecommand, pointing it at your customized ruleset - Follow the remaining steps of the Translate instructions
Authoring a new Ruleset¶
You can utilize the TranslationRuleset Template
to create a new TranslationRuleset.
FAQ¶
-
Can this tool convert my workflows from tool X to Airflow?
If you don't see your tool listed in Supported Origins, contact us for services to create translations, create an issue in the
orbiter-community-translationsrepository, or write aTranslationRulesetand submit a pull request to share your translations with the community. -
Are the results of this tool under any guarantee of correctness?
No. This tool is provided as-is, with no guarantee of correctness. It is your responsibility to verify the results. We accept Pull Requests to improve parsing, and strive to make the tool easily configurable to handle your specific use-case.
Artwork Orbiter logo by Ivan Colic used with permission from The Noun Project under Creative Commons.