버전 지원 정책과 라이프사이클
Apache Airflow Official Documentation (in-repo snapshot) — Apache Software Foundation installation/supported-versions.rst (전체, L1-71)
이 모듈을 다 읽으면
- 이 문서 기준 Airflow 각 메이저 버전의 상태(Maintenance/EOL)와 시점을 말할 수 있다
- Airflow가 Python/Kubernetes 버전 지원을 결정하는 3가지 규칙을 설명할 수 있다
- 'default' 버전이라는 표현이 실제로 의미하는 바(CI 스모크 테스트 기준일 뿐)를 설명할 수 있다
Airflow의 버전 라이프사이클 표(자동 생성)와, Python/Kubernetes 버전 지원 여부를 결정하는 3가지 규칙을 정리한다. 표의 구체적 날짜와 버전 번호는 시점에 따라 계속 바뀌므로 이 문서에 실제로 기재된 값을 근거로 삼아야 한다.
버전 라이프사이클 (이 문서 기준 스냅샷)
이 문서(자동 생성 표, `scripts/ci/prek/supported_versions.py`가 갱신)에 따르면 Airflow 3 계열은 현재 패치 3.3.1, 상태는 Maintenance이며 첫 릴리스는 2025년 4월 22일, Limited Maintenance/EOL 시점은 TBD(미정)로 표기되어 있다. Airflow 2 계열은 최신 패치 2.11.2, 상태는 EOL이며 2020년 12월 17일 첫 릴리스, 2025년 10월 22일 Limited Maintenance 진입, 2026년 4월 22일 EOL/Terminated로 명시되어 있다. 1.10 이하 계열은 모두 EOL 상태다.
Limited Maintenance 상태의 버전은 보안 패치와 치명적 버그 수정만 제공되고, EOL 버전은 어떤 수정도 제공되지 않는다. 문서는 항상 최신 릴리스 설치를 강력히 권장한다.
핵심 포인트
- (이 문서 스냅샷 기준) Airflow 3 계열은 Maintenance 상태(3.3.1), Airflow 2 계열은 EOL 상태(2.11.2, EOL 2026-04-22)다
- Limited Maintenance는 보안·치명적 버그 수정만 제공하고, EOL은 어떤 수정도 제공하지 않는다
Python/Kubernetes 버전 지원 3원칙
Airflow 2.0 이상부터는 Python과 Kubernetes 버전 지원에 대해 공식 릴리스 일정(Python Developer's Guide, Kubernetes version skew policy)에 근거한 3가지 규칙을 따른다.
첫째, EOL에 도달한 Python/Kubernetes 버전은 지원을 중단한다. main 브랜치에서는 EOL 직후 바로 지원을 제거하고, 실제로 효력을 발휘하는 시점은 그 다음 MINOR(또는 MINOR가 없으면 MAJOR) 릴리스가 나올 때다. 문서는 Python 3.6 사례를 예로 든다 — main에서는 2021년 12월 23일 직후 지원을 중단했지만, 실제 제거는 그 이후 처음 나온 MAJOR/MINOR 릴리스부터 적용됐다.
둘째, 지원되는 Python/Kubernetes 버전 중 '가장 오래된' 버전이 기본값(default)이 된다. 여기서 '기본'이라는 말은 CI PR의 스모크 테스트와 DockerHub의 기본 참조 이미지에 사용된다는 의미일 뿐이다(예: 특정 시점의 `apache/airflow:latest` 이미지가 Python 3.8이었다가, 2024-10-14 이후 첫 MINOR/MAJOR 릴리스부터 Python 3.9 이미지로 바뀌는 식).
셋째, 새 Python/Kubernetes 버전이 공식 출시되면 CI 파이프라인에서 동작하도록 만든 뒤 곧바로 새 버전 지원/이미지를 릴리스한다. 다만 의존성들이 새 버전을 따라잡는 데 시간이 걸릴 수 있어 즉시 지원되지 않을 수도 있다.
핵심 포인트
- 규칙1: Python/K8s가 EOL에 도달하면 main에서 즉시 지원을 중단하고, 다음 MINOR/MAJOR 릴리스부터 실제로 제거된다
- 규칙2: 지원 버전 중 가장 오래된 것이 'default'이며, 이는 CI 스모크 테스트와 DockerHub 기본 이미지 기준일 뿐이다
- 규칙3: 새 버전은 CI에서 동작이 확인되는 대로 지원을 추가하며, 의존성 문제로 즉시 지원되지 않을 수 있다