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, if you have Python >= 3.10 installed via pip
:
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 folder, and create a
workflow/
folder. Add your workflows files to it - Determine the specific translation ruleset via:
- the Origins documentation
- the
orbiter list-rulesets
command - or by creating a translation ruleset, if one does not exist
- Install the translation ruleset via the
orbiter install
command (substituting<REPOSITORY>
with the value in the last step) - Use the
orbiter translate
command with the<RULESET>
determined in the last step This will produce output to anoutput/
folder: - Review the contents of the
output/
folder. If extensions or customizations are required, review how to extend a translation ruleset - (optional) Utilize the
astro
CLI to run Airflow instance with your migrated workloads - (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
@rule
functions, as required. A higher priority means this rule will be applied first.@task_rule
Reference Rules
have anif/else
statement - they must always return a single thing or nothingOrbiterSSHOperator
Reference- Append the new Rule
to the
translation_ruleset
-
Invoke the
orbiter
CLI, pointing it at your customized ruleset, and writing output to anoutput/
folder: - 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-translations
repository, or write aTranslationRuleset
and 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.