Airflow Image Releases
Release log for ghcr.io/skaledata/airflow.
Each entry is one image publish event, dated by the day it shipped to GHCR and headed
by the image tag(s) affected.
The plugin package (airflow-provider-skaledata) versions independently; see
PyPI for its changelog.
2026-07-06 — 3.3.0 added, :latest bumped
Image: ghcr.io/skaledata/airflow:3.3.0 (also :latest)
Adds Airflow 3.3.0 to the build matrix; :latest now floats to 3.3.0. The 3.2.2
line continues to build and re-publish on every release.
2026-06-02 — 3.2.2 re-published: no --constraint in customer ONBUILD pip
Image: ghcr.io/skaledata/airflow:3.2.2 (mutable, re-published)
Dropped --constraint=<apache-airflow-constraints-3.2.2> from the ONBUILD customer
pip install. Customers can now pin newer provider versions than the Apache
constraints file allows (e.g. apache-airflow-providers-airbyte==5.5.0 while the
3.2.2 constraints pin 5.4.2). Matches Astronomer’s astro-runtime behaviour. The
base image’s own Airflow install is still pinned with constraints at build time,
so the platform layer stays internally consistent.
Prior symptom: downstream builds with a newer provider version pinned failed
with ResolutionImpossible during the ONBUILD pip step.
2026-06-02 — 3.2.2 re-published: filter comments + blank lines in ONBUILD
Image: ghcr.io/skaledata/airflow:3.2.2 (mutable, re-published)
Pre-filter # comments and blank lines before passing packages.txt /
requirements.txt to apt/pip. Previously the ONBUILD used a file-non-empty
check ([ -s ... ]), so a comment-only file (like the scaffold from
skale airflow init) sent # to apt and failed with
E: Unable to locate package #.
2026-06-02 — 3.2.2 re-published: default webserver_config.py baked in
Image: ghcr.io/skaledata/airflow:3.2.2 (mutable, re-published)
Bakes /opt/airflow/webserver_config.py (AUTH_ROLE_PUBLIC = "Admin") into the
image. Customer repos no longer need to ship one for local dev or prod. SkaleData
proxies validate the sdk_* API key at the edge — an internal login screen would
add noise without security.
Overrides: customers with stricter internal auth can override either by
COPYing their own webserver_config.py after the FROM line (later COPY wins),
or by volume-mounting one at /opt/airflow/webserver_config.py.
2026-06-02 — 3.2.2 re-published: multi-arch (linux/amd64 + linux/arm64)
Image: ghcr.io/skaledata/airflow:3.2.2 (mutable, re-published)
Local dev on Apple Silicon now pulls the image natively — no more
no match for platform in manifest when running skale af start. Customer
prod clusters (GKE / EKS / AKS) keep pulling the amd64 variant.
2026-06-02 — 3.2.2 re-published: skale.providers.* plugin namespace
Image: ghcr.io/skaledata/airflow:3.2.2 (mutable, re-published)
Plugin imports moved from skaledata_airflow_plugins.airbyte.* to
skale.providers.airbyte.*, mirroring upstream’s airflow.providers.* layout;
class names now match upstream exactly.
Migration required in customer DAGs:
| Old | New |
|---|---|
from skaledata_airflow_plugins.airbyte import SkaleDataAirbyteHook | from skale.providers.airbyte.hooks.airbyte import AirbyteHook |
from skaledata_airflow_plugins.airbyte import SkaleDataAirbyteTriggerSyncOperator | from skale.providers.airbyte.operators.airbyte import AirbyteTriggerSyncOperator |
from skaledata_airflow_plugins.airbyte import SkaleDataAirbyteSyncTrigger | from skale.providers.airbyte.triggers.airbyte import AirbyteSyncTrigger |
2026-06-02 — 3.2.2 re-published: ONBUILD triggers for packages.txt / requirements.txt
Image: ghcr.io/skaledata/airflow:3.2.2 (mutable, re-published)
Auto-picks up packages.txt (apt) and requirements.txt (pip) from the customer’s
build context via ONBUILD, before any of their own Dockerfile instructions run.
Matches Astronomer’s Astro Runtime
convention.
Behaviour change: existing customer Dockerfiles that already do their own
COPY requirements.txt + RUN pip install keep working — those steps become
redundant but harmless, and are safe to simplify away.
2026-06-02 — 3.2.2 first published (Airflow bump from 3.2.1)
Image: ghcr.io/skaledata/airflow:3.2.2 (mutable)
Bumps default Airflow patch to 3.2.2 (Apache published it as a patch on top of
3.2.1). The 3.2.1 tag from the previous release stays in GHCR for anyone
pinned to it.
2026-06-02 — 3.2.1 re-published without the -python3.12 suffix
Image: ghcr.io/skaledata/airflow:3.2.1 (new public tag, replaces 3.2.1-python3.12)
Python version is an internal build-time pin (currently 3.12) and not a user
choice; surfacing it in the customer-facing tag was noise. The
3.2.1-python3.12 tag from the initial release stays in GHCR as a historical
artifact.
2026-06-02 — Initial release
Image: ghcr.io/skaledata/airflow:3.2.1-python3.12
First public image. Contents:
apache/airflow:3.2.1-python3.12apache-airflow-providers-airbyte(pinned via upstream Airflow constraints)- SkaleData’s plugin package with the Airbyte bearer-auth shim:
SkaleDataAirbyteHook— bearer-authcreate_api_sessionoverrideSkaleDataAirbyteSyncTrigger— deferrable trigger using the new hookSkaleDataAirbyteTriggerSyncOperator— drop-in for the upstream operator
Customer DAGs using
from skaledata_airflow_plugins.airbyte import SkaleDataAirbyteTriggerSyncOperator
work without any further setup. Stock-image SkaleData Airflow clusters
automatically pull this image on next chart upgrade.