One thing for the donation.

Did you you want to have separate repository Greg ?

I think we should simply create a folder in Airflow repo and keep it
there (similarly as we keep Dockerfile). I am going to switch our
Kubernetes Tests to the production image (will make the tests much
faster) and I am going to test the Dockerfile automatically in CI -
for now we are using some custom Resource definitions to start Airflow
on Kubernetes Cluster for the tests, but we could switch to using the
helm chart  - this way we can test all three things at once:
- Kubernetes Executor
- Dockerfile
- Helm Chart
and we could also add more tests - for example testing different
deployment options for the helm chart.

Having the Helm chart in Airflow repo would  help with that -
especially in terms of future changes and testing them automatically.

J.

On Tue, Mar 24, 2020 at 9:09 PM Aizhamal Nurmamat kyzy
<aizha...@apache.org> wrote:
>
> +1 on the donation. Always happy to see more useful stuff for the
> community :)
>
> On Tue, Mar 24, 2020 at 9:20 AM Greg Neiheisel <g...@astronomer.io> wrote:
>
> > Yep, the cleanup_pods script is set up now as an optional Kubernetes
> > CronJob (
> > https://github.com/astronomer/airflow-chart/blob/master/templates/cleanup/cleanup-cronjob.yaml)
> > that we have run periodically to clean failed pods up and could stay
> > separate.
> >
> > The wait_for_migrations script could definitely be pulled into Airflow.
> > For context, we deploy an initContainer on the scheduler (
> > https://github.com/astronomer/airflow-chart/blob/master/templates/scheduler/scheduler-deployment.yaml#L77-L84)
> > that runs the upgradedb command before booting the scheduler. This new
> > wait_for_migration script runs in an initContainer on the webserver and
> > workers (
> > https://github.com/astronomer/airflow-chart/blob/master/templates/webserver/webserver-deployment.yaml#L58-L65)
> > so that they don't boot up ahead of a potentially long-running migration
> > and attempt to operate on new or missing columns/tables before the
> > migrations run. This prevents these pods from entering a CrashLoop.
> >
> > On Tue, Mar 24, 2020 at 11:48 AM Jarek Potiuk <jarek.pot...@polidea.com>
> > wrote:
> >
> >> >
> >> > @Tomasz great question. Our images are currently generated from
> >> Dockerfiles
> >> > in this repo https://github.com/astronomer/ap-airflow and get
> >> published to
> >> > DockerHub
> >> > https://hub.docker.com/repository/docker/astronomerinc/ap-airflow.
> >> >
> >> > For the most part those are typical Airflow images. There's an
> >> entrypoint
> >> > script that we include in the image that handles waiting for the
> >> database
> >> > and redis (if used) to come up, which is pretty generic.
> >>
> >>
> >> I already added waiting for the database (both metadata and celery URL) in
> >> the PR:
> >>
> >> https://github.com/apache/airflow/pull/7832/files#diff-3759f40d4e8ba0c0e82e82b66d376741
> >> .
> >> It's functionally the same but more generic.
> >>
> >> The only other
> >> > thing that I think the Helm Chart uses would be the scripts in this repo
> >> > https://github.com/astronomer/astronomer-airflow-scripts. Our
> >> Dockerfiles
> >> > pull this package in. These scripts are used to coordinate running
> >> > migrations and cleaning up failed pods.
> >> >
> >>
> >> I see two scripts:
> >>
> >> * cleanup_pods -> this is (I believe) not needed to run in airflow - this
> >> could be run  as a separate pod/container?
> >> * waiting for migrations  -> I think this is a good candidate to add
> >> *airflow
> >> db wait_for_migration* command and make it part of airflow itself.
> >>
> >> I think we also have to agree on the Airflow version supported by the
> >> official helm chart. I'd suggest we support 1.10.10+ and we incorporate
> >> all
> >> the changes needed to airflow (like the "db wait_for_migration")  into 2.0
> >> and 1.10 and we support both - image and helm chart for those versions
> >> only. That would help with people migrating to the latest version.
> >>
> >> WDYT?
> >>
> >>
> >> > On Tue, Mar 24, 2020 at 10:49 AM Daniel Imberman <
> >> > daniel.imber...@gmail.com>
> >> > wrote:
> >> >
> >> > > @jarek I agree completely. I think that pairing an official helm chart
> >> > > with the official image would make for a REALLY powerful “up and
> >> running
> >> > > with airflow” story :). Tomek and I have also been looking into
> >> > > operator-sdk which has the ability to create custom controllers from
> >> helm
> >> > > charts. We might even able to get a 1-2 punch from the same code base
> >> :).
> >> > >
> >> > > @kaxil @jarek @aizhamal @ash if there’s no issues, can we please start
> >> > the
> >> > > process of donation?
> >> > >
> >> > > +1 on my part, of course :)
> >> > >
> >> > >
> >> > >
> >> > > Daniel
> >> > > On Mar 24, 2020, 7:40 AM -0700, Jarek Potiuk <
> >> jarek.pot...@polidea.com>,
> >> > > wrote:
> >> > > > +1. And it should be paired with the official image we have work in
> >> > > > progress on. I looked a lot at the Astronomer's image while
> >> preparing
> >> > my
> >> > > > draft and we can make any adjustments needed to make it works with
> >> the
> >> > > helm
> >> > > > chart - and I am super happy to collaborate on that.
> >> > > >
> >> > > > PR here: https://github.com/apache/airflow/pull/7832
> >> > > >
> >> > > > J.
> >> > > >
> >> > > >
> >> > > > On Tue, Mar 24, 2020 at 3:15 PM Kaxil Naik <kaxiln...@gmail.com>
> >> > wrote:
> >> > > >
> >> > > > > @Tomasz Urbaszek <tomasz.urbas...@polidea.com> :
> >> > > > > Helm Chart Link: https://github.com/astronomer/airflow-chart
> >> > > > >
> >> > > > > On Tue, Mar 24, 2020 at 2:13 PM Tomasz Urbaszek <
> >> > turbas...@apache.org>
> >> > > > > wrote:
> >> > > > >
> >> > > > > > An official helm chart is something our community needs! Using
> >> your
> >> > > > > > chart as the official makes a lot of sens to me because as you
> >> > > > > > mentioned - it's battle tested.
> >> > > > > >
> >> > > > > > One question: what Airflow image do you use? Also, would you
> >> mind
> >> > > > > > sharing a link to the chart?
> >> > > > > >
> >> > > > > > Tomek
> >> > > > > >
> >> > > > > >
> >> > > > > > On Tue, Mar 24, 2020 at 2:07 PM Greg Neiheisel
> >> > > > > > <g...@astronomer.io.invalid> wrote:
> >> > > > > > >
> >> > > > > > > Hey everyone,
> >> > > > > > >
> >> > > > > > > Over the past few years at Astronomer, we’ve created, managed,
> >> > and
> >> > > > > > hardened
> >> > > > > > > a production-ready Helm Chart for Airflow (
> >> > > > > > > https://github.com/astronomer/airflow-chart) that is being
> >> used
> >> > by
> >> > > > > both
> >> > > > > > our
> >> > > > > > > SaaS and Enterprise customers. This chart is battle-tested and
> >> > > running
> >> > > > > > > hundreds of Airflow deployments of varying sizes and runtime
> >> > > > > > environments.
> >> > > > > > > It’s been built up to encapsulate the issues that Airflow
> >> users
> >> > run
> >> > > > > into
> >> > > > > > in
> >> > > > > > > the real world.
> >> > > > > > >
> >> > > > > > > While this chart was originally developed internally for our
> >> > > Astronomer
> >> > > > > > > Platform, we’ve recently decoupled the chart from the rest of
> >> our
> >> > > > > > platform
> >> > > > > > > to make it usable by the greater Airflow community. With these
> >> > > changes
> >> > > > > in
> >> > > > > > > mind, we want to start a conversation about donating this
> >> chart
> >> > to
> >> > > the
> >> > > > > > > Airflow community.
> >> > > > > > >
> >> > > > > > > Some of the main features of the chart are:
> >> > > > > > >
> >> > > > > > > - It works out of the box. With zero configuration, a user
> >> will
> >> > get
> >> > > > > a
> >> > > > > > > postgres database, a default user and the KubernetesExecutor
> >> > ready
> >> > > > > to
> >> > > > > > run
> >> > > > > > > DAGs.
> >> > > > > > > - Support for Local, Celery (w/ optional KEDA autoscaling) and
> >> > > > > > > Kubernetes executors.
> >> > > > > > >
> >> > > > > > > Support for optional pgbouncer. We use this to share a
> >> > configurable
> >> > > > > > > connection pool size per deployment. Useful for limiting
> >> > > connections to
> >> > > > > > the
> >> > > > > > > metadata database.
> >> > > > > > >
> >> > > > > > > - Airflow migration support. A user can push a newer version
> >> of
> >> > > > > > Airflow
> >> > > > > > > into an existing release and migrations will automatically run
> >> > > > > > cleanly.
> >> > > > > > > - Prometheus support. Optionally install and configure a
> >> > > > > > statsd-exporter
> >> > > > > > > to ingest Airflow metrics and expose them to Prometheus
> >> > > > > automatically.
> >> > > > > > > - Resource control. Optionally control the ResourceQuotas and
> >> > > > > > > LimitRanges for each deployment so that no deployment can
> >> > overload
> >> > > a
> >> > > > > > > cluster.
> >> > > > > > > - Simple optional Elasticsearch support.
> >> > > > > > > - Optional namespace cleanup. Sometimes KubernetesExecutor and
> >> > > > > > > KubernetesPodOperator pods fail for reasons other than the
> >> actual
> >> > > > > > task.
> >> > > > > > > This feature helps keep things clean in Kubernetes.
> >> > > > > > > - Support for running locally in KIND (Kubernetes in Docker).
> >> > > > > > > - Automatically tested across many Kubernetes versions with
> >> Helm
> >> > 2
> >> > > > > > and 3
> >> > > > > > > support.
> >> > > > > > >
> >> > > > > > > We’ve found that the cleanest and most reliable way to deploy
> >> > DAGs
> >> > > to
> >> > > > > > > Kubernetes and manage them at scale is to package them into
> >> the
> >> > > actual
> >> > > > > > > docker image, so we have geared this chart towards that
> >> method of
> >> > > > > > > operation, though adding other methods should be
> >> straightforward.
> >> > > > > > >
> >> > > > > > > We would love thoughts from the community and would love to
> >> see
> >> > > this
> >> > > > > > chart
> >> > > > > > > help others to get up and running on Kubernetes!
> >> > > > > > >
> >> > > > > > > --
> >> > > > > > > *Greg Neiheisel* / Chief Architect Astronomer.io
> >> > > > > >
> >> > > > >
> >> > > >
> >> > > >
> >> > > > --
> >> > > >
> >> > > > Jarek Potiuk
> >> > > > Polidea <https://www.polidea.com/> | Principal Software Engineer
> >> > > >
> >> > > > M: +48 660 796 129 <+48%20660%20796%20129> <+48660796129
> >> <+48%20660%20796%20129>>
> >> > > > [image: Polidea] <https://www.polidea.com/>
> >> > >
> >> >
> >> >
> >> > --
> >> > *Greg Neiheisel* / Chief Architect Astronomer.io
> >> >
> >>
> >>
> >> --
> >>
> >> Jarek Potiuk
> >> Polidea <https://www.polidea.com/> | Principal Software Engineer
> >>
> >> M: +48 660 796 129 <+48%20660%20796%20129> <+48660796129
> >> <+48%20660%20796%20129>>
> >> [image: Polidea] <https://www.polidea.com/>
> >>
> >
> >
> > --
> > *Greg Neiheisel* / Chief Architect Astronomer.io
> >



-- 

Jarek Potiuk
Polidea | Principal Software Engineer

M: +48 660 796 129

Reply via email to