Airsloop document improvements
Change-Id: I70e44f7af7ef36d22889b79234ce385a5cfa51ed
This commit is contained in:
parent
317ec40825
commit
3c51ae31d7
@ -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
|
||||||
------------------------
|
------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user