Home › Convert › Apache Airflow to Kubernetes
Convert Apache Airflow cron to Kubernetes
Apache Airflow expressions look similar to Kubernetes, but the differences matter. Paste yours below; the result is checked against the original run times.
What changes from Apache Airflow to Kubernetes
- Kubernetes has no
L,Wor#symbols. Schedules like "last day of the month" cannot be converted and are refused rather than silently changed.
Worked examples
| Schedule | Apache Airflow | Kubernetes |
|---|---|---|
| every minute | * * * * * | * * * * * |
| every 5 minutes | */5 * * * * | */5 * * * * |
| every 10 minutes | */10 * * * * | */10 * * * * |
| every 15 minutes | */15 * * * * | */15 * * * * |
| every 30 minutes | */30 * * * * | */30 * * * * |
| every hour | 0 * * * * | 0 * * * * |
| every 2 hours | 0 */2 * * * | 0 */2 * * * |
| every 3 hours | 0 */3 * * * | 0 */3 * * * |
What cannot be converted
These common Apache Airflow schedules have no equivalent in Kubernetes. The converter refuses them instead of guessing.
- on the last day of every month:
0 0 L * *. This schedule cannot be expressed in Kubernetes CronJob: "L" is not a valid dom value. - on the first Monday of every month at 9:00 AM:
0 9 * * MON#1. This schedule cannot be expressed in Kubernetes CronJob: "MON#1" is not a valid dow value.
Field layout and time zones
minute (0-59), hour (0-23), day-of-month (1-31), month (1-12), day-of-week (0-7, 0 and 7 = Sunday).
Airflow defaults to UTC. On a time-zone-aware DAG a cron schedule follows wall-clock time, so a daily 00:00 US/Eastern run moves between 04:00 and 05:00 UTC across daylight saving changes.
minute (0-59), hour (0-23), day-of-month (1-31), month (1-12), day-of-week (0-7, 0 and 7 = Sunday).
Set spec.timeZone (Kubernetes 1.27+) to a name like Asia/Kolkata. Without it the schedule follows the controller's time zone, usually UTC.
Go the other way
Convert Kubernetes to Apache Airflow, or open the Apache Airflow builder or the Kubernetes builder.
Frequently asked questions
How do I convert a Apache Airflow cron expression to Kubernetes?
Paste it into the converter above with Apache Airflow as the source and Kubernetes as the target. For example, * * * * * becomes * * * * *.
Is every Apache Airflow expression convertible to Kubernetes?
No. Out of 30 common schedules, 2 cannot be expressed in Kubernetes: on the last day of every month; on the first Monday of every month at 9:00 AM.
Does Kubernetes run in the same time zone as Apache Airflow?
Not necessarily. Conversion changes the syntax, not the time zone. Check where each system evaluates the schedule before you rely on the same clock times.