Skip to Content

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:

OldNew
from skaledata_airflow_plugins.airbyte import SkaleDataAirbyteHookfrom skale.providers.airbyte.hooks.airbyte import AirbyteHook
from skaledata_airflow_plugins.airbyte import SkaleDataAirbyteTriggerSyncOperatorfrom skale.providers.airbyte.operators.airbyte import AirbyteTriggerSyncOperator
from skaledata_airflow_plugins.airbyte import SkaleDataAirbyteSyncTriggerfrom 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.12
  • apache-airflow-providers-airbyte (pinned via upstream Airflow constraints)
  • SkaleData’s plugin package with the Airbyte bearer-auth shim:
    • SkaleDataAirbyteHook — bearer-auth create_api_session override
    • SkaleDataAirbyteSyncTrigger — deferrable trigger using the new hook
    • SkaleDataAirbyteTriggerSyncOperator — 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.

Last updated on