Awesome Jarek. I just opened up a draft PR that adds the chart into the Airflow repo. https://github.com/apache/airflow/pull/8777
It still contains some of our packaging, testing and releasing scripts. I figure they can serve as a starting point to discuss how we'd want to replicate into Airflow infrastructure. Looking forward to getting some feedback and moving this along! On Tue, Apr 28, 2020 at 8:00 AM Jarek Potiuk <jarek.pot...@polidea.com> wrote: > Hey Greg, > > I just wanted to update you with some recent changes I've done to automate > most of the image builds stuff we have in Airflow. That might be useful for > your efforts. > > I am adding (and I will fix some of them very soon) issues based on > feedback from people on the #prod-docker-image channel: > https://github.com/apache/airflow/issues?q=is%3Aopen+is%3Aissue+label%3Aarea%3Aproduction-image > But in the meantime all the build/CI infrastructure has nicely fallen into > place and It's almost complete (one thing missing but very simple is > automated builds of release images - for now this is manual but it is super > easy change and I will add it before 1.10.11 for sure). > > I described the whole build infrastructure here: > https://github.com/apache/airflow/blob/master/CI.rst including how image > caching works, how nightly builds and images are triggered. I hope it will > be helpful in the helm-chart work. Any questions or asks for the image - > please let me know, it is super easy to update the image now when we have > infrastructure to build it automatically integrated well with Github > Actions and DockerHub. > > J. > > > > > > > > > On Fri, Apr 10, 2020 at 7:23 PM Jarek Potiuk <jarek.pot...@polidea.com> > wrote: > >> Awesome, thanks for the update! >> >> On Fri, Apr 10, 2020 at 6:57 PM Greg Neiheisel <g...@astronomer.io> >> wrote: >> >>> Hey everyone, just wanted to post a quick update on the helm chart. >>> We're in the process of removing any references to Astronomer specific >>> things and making them more general features. That work is happening on >>> this PR here https://github.com/astronomer/airflow-chart/pull/66. >>> Hoping to wrap up the last few outstanding items and open up a PR to >>> Airflow next week sometime! >>> >>> On Fri, Apr 3, 2020 at 10:19 AM Daniel Imberman < >>> daniel.imber...@gmail.com> wrote: >>> >>>> Hi Jarek, >>>> >>>> Congrats on getting the image out! This is going to make a lot of >>>> things easier :). We’ve actually been working on separating out KinD as >>>> well (and in fact moving it out of travis and into GitHub issues). Let me >>>> circle back with Steven (the engineer who’s been working on that) and get a >>>> status report from him. >>>> >>>> I will also take some time today to get our helm chart to work with >>>> the airflow master image. It’s been a bit crazy around here in the last few >>>> weeks but I am consistently pushing to make sure we make the final changes >>>> of ripping out any remaining platform components before we donate :). >>>> >>>> I agree that docker hub automation will be great. This will also allow >>>> us to have a nightly build for any integration/UI tests we build. >>>> >>>> Thanks again Jarek! >>>> >>>> Daniel >>>> >>>> via Newton Mail >>>> <https://cloudmagic.com/k/d/mailapp?ct=dx&cv=10.0.32&pv=10.14.6&source=email_footer_2> >>>> >>>> On Fri, Apr 3, 2020 at 1:04 AM, Jarek Potiuk <jarek.pot...@polidea.com> >>>> wrote: >>>> >>>> Hello Greg and Daniel, >>>> >>>> Production image is merged and it's also going to be released in >>>> 1.10.10. For now, I will manually tag the release in DockerHub when we >>>> release but we will automate that in the future. Currently, we have >>>> *airflow:master* and *airflow:v1-10-test* images (for all supported >>>> python versions) that you can use for testing with the Helm chart! >>>> >>>> The next things from my side: >>>> >>>> * I will automate DockerHub building for the prod image from master - >>>> for now only CI is automated but we need to add prod image as well >>>> * I will move kind-cluster creation outside of the container and use >>>> production image for our CI Kubernetes tests. I have a WIP branch on it and >>>> I think I should have it early next week >>>> * The next step will be to switch our CI to Github Actions finally. I >>>> think we will run both Travis and GA for a short time to make sure it works >>>> * I will ask people for options they would like to have in the image - >>>> additional packages etc. so that I can work on the next iteration of the >>>> image. Also if you have any needs to see for the Helm integration, I am >>>> super happy to incorporate them in the next version. I plan to keep the >>>> "master" and "v1-10-test" images updated with any new changes and push >>>> images regularly >>>> * I am happy to help with the Helm Chart, so let me know if you need >>>> anything! >>>> >>>> J. >>>> >>>> >>>> On Mon, Mar 30, 2020 at 11:21 PM Jarek Potiuk <jarek.pot...@polidea.com> >>>> wrote: >>>> >>>>> Hello Daniel and Greg. >>>>> >>>>> I think the production image for Airflow is quite ready for the final >>>>> review and merge. I did some tests and I think it's quite complete now. >>>>> >>>>> The PR is running it's Travis build: >>>>> https://github.com/apache/airflow/pull/7832 >>>>> >>>>> I already pushed the image to DockerHub - so that the next time it is >>>>> merged It will use it as a base and will be rather quickly built using >>>>> those images as a cache. Once it is merged, I will add the automated build >>>>> in DockerHub and merge it to 1.10. As the next step I also plan to use the >>>>> prod image for our Kubernetes tests (that will help with moving to the >>>>> GitHub Actions from Travis). >>>>> >>>>> I added quite a comprehensive documentation - explaining all ins- and >>>>> outs- of both CI and PROD images >>>>> https://github.com/PolideaInternal/airflow/blob/add-production-docker-image/IMAGES.rst >>>>> . >>>>> >>>>> You can build it yourself using manual build process described in the >>>>> doc or (easier) using Breeze. That includes using the same Dockerfile to >>>>> build older Airflow version from the 1.10.* line. >>>>> >>>>> Feel free to use the new image in the Helm Chart you have - happy to >>>>> review the PRs. The image is available at >>>>> 'apache/airflow:master-python3.6' >>>>> and 'apache/airflow:master-python3.7` - once we merge it to 1.10 and >>>>> release 1.10.10 we will also have it automatically published for 1.10.10 >>>>> and beyond. >>>>> >>>>> Happy to hear your review comments and hope to merge it very soon. >>>>> J. >>>>> >>>>> On Thu, Mar 26, 2020 at 4:38 PM Jarek Potiuk <jarek.pot...@polidea.com> >>>>> wrote: >>>>> >>>>>> Absolutely! Please do :). The more eyes on this the better! >>>>>> >>>>>> On Thu, Mar 26, 2020 at 4:32 PM Daniel Imberman < >>>>>> daniel.imber...@gmail.com> wrote: >>>>>> >>>>>>> @Jarek Steven and I will look into getting KinD to work on GitHub >>>>>>> actions today. If we can get that working, we can donate the helm chart >>>>>>> and >>>>>>> possibly even deprecate the old Kubernetes tests in the process. >>>>>>> On Mar 26, 2020, 8:27 AM -0700, Jarek Potiuk < >>>>>>> jarek.pot...@polidea.com>, wrote: >>>>>>> > 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 >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> >>>>>> Jarek Potiuk >>>>>> Polidea <https://www.polidea.com/> | Principal Software Engineer >>>>>> >>>>>> M: +48 660 796 129 <+48660796129> >>>>>> [image: Polidea] <https://www.polidea.com/> >>>>>> >>>>>> >>>>> >>>>> -- >>>>> >>>>> Jarek Potiuk >>>>> Polidea <https://www.polidea.com/> | Principal Software Engineer >>>>> >>>>> M: +48 660 796 129 <+48660796129> >>>>> [image: Polidea] <https://www.polidea.com/> >>>>> >>>>> >>>> >>>> -- >>>> >>>> Jarek Potiuk >>>> Polidea <https://www.polidea.com/> | Principal Software Engineer >>>> >>>> M: +48 660 796 129 <+48660796129> >>>> [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 <+48660796129> >> [image: Polidea] <https://www.polidea.com/> >> >> > > -- > > Jarek Potiuk > Polidea <https://www.polidea.com/> | Principal Software Engineer > > M: +48 660 796 129 <+48660796129> > [image: Polidea] <https://www.polidea.com/> > > -- *Greg Neiheisel* / Chief Architect Astronomer.io