Skip to main content

bisos.airflow: Apache Airflow platform management via BISOS Capability Bundles

Overview

bisos.airflow is a BISOS package for managing an Apache Airflow platform — webserver (API server), scheduler, triggerer, metadata database, and DAG development/testing — as a BISOS Capability Bundle (CBS/CBM) of systemd-planted Command Services.

With CBM (Capability Bundle Materialization), Airflow’s four processes are installed as independent host systemd units rather than one monolithic airflow standalone process: a planted pointer leaf (cbmProc.spcs) subprocess-invokes a Capability Bundle Specification (airflow-cbs.pcs) which declares package installation (sbom), the four systemd units, and the assembly step needed to bring up a working airflow.here installation on a single host. This gives independent start/stop/status and independent logs per role, without the operational overhead of a distributed executor (Celery/Kubernetes) or containers.

Package Documentation At Github

The information below is a subset of the full of documentation for this bisos-pip package. More complete documentation is available at: https://github.com/bisos-pip/airflow-cs

Capability Materialization

The figure below shows the top-down layering of airflow.here’s Capability Materialization: the planted CBM pointer leaf (/bisos/platform/sys/cbm/collective/hereWeb/airflow/cbmProc.spcs) points to (and does not duplicate) the CBS (py3/bin/airflow-cbs.pcs), which declares the bundle of airflow-sbom.pcs, the 4 airflow-*-sysd.pcs units, and airflow-assemble.cs. py3/bin/airflowAdmin.cs sits below all of that as the day-to-day admin-facing CS an operator runs against the materialized installation.

Regenerate this figure (after editing py3/images/airflow-graphviz.pcs):

cd py3/images
./airflow-graphviz.pcs --format=all -i ngProcess all

Table of Contents TOC

The 4 systemd Units and DB Init

Four planted *-sysd.pcs units live in py3/bin/, all delegating to the same airflow CLI executable, each running a different sub-command:

Unit

Airflow role

`` ExecStart`` sub-command

Type

Ordering

` airflow-db -sysd.pcs`

DB migration

airflow d b migrate

` oneshot`, ` RemainAfte rExit=yes`

A fter=networ k.target; runs first

airflo w-webserver -sysd.pcs

API/Web server

airflow a pi-server - -port ...

l ong-running simple

Requ ires=/=Afte r=airflow-d b.service

airflo w-scheduler -sysd.pcs

Scheduler

airflow scheduler

l ong-running simple

Requ ires=/=Afte r=airflow-d b.service

airflo w-triggerer -sysd.pcs

Triggerer (deferrable tasks)

airflow triggerer

l ong-running simple

Requ ires=/=Afte r=airflow-d b.service

airflow-db-sysd.pcs is a oneshot unit with RemainAfterExit=yes: it runs airflow db migrate once to bring the metadata database schema up to date, then reports itself “active” without staying resident. The three long-running units each declare Requires=/=After=airflow-db.service, so systemd guarantees the migration has been attempted before any of the three service processes starts.

All four units, together with package installation, are declared by py3/bin/airflow-cbs.pcs and materialized at this host via py3/bin/cbmProc-airflow.spcs.

Installation

The sources for the bisos.airflow pip package are maintained at:
The bisos.airflow pip package is available at PYPI as

You can install bisos.airflow with pip or pipx.

Installation With pip

If you need access to bisos.airflow as a python module, install it with pip:

pip install bisos.airflow

Installation With pipx

If you only need access to bisos.airflow on the command line, install it with pipx:

pipx install bisos.airflow

The following commands are made available:

  • airflowAdmin.cs — day-to-day admin CS for this host’s airflow.here installation.

  • quickAirflow.cs — direct-command cheat sheet for the airflow CLI and its systemd units.

  • airflow-cbs.pcs — Capability Bundle Specification: declares sbom + the 4 sysd units + assemble.

  • cbmProc-airflow.spcs — planted CBM pointer that materializes the CBS at this host.

  • airflow-sbom.pcs — package installation via bisos.sbom.

  • airflow-db-sysd.pcs, airflow-webserver-sysd.pcs, airflow-scheduler-sysd.pcs, airflow-triggerer-sysd.pcs — the 4 systemd units.

  • airflow-assemble.cs — assembly/glue step.

  • airflow-here-dns.pcs — registers the .here fake-domain DNS entry (airflow.here).

