john_g
05/20/2020, 5:59 PMdouwe_maan
05/20/2020, 6:04 PMjohn_g
05/20/2020, 6:04 PMdouwe_maan
05/20/2020, 6:06 PMjohn_g
05/20/2020, 6:06 PMdouwe_maan
05/20/2020, 7:42 PMschedules defined in meltano.yml, but to iterate over all projects in a specific directory (or hardcoded list), and repeat the process for each.
Each project could be its own Git repo, and you could have one master project with that main Airflow DAG, pulling in all other projects as submodules. Then adding a Meltano project (which I imagine would happen sometimes?) would be a matter of spinning up a new Meltano project, pushing it to Git, adding it as a submodule to your main project, and then deploying it so that the production Airflow instance will rerun the DAG generator and pick up the new projectsdouwe_maan
05/20/2020, 7:43 PMmeltano ui in each project and manage those instances separately, but for the moment you may not need the UI at all and the Airflow UI may be sufficientdouwe_maan
05/20/2020, 7:44 PMdouwe_maan
05/20/2020, 7:51 PMDockerOperator rather than the BashOperator that's used today.
Each of your projects could have its own CI pipeline to generate the new docker image, that your Airflow DAG could reference by image URL/path/name.
It'd be easy to run meltano elt that way, but if you have your schedules defined in each project's meltano.yml , there's not currently a way for your master Airflow DAG generator to pull those out of each image using the CLI, so you wouldn't be able to use meltano schedule and instead would need to define the DAGs for each pipeline "manually" in your master project. It wouldn't be too hard to add a new command to list all of a project's schedules in a way that your master DAG generator could parse, of course, if you decide to go in that direction.
For the moment, I'd stick with the BashOperator and meltano elt though, like we do in the default DAG generator.john_g
05/20/2020, 11:44 PMdouwe_maan
05/20/2020, 11:47 PMjohn_g
05/20/2020, 11:48 PM