From 3c51ae31d71a76fed82d5a7b1687daa447593001 Mon Sep 17 00:00:00 2001 From: Kaspars Skels Date: Mon, 10 Jun 2019 17:23:56 -0500 Subject: [PATCH] Airsloop document improvements Change-Id: I70e44f7af7ef36d22889b79234ce385a5cfa51ed --- doc/source/airsloop.rst | 166 ++++++++++++++++++++-------------------- 1 file changed, 82 insertions(+), 84 deletions(-) diff --git a/doc/source/airsloop.rst b/doc/source/airsloop.rst index 647dbf864..c6e053fd9 100644 --- a/doc/source/airsloop.rst +++ b/doc/source/airsloop.rst @@ -1,75 +1,60 @@ Airsloop: Simple Bare-Metal Airship =================================== -Airsloop is a two node site deployment reference and continuous integration pipeline. -The goal of this site is to be used as a reference for mini Airship deployments -with one controller and one or more compute nodes. +Airsloop is a two bare-metal server site deployment reference. -Airsloop is meant to get an operator up and running quickly with an Airship lab environment, -and has some resiliency and security features tuned down. Please see the `Seaworthy `__ -manifests for a production-oriented example. +The goal of this site is to be used as a reference for simplified Airship +deployments with one control and one or more compute nodes. + +It is recommended to get familiar with the `Site Authoring and Deployment Guide`_ +documentation before deploying Airsloop in the lab. Most steps and concepts +including setting up the Genesis node are the same. + +.. _Site Authoring and Deployment Guide: https://airship-treasuremap.readthedocs.io/en/latest/authoring_and_deployment.html -The site manifests are available at -`site/airsloop `__. .. image:: diagrams/airsloop-architecture.png -Pipeline --------- +Various resiliency and security features are tuned down via configuration. -Airsloop pipeline automates deployment flow documented in -`Site Authoring and Deployment Guide `__. + * Two bare-metal server setup with 1 control, and 1 compute. + Most components are scaled to a single replica and doesn't carry + any HA as there is only a single control plane host. + * No requirements for DNS/certificates. + HTTP and internal cluster DNS is used. + * Ceph set to use the single disk. + This generally provides minimalistic no-touch Ceph deployment. + No replication of Ceph data (single copy). + * Simplified networking (no bonding). + Two network interfaces are used by default (flat PXE, and DATA network + with VLANs for OAM, Calico, Storage, and OpenStack Overlay). + * Generic hostnames used (airsloop-control-1, airsloop-compute-1) that + simplifies generation of k8s certificates. + * Usage of standard Ubuntu 16.04 GA kernel (as oppose to HWE). -The pipeline is implemented as Jenkins Pipeline (Groovy), see code for the pipeline at -`Jenkinsfile `__. -Versions --------- - -The manifest software version overrides (`versions.yaml `__) -are setup to deploy OpenStack Ocata. - -The versions are kept up to date via `updater.py `__, -a utility that updates versions.yaml latest charts and (selected) images. - -Due to the limited capacity of a test environment, only Ubuntu-based images are used at the moment. - -The pipeline attempts to uplift and deploy latest versions on daily basis. +Airsloop site manifests are available at +`site/airsloop `__. Hardware -------- While HW configuration is flexible, Airsloop reference manifests -reflect a single controller and a single compute node. The aim of +reflect a single control and a single compute node. The aim of this is to create a minimalistic lab/demo reference environment. Increasing the number of compute nodes will require site overrides -to align parts of the system such as Ceph osds, etcd, etc. +to align parts of the system such as Ceph OSDs, etcd, etc. -This site is stripped down from all the complicated hardware and -configuration requirements that Airship Seaworthy site is using and that leads -to simplified deployments from disk,networking and hardware perspective. - -Airsloop site has 2 bare-metal servers: -1 controller, and 1 compute node. -See host profiles for the servers `here `__. - -Control (masters) - - airsloop-control-1 -Compute (workers) - - airsloop-compute-1 - -For simplification of the configuration, we recommend using hostnames -provided below. - -For a two node deployment the nodes and their hostnames are: +See host profiles for the servers +`here `__. +------------+-------------------------+ | Node | Hostnames | +============+=========================+ -| controller | airsloop-controller-1 | +| control | airsloop-control-1 | +------------+-------------------------+ | compute | airsloop-compute-1 | +------------+-------------------------+ @@ -80,16 +65,15 @@ Network Physical (underlay) networks are described in Drydock site configuration `here `__. + It defines OOB (iLO/IPMI), untagged PXE, and multiple tagged general use networks. -Also no bond interfaces are used in Airsloop deployment. +Also no bonded interfaces are used in Airsloop deployment. -In this deployment the networking is simplified compared to Airship Seaworthy +The networking reference is simplified compared to Airship Seaworthy site. There are only two NICs required (excluding oob), one for PXE -and another one for the rest of the networks separated using VLAN -segmentation. The recommendation is to use the highest bandwidth device -available to carry to carry the data networks. +and another one for the rest of the networks separated using VLAN segmentation. -Below is an example of network configuration: +Below is the reference network configuration: +------------+------------+-----------+---------------+ | NICs | VLANs | Names | CIDRs | @@ -117,6 +101,19 @@ one per node. That disk is not only used by the OS but also by Ceph Journals and The way that this is achieved is by using directories and not extra disks for Ceph storage. Ceph OSD configuration can be changed in a `Ceph chart override `__. +The following Ceph chart configuration is used: + +.. code-block:: yaml + + osd: + - data: + type: directory + location: /var/lib/openstack-helm/ceph/osd/osd-one + journal: + type: directory + location: /var/lib/openstack-helm/ceph/osd/journal-one + + Host Profiles ------------- @@ -171,60 +168,61 @@ This can be done through the promenade CLI. Getting Started --------------- -TODO: Specify which node(s) the command(s) in this section are run on. -Also if there is an assumption that we have a node with Ubuntu -already provisioned, that assumption or steps should be specified -along with any Ubuntu version requirements/assumptions and other -pre-requisite steps (e.g., installing NTP) +**Update Site Manifests.** -Below are the steps that a user should follow to deploy the Airsloop site: +Carefully review site manifests (site/airsloop) and update the configuration +to match the hardware, networking setup and other specifics of the lab. -TODO: Add the prerequisite steps that the user needs to do -before starting executing the below steps such as: -installing git, installing docker, clone sevral repos etc. +See more details at `Site Authoring and Deployment Guide`_. -1. Collect manifests +.. note:: Many manifest files (YAMLs) contain documentation in comments + that instruct what changes are required for specific sections. + +1. Build Site Documents .. code-block:: bash - ./tools/airship pegleg site -r /target collect airsloop -s collect - -2. Generate certs - -.. code-block:: bash + tools/airship pegleg site -r /target collect airsloop -s collect mkdir certs - ./tools/airship promenade generate-certs -o /target/certs /target/collect/*.yaml - -3. Generate genesis.sh scipt - -.. code-block:: bash + tools/airship promenade generate-certs -o /target/certs /target/collect/*.yaml mkdir bundle - ./tools/airship promenade build-all -o /target/bundle /target/collect/*.yaml /target/certs/*.yaml + tools/airship promenade build-all -o /target/bundle /target/collect/*.yaml /target/certs/*.yaml -4. Execute the genesis.sh script +See more details at `Building Site documents`_, use site ``airsloop``. + +.. _Building Site documents: https://airship-treasuremap.readthedocs.io/en/latest/authoring_and_deployment.html#building-site-documents + + +2. Deploy Genesis + +Execute Genesis bootstrap script on the Genesis server. .. code-block:: bash - cd /target/bundle - ./genesis.sh + sudo ./genesis.sh -If the genesis.sh script completed succesfully +See more details at `Genesis node`_. -5. Deploy site through shipyard +.. _Genesis node: https://airship-treasuremap.readthedocs.io/en/latest/authoring_and_deployment.html#genesis-node + + +3. Deploy Site .. code-block:: bash - ./tools/airship shipyard create configdocs design --directory=/target/collect - ./tools/airship shipyard commit configdocs - ./tools/airship shipyard create action deploy_site + tools/airship shipyard create configdocs design --directory=/target/collect + tools/airship shipyard commit configdocs -6. Check the actions that are already created + tools/airship shipyard create action deploy_site -.. code-block:: bash + tools/shipyard get actions + +See more details at `Deploy Site with Shipyard`_. + +.. _Deploy Site with Shipyard: https://airship-treasuremap.readthedocs.io/en/latest/authoring_and_deployment.html#deploy-site-with-shipyard - ./tools/shipyard get actions Deploying Behind a Proxy ------------------------