X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=ci%2FREADME.rst;h=c25c58f1113ed4c67f6d7bf15df8e34588286d6d;hb=c7914e0d45d71c3d55eaf5370e0b707a5332e674;hp=9f1230dbdcd54c3b00bf9f2b48df95a55765581e;hpb=6fb970627653a5ae6293db6ef36b5a836e98769d;p=fuel.git diff --git a/ci/README.rst b/ci/README.rst index 9f1230dbd..c25c58f11 100644 --- a/ci/README.rst +++ b/ci/README.rst @@ -4,91 +4,100 @@ 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 + +The ``ci`` directory holds all OPNFV Fuel programatic abstractions for +the OPNFV community release and continuous integration pipeline. +There are now two OPNFV Fuel autonomous scripts for this, complying to the OPNFV CI pipeline guideline: - - deploy.sh -USAGE +- ``build.sh`` +- ``deploy.sh`` + +Usage ===== -For usage information of the CI/CD scripts, please run: -./deploy.sh -h -Details on the CI/CD deployment framework +For usage information of the CI/CD deploy script, please run: + +.. code-block:: console + + jenkins@jumpserver:~/fuel/ci$ ./deploy.sh -h + +Details on the CI/CD Deployment Framework ========================================= -Overview and purpose +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 +The CI/CD deployment script relies on a configuration structure, providing: + +- per POD specific configuration (defaults to using Pharos OPNFV project + ``PDF``/``IDF`` files for all OPNFV CI PODs). + Pharos OPNFV git repository is included as a git submodule at + ``mcp/scripts/pharos``. + Optionally, a custom configuration structure can be used via the ``-b`` + deploy argument. + The POD specific parameters follow the ``PDF``/``IDF`` formats defined by + the Pharos OPNFV project. +- deployment scenario configuration, part of fuel repo: ``mcp/config/scenario``. + Provides a high level, POD/HW environment independent scenario configuration + for a specific deployment. It defines what features shall be deployed - as + well as needed overrides of the base installer, POD/HW environment + configurations. Objects allowed to override are governed by the OPNFV Fuel + project. +- base installer configuration, part of fuel repo: ``mcp/config/states``, + ``mcp/reclass``. + 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 + normally carried by the the installer projects in this case (OPNFV Fuel). + +Executing a Deployment ---------------------- -deploy.sh must be executed locally at the target lab/pod/jumpserver + +``deploy.sh`` must be executed locally on 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: -$ 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. +.. code-block:: console + + jenkins@jumpserver:~/fuel/ci$ ./deploy.sh -b file:///home/jenkins/config \ + -l lf \ + -p pod2 \ + -s os-nosdn-nofeature-ha + +``-b`` argument should be expressed in URI style (eg: ``file://...`` or +``http://...``). The resources can thus be local or remote. + +If ``-b`` is not used, the Pharos OPNFV project git submodule local path URI +is used for the default configuration structure. -Configuration repository structure +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/. +pointed to by the ``-b`` option described above. +Normally this points to the ``mcp/scripts/pharos`` git repo submodule, but you +may point to any local or remote strcture fullfilling the diectory/file +structure below. +This configuration structure supports optional encryption of certain security +sensitive data, mechanism described in the Pharos documentation. + Following configuration directory and file structure should adheare to: -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 deploy/scenario/README for instructions on how to create a new -deployment scenario. +.. code-block:: console + + TOP + ! + +---- labs + ! + +---- lab-name-1 + ! ! + ! +---- pod1.yaml + ! ! + ! +---- idf-pod1.yaml + ! ! + ! +---- pod2.yaml + ! ! + ! +---- idf-pod2.yaml + ! + +---- lab-name-2 + ! !