{"id":21050000,"url":"https://github.com/astronomer/airflow-chart","last_synced_at":"2026-01-21T14:01:21.422Z","repository":{"id":37067341,"uuid":"235667815","full_name":"astronomer/airflow-chart","owner":"astronomer","description":"A Helm chart to install Apache Airflow on Kubernetes","archived":false,"fork":false,"pushed_at":"2026-01-15T20:36:23.000Z","size":5159,"stargazers_count":291,"open_issues_count":9,"forks_count":95,"subscribers_count":42,"default_branch":"master","last_synced_at":"2026-01-15T22:43:19.703Z","etag":null,"topics":["airflow","apache-airflow","astro-private-cloud","astronomer-software","helm-chart","kubernetes"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/astronomer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-01-22T21:12:21.000Z","updated_at":"2026-01-12T11:43:27.000Z","dependencies_parsed_at":"2025-11-29T16:04:17.677Z","dependency_job_id":null,"html_url":"https://github.com/astronomer/airflow-chart","commit_stats":null,"previous_names":[],"tags_count":172,"template":false,"template_full_name":null,"purl":"pkg:github/astronomer/airflow-chart","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astronomer%2Fairflow-chart","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astronomer%2Fairflow-chart/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astronomer%2Fairflow-chart/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astronomer%2Fairflow-chart/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/astronomer","download_url":"https://codeload.github.com/astronomer/airflow-chart/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astronomer%2Fairflow-chart/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28634785,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-21T04:47:28.174Z","status":"ssl_error","status_checked_at":"2026-01-21T04:47:22.943Z","response_time":86,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["airflow","apache-airflow","astro-private-cloud","astronomer-software","helm-chart","kubernetes"],"created_at":"2024-11-19T15:18:28.048Z","updated_at":"2026-01-21T14:01:21.409Z","avatar_url":"https://github.com/astronomer.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Astronomer's Helm Chart for Apache Airflow\n\nThis chart will bootstrap an [Airflow](https://github.com/astronomer/ap-airflow) deployment on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.\n\nThe version of this chart does not correlate to any other component. If it happens to align with OSS airflow that is just a coincidence. Users should not expect feature parity between OSS airflow chart and the Astronomer airflow-chart for identical version numbers.\n\n## Quickstart\n\nTo install this helm chart remotely (using helm 3)\n\n```sh\nkubectl create namespace airflow\n\nhelm repo add astronomer https://helm.astronomer.io\nhelm install airflow --namespace airflow astronomer/airflow\n```\n\nTo install this repository from source\n\n```sh\nkubectl create namespace airflow\nhelm install --namespace airflow .\n```\n\n## Prerequisites\n\n- Kubernetes 1.12+\n- Helm 3.6+\n- PV provisioner support in the underlying infrastructure\n\n## Installing the Chart\n\nTo install the chart with the release name `my-release`:\n\n```sh\nhelm install --name my-release .\n```\n\nThe command deploys Airflow on the Kubernetes cluster in the default configuration. The [Parameters](#parameters) section lists the parameters that can be configured during installation.\n\n\u003e **Tip**: List all releases using `helm list`\n\n## Upgrading the Chart\n\nFirst, look at the [updating documentation](UPDATING.md) to identify any backwards-incompatible changes.\n\nTo upgrade the chart with the release name `my-release`:\n\n```sh\nhelm upgrade --name my-release .\n```\n\n## Uninstalling the Chart\n\nTo uninstall/delete the `my-release` deployment:\n\n```sh\nhelm delete my-release\n```\n\nThe command removes all the Kubernetes components associated with the chart and deletes the release.\n\n## Updating DAGs\n\n### Bake DAGs in Docker image\n\nThe recommended way to update your DAGs with this chart is to build a new docker image with the\nlatest code (`docker build -t my-company/airflow:8a0da78 .`), push it to an accessible\nregistry (`docker push my-company/airflow:8a0da78`), then update the Airflow pods with that image:\n\n```sh\nhelm upgrade my-release . \\\n  --set images.airflow.repository=my-company/airflow \\\n  --set images.airflow.tag=8a0da78\n```\n\n## Docker Images\n\n- The Airflow image that are referenced as the default values in this chart are generated from this repository: https://github.com/astronomer/ap-airflow.\n- Other non-airflow images used in this chart are generated from this repository: https://github.com/astronomer/ap-vendor.\n\n## Parameters\n\nThe complete list of parameters supported by the community chart can be found on the [Parameteres Reference](https://airflow.apache.org/docs/helm-chart/stable/parameters-ref.html) page, and can be set under the `airflow` key in this chart.\n\nThe following tables lists the configurable parameters of the Astronomer chart and their default values.\n\n| Parameter                              | Description                                                                                               | Default                       |\n| :------------------------------------- | :-------------------------------------------------------------------------------------------------------- | :---------------------------- |\n| `ingress.enabled`                      | Enable Kubernetes Ingress support                                                                         | `false`                       |\n| `ingress.tlsSecretName`                | Name of secret that contains a TLS certificate and key                                                    | `~`                           |\n| `ingress.webserverAnnotations`         | Annotations added to Webserver Ingress object                                                             | `{}`                          |\n| `ingress.flowerAnnotations`            | Annotations added to Flower Ingress object                                                                | `{}`                          |\n| `ingress.baseDomain`                   | Base domain for VHOSTs                                                                                    | `~`                           |\n| `ingress.auth.enabled`                 | Enable auth with Astronomer Platform                                                                      | `true`                        |\n| `extraObjects`                         | Extra K8s Objects to deploy (these are passed through `tpl`). More about [Extra Objects](#extra-objects). | `[]`                          |\n| `sccEnabled`                           | Enable security context constraints required for OpenShift                                                | `false`                       |\n| `authSidecar.enabled`                  | Enable authSidecar                                                                                        | `false`                       |\n| `authSidecar.ingressAllowedNamespaces` | List of namespaces from which ingress traffic is allowed to auth sidecar                                  | `[]`                          |\n| `authSidecar.repository`               | The image for the auth sidecar proxy                                                                      | `nginxinc/nginx-unprivileged` |\n| `authSidecar.tag`                      | The image tag for the auth sidecar proxy                                                                  | `stable`                      |\n| `authSidecar.pullPolicy`               | The K8s pullPolicy for the the auth sidecar proxy image                                                   | `IfNotPresent`                |\n| `authSidecar.port`                     | The port the auth sidecar exposes                                                                         | `8084`                        |\n| `gitSyncRelay.enabled`                 | Enables [git sync relay](docs/git-sync-relay.md) feature.                                                 | `False`                       |\n| `gitSyncRelay.repo.url`                | Upstream URL to the git repo to clone.                                                                    | `~`                           |\n| `gitSyncRelay.repo.branch`             | Branch of the upstream git repo to checkout.                                                              | `main`                        |\n| `gitSyncRelay.repo.depth`              | How many revisions to check out. Leave as default `1` except in dev where history is needed.              | `1`                           |\n| `gitSyncRelay.repo.wait`               | Seconds to wait before pulling from the upstream remote.                                                  | `60`                          |\n| `gitSyncRelay.repo.subPath`            | Path to the dags directory within the git repository.                                                     | `~`                           |\n\nSpecify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,\n\n```sh\nhelm install --name my-release \\\n  --set executor=CeleryExecutor \\\n  --set enablePodLaunching=false .\n```\n\n## Walkthrough using kind\n\n### Install kind, and create a cluster\n\nWe recommend testing with the latest version of kubernetes listed in [metadata.yaml](metadata.yaml):\n\n```sh\nkind create cluster --image kindest/node:v1.30.2\n```\n\nConfirm it's up:\n\n```sh\nkubectl cluster-info --context kind-kind\n```\n\n### Add Astronomer's Helm repo\n\n```sh\nhelm repo add astronomer https://helm.astronomer.io\nhelm repo update\n```\n\n### Create namespace + install the chart\n\n```sh\nkubectl create namespace airflow\nhelm install airflow -n airflow astronomer/airflow\n```\n\nIt may take a few minutes. Confirm the pods are up:\n\n```sh\nkubectl get pods --all-namespaces\nhelm list -n airflow\n```\n\nRun `kubectl port-forward svc/airflow-webserver 8080:8080 -n airflow`\nto port-forward the Airflow UI to http://localhost:8080/ to confirm Airflow is working.\nLogin as _admin_ and password _admin_.\n\n### Build a Docker image from your DAGs\n\n1.  Start a project using [astro-cli](https://github.com/astronomer/astro-cli), which will generate a Dockerfile, and load your DAGs in. You can test locally before pushing to kind with `astro airflow start`.\n    ```sh\n    mkdir my-airflow-project \u0026\u0026 cd my-airflow-project\n    astro dev init\n    ```\n2.  Then build the image:\n    ```sh\n    docker build -t my-dags:0.0.1 .\n    ```\n3.  Load the image into kind:\n    ```sh\n    kind load docker-image my-dags:0.0.1\n    ```\n4.  Upgrade Helm deployment:\n\n    ```sh\n    helm upgrade airflow -n airflow \\\n        --set images.airflow.repository=my-dags \\\n        --set images.airflow.tag=0.0.1 \\\n        astronomer/airflow\n    ```\n\n## Extra Objects\n\nThis chart can deploy extra Kubernetes objects (assuming the role used by Helm can manage them). For Astronomer Cloud and Enterprise, the role permissions can be found in the [Commander role](https://github.com/astronomer/astronomer/blob/master/charts/astronomer/templates/commander/commander-role.yaml).\n\n```yaml\nextraObjects:\n  - apiVersion: batch/v1beta1\n    kind: CronJob\n    metadata:\n      name: \"{{ .Release.Name }}-somejob\"\n    spec:\n      schedule: \"*/10 * * * *\"\n      concurrencyPolicy: Forbid\n      jobTemplate:\n        spec:\n          template:\n            spec:\n              containers:\n                - name: myjob\n                  image: ubuntu\n                  command:\n                    - echo\n                  args:\n                    - hello\n              restartPolicy: OnFailure\n```\n\n## Contributing\n\nCheck out [our contributing guide!](CONTRIBUTING.md)\n\n## License\n\nApache 2.0 with Commons Clause\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fastronomer%2Fairflow-chart","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fastronomer%2Fairflow-chart","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fastronomer%2Fairflow-chart/lists"}