Airflow Setup Journey: Pages 1–6
I’ve been working through a multi-step Airflow lab setup. Each session I’ve documented as a “page,” keeping a steady rhythm with SANE blocks (Summary, Achievements, Next Steps, & Evaluation). Here’s the recap of what’s been accomplished so far and where things stand today.
Page 1 — Baseline Cluster Running
- Bring up a basic Airflow cluster (CeleryExecutor) with Redis and Postgres via Docker Compose.
- Articulate the difference between local development vs. production configs.
- To-do: List these differneces here.
- Confirm all baseline services started correctly.
- To-do: How exactly?
- Note that this environment is strictly for lab/dev work — production setups need TLS, SSO, scaling, etc.
Page 2 — Airflow Baseline Validation
- Verify services are healthy and communicating.
- Realize DAGs are workflow definitions stored as code.
- Connect Airflow’s role in orchestrating pipelines: Parquet → PSV → SQL Server.
- Compare Airflow’s role to traditional SSIS.
Page 3 — Data Folders and Local Storage
- Create required data directories under
Airflow-Labto house raw, processed, and staging files. - Confirm local file paths were mapped correctly.
- Rehearsed a test probe script and ensured visibility inside containers.
- Establish local bind mounts as the starting point before layering on cloud storage later.
Page 4 — Overrides and Volume Mounts
- Introduce
docker-compose.override.yml. - Add consistent volume mounts (
D:\AppDev\Airflow-Lab\data → /opt/airflow/data) across webserver, scheduler, worker, and flower. - Confirm
airflow-triggereris included in service definitions. - Standardize mount strategy across all long-running services.
Page 5 — Smoke Test (Step 3 Complete)
- Recreate long-running services with
--force-recreate. - Fix missing bind on airflow-triggerer so all services see the same mount.
- Drop probe file
_mount_probe.txtintodata/and verify visibility from webserver, scheduler, worker, triggerer, and flower. - SMOKE-TEST: PASS → probe file is visible/readable everywhere.
- Scripts:
Airflow-Setup-MountCheck.ps1(ad-hoc probe runner).New-MountProbeFile.ps1(parameterized smoke test).
Page 6 — Flower and DAG Prep (In Progress)
- Bring stack up with Flower enabled:
docker compose --profile flower up -dEnd