shipyard/src/bin/shipyard_airflow
Sergiy Markin 81066ae98f Airflow stable 2.6.2
This PS updates python modules and code to match Airflow 2.6.2 as well
as deploys new Airflow:

- bionic py36 gates  were removed
- python code corrected to match new modules versions
- selection of python modules versions was performed based on
  airflow-2.6.2 constraints
- airskiff deploy pipeline was aligned with latest in treasuremap v1.9
- shipyard chart was corrected to match new airflow cli, configuration
  items and their default values
- added new celery configuration items and their values
- updated airflow runtime logging config
- disabled deprecation and future python warnings in airflow images
- added celery to the list of airflow providers
- adjusted airflow runtime scripts to match new cli
- shipyard SQL queries to airflow DB were adjusted to match new SQL
  schema of the db
- shipyard_airflow and shipyard_client unit tests were updated to match
  new DB structure and new cli
- airflow db sync job is using db upgrade command
- helm version uplifted to v3.12.2

Change-Id: Ife88e53ce0dd8dc77bf267de1f5e6b8361ca76fd
2023-08-30 16:04:47 +00:00
..
alembic Add notes common code for Shipyard 2018-10-05 15:40:48 -05:00
etc/shipyard Shipyard timeout issue 2023-05-16 20:37:29 +00:00
generator Refactor shipyard to UCP target layout 2018-04-24 16:47:13 -05:00
shipyard_airflow Airflow stable 2.6.2 2023-08-30 16:04:47 +00:00
tests Airflow stable 2.6.2 2023-08-30 16:04:47 +00:00
.coveragerc Set ULID of action on DAG request 2018-08-10 10:23:30 -05:00
README.rst Add support for Ubuntu bionic base image 2020-02-04 13:38:39 -06:00
alembic.ini Refactor shipyard to UCP target layout 2018-04-24 16:47:13 -05:00
entrypoint.sh Airflow stable 2.6.2 2023-08-30 16:04:47 +00:00
requirements-direct.txt Airflow stable 2.6.2 2023-08-30 16:04:47 +00:00
requirements-frozen.txt Airflow stable 2.6.2 2023-08-30 16:04:47 +00:00
requirements.txt Shipyard upgrade for focal 2023-04-28 20:40:50 +00:00
setup.cfg Restored ubuntu_bionic image build 2023-05-30 22:39:59 +00:00
setup.py Enable shipyard to use PBR 2018-10-25 14:23:50 +00:00
test-requirements.txt Airflow stable 2.6.2 2023-08-30 16:04:47 +00:00
tox.ini Airflow stable 2.6.2 2023-08-30 16:04:47 +00:00

README.rst

Shipyard

Shipyard is the directed acyclic graph controller for Kubernetes and OpenStack control plane life cycle management, and a component of the Airship Undercloud Platform (UCP).

Shipyard provides the entrypoint for the following aspects of the control plane established by the Airship:

<dt>
    Designs and Secrets
</dt>
<dd>
    Site designs, including the configuration of bare metal host
    nodes, network design, operating systems, Kubernetes nodes,
    Armada manifests, Helm charts, and any other descriptors that
    define the build out of a group of servers enter the Airship via
    Shipyard. Secrets, such as passwords and certificates use the
    same mechanism. <br />
    The designs and secrets are stored in Airship's Deckhand,
    providing for version history and secure storage among other
    document-based conveniences.
</dd>
<dt>
    Actions
</dt>
<dd>
    Interaction with the site's control plane is done via
    invocation of actions in Shipyard. Each action is backed by
    a workflow implemented as a directed acyclic graph (DAG) that
    runs using Apache Airflow. Shipyard provides a mechanism to
    monitor and control the execution of the workflow.
</dd>

Find more documentation for Shipyard on Read the Docs

Integration Points:

OpenStack Identity (Keystone) provides authentication and support for role based authorization
Apache Airflow provides the framework and automation of workflows provided by Shipyard
PostgreSQL is used to persist information to correlate workflows with users and history of workflow commands
Deckhand supplies storage and management of site designs and secrets
Drydock is orchestrated by Shipyard to perform bare metal node provisioning
Promenade is indirectly orchestrated by Shipyard to configure and join Kubernetes nodes
Armada is orchestrated by Shipyard to deploy and test Kubernetes workloads

Getting Started:

See also:

Airship in a Bottle