Airsloop document improvements

Change-Id: I70e44f7af7ef36d22889b79234ce385a5cfa51ed
This commit is contained in:
Kaspars Skels 2019-06-10 17:23:56 -05:00
parent 317ec40825
commit 3c51ae31d7
1 changed files with 82 additions and 84 deletions

View File

@ -1,75 +1,60 @@
Airsloop: Simple Bare-Metal Airship Airsloop: Simple Bare-Metal Airship
=================================== ===================================
Airsloop is a two node site deployment reference and continuous integration pipeline. Airsloop is a two bare-metal server site deployment reference.
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 meant to get an operator up and running quickly with an Airship lab environment, The goal of this site is to be used as a reference for simplified Airship
and has some resiliency and security features tuned down. Please see the `Seaworthy <https://opendev.org/airship/treasuremap/src/branch/master/site/seaworthy>`__ deployments with one control and one or more compute nodes.
manifests for a production-oriented example.
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 <https://opendev.org/airship/treasuremap/src/branch/master/site/airsloop>`__.
.. image:: diagrams/airsloop-architecture.png .. image:: diagrams/airsloop-architecture.png
Pipeline Various resiliency and security features are tuned down via configuration.
--------
Airsloop pipeline automates deployment flow documented in * Two bare-metal server setup with 1 control, and 1 compute.
`Site Authoring and Deployment Guide <https://airship-treasuremap.readthedocs.io/en/latest/authoring_and_deployment.html>`__. 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 <https://opendev.org/airship/treasuremap/src/branch/master/tools/gate/airsloop/Jenkinsfile>`__.
Versions Airsloop site manifests are available at
-------- `site/airsloop <https://opendev.org/airship/treasuremap/src/branch/master/site/airsloop>`__.
The manifest software version overrides (`versions.yaml <https://opendev.org/airship/treasuremap/src/branch/master/global/software/config/versions.yaml>`__)
are setup to deploy OpenStack Ocata.
The versions are kept up to date via `updater.py <https://opendev.org/airship/treasuremap/src/branch/master/tools/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.
Hardware Hardware
-------- --------
While HW configuration is flexible, Airsloop reference manifests 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. this is to create a minimalistic lab/demo reference environment.
Increasing the number of compute nodes will require site overrides 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 See host profiles for the servers
configuration requirements that Airship Seaworthy site is using and that leads `here <https://opendev.org/airship/treasuremap/src/branch/master/site/airsloop/profiles/host>`__.
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 <https://opendev.org/airship/treasuremap/src/branch/master/site/airsloop/profiles/host>`__.
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:
+------------+-------------------------+ +------------+-------------------------+
| Node | Hostnames | | Node | Hostnames |
+============+=========================+ +============+=========================+
| controller | airsloop-controller-1 | | control | airsloop-control-1 |
+------------+-------------------------+ +------------+-------------------------+
| compute | airsloop-compute-1 | | compute | airsloop-compute-1 |
+------------+-------------------------+ +------------+-------------------------+
@ -80,16 +65,15 @@ Network
Physical (underlay) networks are described in Drydock site configuration Physical (underlay) networks are described in Drydock site configuration
`here <https://opendev.org/airship/treasuremap/src/branch/master/site/airsloop/networks/physical/networks.yaml>`__. `here <https://opendev.org/airship/treasuremap/src/branch/master/site/airsloop/networks/physical/networks.yaml>`__.
It defines OOB (iLO/IPMI), untagged PXE, and multiple tagged general use networks. 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 site. There are only two NICs required (excluding oob), one for PXE
and another one for the rest of the networks separated using VLAN and another one for the rest of the networks separated using VLAN segmentation.
segmentation. The recommendation is to use the highest bandwidth device
available to carry to carry the data networks.
Below is an example of network configuration: Below is the reference network configuration:
+------------+------------+-----------+---------------+ +------------+------------+-----------+---------------+
| NICs | VLANs | Names | CIDRs | | 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 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 <https://opendev.org/airship/treasuremap/src/branch/master/type/sloop/charts/ucp/ceph/ceph-osd.yaml>`__. disks for Ceph storage. Ceph OSD configuration can be changed in a `Ceph chart override <https://opendev.org/airship/treasuremap/src/branch/master/type/sloop/charts/ucp/ceph/ceph-osd.yaml>`__.
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 Host Profiles
------------- -------------
@ -171,60 +168,61 @@ This can be done through the promenade CLI.
Getting Started Getting Started
--------------- ---------------
TODO: Specify which node(s) the command(s) in this section are run on. **Update Site Manifests.**
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)
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 See more details at `Site Authoring and Deployment Guide`_.
before starting executing the below steps such as:
installing git, installing docker, clone sevral repos etc.
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 .. code-block:: bash
./tools/airship pegleg site -r /target collect airsloop -s collect tools/airship pegleg site -r /target collect airsloop -s collect
2. Generate certs
.. code-block:: bash
mkdir certs mkdir certs
./tools/airship promenade generate-certs -o /target/certs /target/collect/*.yaml tools/airship promenade generate-certs -o /target/certs /target/collect/*.yaml
3. Generate genesis.sh scipt
.. code-block:: bash
mkdir bundle 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 .. code-block:: bash
cd /target/bundle sudo ./genesis.sh
./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 .. code-block:: bash
./tools/airship shipyard create configdocs design --directory=/target/collect tools/airship shipyard create configdocs design --directory=/target/collect
./tools/airship shipyard commit configdocs tools/airship shipyard commit configdocs
./tools/airship shipyard create action deploy_site
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 Deploying Behind a Proxy
------------------------ ------------------------