We have A POC for Github Actions done by Tomek, and the blocker there
was precisely Kubernetes tests and specifically running kind cluster
in the Github Actions
https://github.com/PolideaInternal/airflow/pull/542 . In the meantime
Jiaje Zhong is trying to make it works on GA we discussed this very
thing today at slack:
https://apache-airflow.slack.com/archives/CCPRP7943/p1585073249374200

For me this is the next thing I will look at after merging
requirements PR and Prod image PR (and those two are a bit
pre-requisites to make it stable and fast).   I want to switch to the
Production Image to run Kubernetes tests (they will be much faster)
and then we can work out much faster how to run them on Github
Actions. Then we can add Helm charts to run all those different
deployments. I am really looking forward to it!

I hope - this weekend I move forward all of that and have a PR that we
can start running tests on and replacing the resources with helm
chart.

J.

On Thu, Mar 26, 2020 at 4:20 PM Daniel Imberman
<daniel.imber...@gmail.com> wrote:
>
> @Steven glad to help you out on that.
>
> For the moment we only use travis, but I believe @jarek has been looking to 
> move to GitHub CI/CD. Perhaps we can use this as our first GitHub tests?
> On Mar 26, 2020, 8:17 AM -0700, Steven Miller <ste...@astronomer.io.invalid>, 
> wrote:
> > Hey I’m happy to PR in the chart and get the CI working to test it. Where
> > do we want to run it? Do you all just use Travis only?
> >
> > Steven
> >
> > On Thu, Mar 26, 2020 at 10:59 AM Daniel Imberman <daniel.imber...@gmail.com>
> > wrote:
> >
> > > @Jarek I think with the helm chart + prod image we can go even further
> > > than that :). We can test CeleryExecutor, with KEDA autoscaling, and a
> > > bunch of other configurations.
> > > On Mar 26, 2020, 7:45 AM -0700, Jarek Potiuk <jarek.pot...@polidea.com>,
> > > wrote:
> > > > Yeah. I meant Custom Resources not CRDs in my original email :)
> > > >
> > > > > On Thu, Mar 26, 2020 at 3:38 PM Daniel Imberman <
> > > daniel.imber...@gmail.com> wrote:
> > > > > > We’re not using CRDs for the tests at the moment. We just have
> > > deployment files. If anything having the helm chart as a part of the
> > > airflow repo could mean that the helm chart becomes the defacto system for
> > > testing airflow on kubernetes (we can get rid of all the yams files and 
> > > run
> > > multiple k8s tests with different settings).
> > > > > > On Mar 26, 2020, 7:20 AM -0700, Greg Neiheisel
> > > <g...@astronomer.io.invalid>, wrote:
> > > > > > > Yep, we can absolutely pull it into the airflow repo. We've also
> > > been
> > > > > > > building up a test suite that currently runs on CircleCI and uses
> > > kind
> > > > > > > (Kubernetes in Docker) to test several kubernetes versions with
> > > some
> > > > > > > different settings. Right now we're mostly testing the different
> > > executors
> > > > > > > since that has the biggest impact on what gets deployed, but that
> > > can be
> > > > > > > expanded.
> > > > > > >
> > > > > > > What CRDs are currently being used to run Airflow for the tests?
> > > > > > >
> > > > > > > On Wed, Mar 25, 2020 at 11:06 AM Jarek Potiuk <
> > > jarek.pot...@polidea.com>
> > > > > > > wrote:
> > > > > > >
> > > > > > > > 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
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > --
> > > > > > > *Greg Neiheisel* / Chief Architect Astronomer.io
> > > >
> > > >
> > > > --
> > > > Jarek Potiuk
> > > > Polidea | Principal Software Engineer
> > > > M: +48 660 796 129
> > > >
> > >



-- 

Jarek Potiuk
Polidea | Principal Software Engineer

M: +48 660 796 129

Reply via email to