Usage

Day-to-Day Admin: airflowAdmin.cs

Run with no arguments (or -i examples) to see the full menu. Key sub-commands:

airflowAdmin.cs -i hostInfo       # fqdn, port, AIRFLOW_HOME, DAG dir, log dir
airflowAdmin.cs -i servicesInfo   # links for operating the 4 systemd units
airflowAdmin.cs -i usersInfo      # list/create users; default admin/password
airflowAdmin.cs -i fullUpdate     # all three together

Direct Airflow CLI Cheat Sheet: quickAirflow.cs

For direct airflow CLI / systemctl / journalctl invocations (not routed through airflowAdmin.cs), run:

quickAirflow.cs

Key Files

An overview of the relevant files of the bisos.airflow package (starting-point; to be expanded as the package develops):

  • py3/bin/airflowAdmin.cs — day-to-day admin CS (hostInfo, servicesInfo, usersInfo, fullUpdate).

  • py3/bin/quickAirflow.cs — direct-command cheat sheet for the airflow CLI and systemd units.

  • py3/bin/airflow-cbs.pcs — CBS declaring the bundle (sbom + 4 sysd units + assemble).

  • py3/bin/cbmProc-airflow.spcs — planted CBM pointer leaf that materializes the CBS.

  • py3/bin/airflow-sbom.pcs — package installation via bisos.sbom.

  • py3/bin/airflow-db-sysd.pcs — oneshot DB migration unit.

  • py3/bin/airflow-webserver-sysd.pcs, airflow-scheduler-sysd.pcs, airflow-triggerer-sysd.pcs — the three long-running units.

  • py3/bin/airflow-assemble.cs — assembly/glue step.

  • py3/bin/airflow-here-dns.pcs — .here fake-domain DNS registration for airflow.here.

  • py3/images/airflow-graphviz.pcs — source for the Capability Materialization figure.

  • py3/tests/verify.sh — smoke test for airflowAdmin.cs and quickAirflow.cs.

  • py3/setup.py, py3/pypiProc.sh — PyPI packaging (setup.py is dblock-driven; do not hand-edit).

Part of BISOS — ByStar Internet Services Operating System

Layered on top of Debian, BISOS (By* Internet Services Operating System) is a unified and universal framework for developing both internet services and software-service continuums that use internet services. See Bootstrapping ByStar, BISOS and Blee for information about getting started with BISOS.

BISOS is a foundation for The Libre-Halaal ByStar Digital Ecosystem which is described as a cure for losses of autonomy and privacy in a book titled: Nature of Polyexistentials

bisos.airflow is part of BISOS. It is a standalone package that can be used independently of the full BISOS environment.

Documentation and Blee-Panels

bisos.airflow is part of the ByStar Digital Ecosystem http://www.by-star.net.

This module’s primary documentation is in the form of Blee-Panels. Blee-Panels are in the ./panels directory. From within Blee and BISOS these panels are accessible under the Blee “Panels” menu.

See file:./panels/bisos.airflow/_nodeBase_/fullUsagePanel-en.org for a starting point.

bisos.airflow is best developed with Blee, the By* BISOS Libre-Halaal Emacs Environment — a layer on top of Emacs and BISOS which creates a comprehensive integrated usage and development environment.

Support

For support, criticism, comments and questions; please contact the author/maintainer

Metadata

Release files for bisos.airflow 0.11

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bisos.airflow 0.11
File Size Uploaded
bisos_airflow-0.11.tar.gz 36.2 kB Details

Release files / bisos_airflow-0.11.tar.gz

Download URL bisos_airflow-0.11.tar.gz
Size 36.2 kB
Tags Source
SHA-256 checksum
How to use checksums
c53145465dc2c091163d0ae4abefda0377d4b029fa1fc6c4406c5d7a3e863708
BLAKE2b-256 checksum
How to use checksums
c3a695a230229bc36f349ea9df9066d69bb8052b8841fb9a46c3b46bea5f8f2a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.11.2

Release history Release notifications | RSS feed

0.13

1 release file

0.12

1 release file

This release

0.11 This release

1 release file

0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page