diff options
Diffstat (limited to 'ci/README.rst')
-rw-r--r-- | ci/README.rst | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/ci/README.rst b/ci/README.rst new file mode 100644 index 000000000..dc860c003 --- /dev/null +++ b/ci/README.rst @@ -0,0 +1,102 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. SPDX-License-Identifier: CC-BY-4.0 +.. (c) 2017 Ericsson AB, Mirantis Inc., Enea Software AB and others. + +Abstract +======== +The fuel/ci directory holds all Fuel@OPNFV programatic abstractions for +the OPNFV community release and continous integration pipeline. +There is now only one Fuel@OPNFV autonomous script for this, complying to the +OPNFV CI pipeline guideline: + - deploy.sh + +USAGE +===== +For usage information of the CI/CD scripts, please run: + + .. code-block:: bash + + $ ./deploy.sh -h + +Details on the CI/CD deployment framework +========================================= + +Overview and purpose +-------------------- +The CI/CD deployment script relies on a configuration structure, providing base +installer configuration (part of fuel repo: mcp/config), per POD specific +configuration (part of a separate classified POD configuration repo: securedlab +and deployment scenario configuration (part of fuel repo: mcp/config/scenario). + +- The base installer configuration resembles the least common denominator of all + HW/POD environment and deployment scenarios. These configurations are + normally carried by the the installer projects in this case (Fuel@OPNFV). +- Per POD specific configuration specifies POD unique parameters, the POD + parameter possible to alter is governed by the Fuel@OPNFV project. +- Deployment scenario configuration - provides a high level, POD/HW environment + independent scenario configuration for a specifiv deployment. It defines what + features shall be deployed - as well needed overrides of the base + installer, POD/HW environment configurations. Objects allowed to override + are governed by the Fuel@OPNFV project. + +Executing a deployment +---------------------- +deploy.sh must be executed locally at the target lab/pod/jumpserver +A configuration structure must be provided - see the section below. +It is straight forward to execute a deployment task - as an example: + + .. code-block:: bash + + $ sudo deploy.sh -b file:///home/jenkins/config + -l lf -p pod2 -s os-nosdn-nofeature-ha + +-b and -i arguments should be expressed in URI style (eg: file://... +or http://...). The resources can thus be local or remote. + +Configuration repository structure +---------------------------------- +The CI deployment engine relies on a configuration directory/file structure +pointed to by the -b option described above. +Normally this points to the secure classified OPNFV securedlab repo to which +only jenkins and andmins have access to, but you may point to any local or +remote strcture fullfilling the diectory/file structure below. +The reason that this configuration structure needs to be secure/hidden +is that there are security sensitive information in the various configuration +files. + +FIXME: Below information is out of date and should be refreshed after PDF +support is fully implemented. + +A local stripped version of this configuration structure with virtual +deployment configurations also exist under build/config/. +Following configuration directory and file structure should adheare to: + + .. code-block:: bash + + TOP + ! + +---- labs + ! + +---- lab-name-1 + ! ! + ! +---- pod-name-1 + ! ! ! + ! ! +---- fuel + ! ! ! + ! ! +---- config + ! ! ! + ! ! +---- dea-pod-override.yaml + ! ! ! + ! ! +---- dha.yaml + ! ! + ! +---- pod-name-2 + ! ! + ! + +---- lab-name-2 + ! ! + + +Creating a deployment scenario +------------------------------ +Please find `mcp/config/README.rst` for instructions on how to create a new +deployment scenario. |