Conversation
There was a problem hiding this comment.
Pull Request Overview
This PR upgrades Apache Airflow from version 2.x to 3.x, introducing a new microservices-based architecture that replaces the monolithic webserver with separate specialized services for improved scalability and separation of concerns.
- Migrates from LocalExecutor to CeleryExecutor with Redis as message broker
- Replaces airflow-webserver with airflow-apiserver and introduces dedicated services (dag-processor, worker, triggerer)
- Updates import paths and configurations to align with Airflow 3.x API changes
Reviewed Changes
Copilot reviewed 7 out of 8 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| src/orchestration/utils/labels.py | Updates import path for Context from airflow.utils to airflow.sdk.definitions |
| src/orchestration/dags/unified_pipeline.py | Updates import paths for task_group and EmptyOperator, removes deprecated default_view parameter |
| pyproject.toml | Upgrades Airflow to 3.0.6, consolidates dependencies, removes obsolete configurations |
| compose.yaml | Implements new microservices architecture with separate containers for scheduler, worker, dag-processor, triggerer, and apiserver |
| compose.local.yaml | Updates service names and adds Google Cloud credentials configuration for new services |
| Makefile | Adds --build flag to ensure Docker images are rebuilt during development |
| Dockerfile | Switches to Ubuntu base image, updates user ID, and modernizes build process with uv sync |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
| RUN useradd --create-home --uid 1010 airflow | ||
| WORKDIR /home/airflow |
There was a problem hiding this comment.
The user ID change from 1000 to 1010 should be documented or explained. This change could cause permission issues in existing deployments where volumes were created with the previous UID.
| RUN useradd --create-home --uid 1010 airflow | |
| WORKDIR /home/airflow |
| command: triggerer | ||
| command: | ||
| - airflow | ||
| - celery worker |
There was a problem hiding this comment.
The command format is incorrect. It should be 'celery' and 'worker' as separate arguments in the list, not as a single string 'celery worker'.
| - celery worker | |
| - celery | |
| - worker |
0fec6ba to
c76837b
Compare
Context
This PR updated airflow to 3.x.
The deployment of 3.x is different to 2.x, as architecture now includes additional services
The update includes:
airflow-webservertoairflow-apiserverthat is only one service that seeks thepostgresworkloads.workerandredis,dag-processor(following the official celery setup)