This repository aims to help you have an Airflow installation running in Kubernetes minikube.
Alternatives To Miniflow
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
76 hours ago190September 15, 2022827apache-2.0Go
Run Kubernetes locally
Awesome Kubernetes13,710
8 days ago1otherShell
A curated list for awesome kubernetes sources :ship::tada:
Kubeflow12,41327 hours ago112April 13, 2021401apache-2.0TypeScript
Machine Learning Toolkit for Kubernetes
5 hours ago4March 01, 201994apache-2.0C++
Cloud Native Runtime Security
Telepresence5,69947 hours ago355September 23, 2022395otherGo
Local development against a remote Kubernetes or OpenShift cluster
Kube Prometheus5,144
11 hours ago27June 17, 2022181apache-2.0Jsonnet
Use Prometheus to monitor Kubernetes and applications running on Kubernetes
21 hours ago88April 24, 2021236apache-2.0C++
Instant Kubernetes-Native Application Observability
Strimzi Kafka Operator3,74128 hours ago34September 06, 2022138apache-2.0Java
Apache Kafka® running on Kubernetes
a day ago161apache-2.0Go
DevSpace - The Fastest Developer Tool for Kubernetes ⚡ Automate your deployment workflow with DevSpace and develop software directly inside Kubernetes.
19 days ago21gpl-3.0Shell
Alternatives To Miniflow
Select To Compare

Alternative Project Comparisons


This repository aims to help you have an Airflow installation running in Kubernetes minikube.


This example expects a running kubernetes environment with helm installed. To setup it fast and easily (non-production), the following commands can be used:

minikube start -p airflow
kubectl apply -f 01_rbac_helm.yaml
helm init
kubectl create namespace airflow

In this example, we're using minikube. You can check Kubernetes official docs, for more details on how to install it.

Setup kubernetes credentials

To have the Airflow Kubernetes Operator working properly. The Operator expects the Kubernetes credentials in the path ~/.kube/config by default. The following steps create the required Kubernetes credentials.

mkdir kubeconfig/ && cd kubeconfig/
cp ~/.minikube/client.* ~/.minikube/ca.crt .
kubectl config view --minify | cat > config
kubectl create secret generic kubeconfig --from-file=config --from-file=ca.crt --from-file=client.crt --from-file=client.key --namespace airflow
cd ..
rm -rf kubeconfig/

You don't need to change the following config, just to be aware of where it is been configured in the values.yaml file.

    - name: kubeconfig
      mountPath: /usr/local/airflow/.kube/
  ## Additional volumeMounts to the main containers in the Scheduler, Worker and Web pods.
  # - name: synchronised-dags
  #   mountPath: /usr/local/airflow/dags
    - name: kubeconfig
        secretName: kubeconfig

Install Airflow

In this example, we are using the official community helm chart.

helm install --namespace "airflow" --name "airflow" stable/airflow -f values.yaml

Setup a git dag repository - OPTIONAL

More details about how it works here.

cp ~/.ssh/id_rsa ~/.ssh/ .
grep github ~/.ssh/known_hosts > known_hosts
kubectl create secret generic my-git-secret --from-file=id_rsa --from-file=known_hosts --namespace airflow
rm id_rsa known_hosts

Change the values.yaml

    ## url to clone the git repository
    url: [email protected]:<MYREPO>/dags.git
    ## branch name, tag or sha1 to reset to
    ref: master
    ## pre-created secret with key, and known_hosts file for private repos
    secret: my-git-secret
    ## Fetch the source code when the pods starts
    enabled: true

Upgrade Helm configs

Every time you update your values.yaml run the following command to apply the changes.

helm upgrade airflow -f values.yaml stable/airflow --namespace airflow

Kubernetes dashboard

minikube dashboard -p airflow

Airflow dashboard

kubectl port-forward svc/airflow-web -n airflow 8080

In the browser try http://localhost:8080


helm del --purge airflow
minikube delete -p airflow


  • In this example we are not following production best practices. So, please review the helm configs here if you plan to run production workloads.
  • This example uses the docker image rodrigodelmonte/docker-airflow:1.10.1 which uses the Dockerfile from puckel/docker-airflow, There is no official docker image maintained by the Airflow community, the current one maintained by the community is being used for development only. Fell free to build your image and check the docker/ folder or try puckel/docker-airflow.


  • Fork it (
  • Create your feature branch (git checkout -b feature/fooBar)
  • Commit your changes (git commit -am 'Add some fooBar')
  • Push to the branch (git push origin feature/fooBar)
  • Create a new Pull Request
Popular Minikube Projects
Popular Kubernetes Projects
Popular Virtualization Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.