Overview
The goal of this document is that everyone is able to deploy This document provides concepts and procedures for deploying an NFVi with Airship Installer in a hardware infrastructure after reading the guides and instructions in this document.
This document includes the following content:
- Introduction to the upstream tool set that are used by the Airship Installer, e.g. , for example, Airship Project, OpenStack Helm, Treasuremap etc, and so on.
- Instruction on how to prepare Instructions for preparing a site manifest in declarative YAML, including hardware profile and software stack, according to the hardware infrastructure and software component model specified in the NFVi reference model and reference architecture.
- Instructions on how to customize for customizing the settings in the site manifest.
- Instruction on how to run Instructions for running the deployment script.
- Instruction on how to set up Instructions for setting up a CI/CD pipeline for automating deployment and testing.
Because Intel Pod 17 is used to deploy reference NFVi. Therefore, the examples in this document are based on the hardware profile of Intel Pod - 17. Instructions are either referenced (to the upstream document) or provided (in this docum,entdocument) so that the reader is able to can modify the settings of the hardware profile and/or software stack accordingly.
...
Airship is a collection of loosely coupled but and interoperable open source tools that declaratively automate cloud provisioning.
Airship is a robust delivery mechanism for organizations who want to embrace containers as the new unit of infrastructure delivery at scale. Starting from raw bare metal infrastructure, Airship manages the full lifecycle of data center infrastructure to deliver a production-grade Kubernetes cluster with Helm deployed artifacts, including OpenStack-Helm. Airship allows operators to manage their infrastructure deployments and lifecycle through the declarative YAML documents that describe an Airship environment.
See For more at information, see https://www.airshipit.org/.
...
OpenStack-Helm is a set of Helm charts to that enable deployment, maintenance, and upgrading of loosely coupled OpenStack services and their dependencies individually or as part of complex environments.
See For more at information, see https://wiki.openstack.org/wiki/Openstack-helm/.
Treasuremap
Treasuremap is a documentation, deployment reference as well as CI/CD project for Airship.
Airship site deployments are using use the treasuremap
repository as a global
manifest set (YAML configuration documents) that are then are overridden with site-specific configuration details (networking details, disk layout, etcand so on).
See For more at information, see https://airship-treasuremap.readthedocs.io/ .
...
Manifests
The Airship installer is delivered in a form of site
and type
manifests, as well as deployment script. This helps automating and adjusting the Airship to the OPNFV reference lab Intel POD17.
Manifests
All site configuration is divided in three layers - global
, type
a declarative way of automating the deployment of a site. Therefore, all the deployment details are defined in the manifests.
The manifests are divided into three layers: global
, type
, and site
. They are hierarchical and meant as overrides from one layer to another. This means that global
is baseline for all sites, type
is a subset of common overrides for a number of sites with common configuration patters (e.g. patterns (such as similar hardware, or need of enabled features, specific feature settings, and so on), and finally the site
is the last layer of site-specific overrides and configuration (such as specific IP addresses, hostnames, etcand so on). See Deckhand documentation for more details on layering.
The global
and type
manifests can be used as is unless any major differences from a reference deployment are required. In the latter case, this may introduce a new type, or even contributions to the global
manifests.
The site manifests are specific for each site and are required to be customized for each new deployment. The specific documentation for customizing these documents is located here:
- Airship Site Authoring and Deployment Guide
- Code comments in the manifests themselves, for example common-addresses.yaml
- As well as each individual chart of components, for example, Deckhand chart values.yaml
Global
Global manifests, defined in Airship Treasuremap, contain base configuration including version to all the configurations common to all sites. The versions of all Helm charts and Docker images, for example, are specified in versions.yaml.
...
The type cntt
will eventually support specifications published by the CNTT community, see . See CNTT type.
Site
The site documents reside under the site
folder. While there already arethe folder already contains some sites, and will be contain more sites published in the future, the intel-pod17
site shall be considered as the Airship OPNFV reference site, see . See more at POD17 manifests.
The site-definition.yaml ties together site
with the specific type and global
manifests.
data:
site_type: cntt
repositories:
global:
revision: v1.47
url: https://opendev.org/airship/treasuremap.git
Deployment
As Airship is tooling to declaratively automate site deployment, the automation from the installer side is light. See deploy.sh.
You will need to export environment variables that correspond to the new site (keystone URL, node IPs, and so on). See the beginning of the deploy script for details on the required variables.
Once the prerequisites that are described in the Airship deployment guide (such as setting up Genesis node), and the manifests are created, you are ready to execute deploy.sh
that supports Shipyard actions: deploy_site
and update_site
.
$ tools/deploy.sh
Usage: deploy.sh <deploy_site|update_site>
CI/CD
TODO: Describe pipelines and approach
https://build.opnfv.org/ci/view/airship/
OpenStack
Describe how to setup OpenStack CLIThe treasuremap
repository contains a wrapper script for running OpenStack clients tools/openstack. The wrapper uses heat
image that already has openstack client installed.
Clone latest treasuremap
code
$ git clone https://github.com/airshipit/treasuremap.git
Setup the needed environment variables, and execute the script as openstack CLI
$ export OSH_KEYSTONE_URL='http://identity-airship.intel-pod17.opnfv.org/v3'
$ export OS_REGION_NAME=intel-pod17
$ treasuremap/tools/openstack image list