1 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
2 .. SPDX-License-Identifier: CC-BY-4.0
3 .. (c) 2017 Ericsson AB, Mirantis Inc., Enea Software AB and others.
8 The ``ci`` directory holds all OPNFV Fuel programatic abstractions for
9 the OPNFV community release and continuous integration pipeline.
10 There are now two OPNFV Fuel autonomous scripts for this, complying to the
11 OPNFV CI pipeline guideline:
19 For usage information of the CI/CD deploy script, please run:
21 .. code-block:: console
23 jenkins@jumpserver:~/fuel/ci$ ./deploy.sh -h
25 Details on the CI/CD Deployment Framework
26 =========================================
31 The CI/CD deployment script relies on a configuration structure, providing:
33 - per POD specific configuration (defaults to using Pharos OPNFV project
34 ``PDF``/``IDF`` files for all OPNFV CI PODs).
35 Pharos OPNFV git repository is included as a git submodule at
36 ``mcp/scripts/pharos``.
37 Optionally, a custom configuration structure can be used via the ``-b``
39 The POD specific parameters follow the ``PDF``/``IDF`` formats defined by
40 the Pharos OPNFV project.
41 - deployment scenario configuration, part of fuel repo: ``mcp/config/scenario``.
42 Provides a high level, POD/HW environment independent scenario configuration
43 for a specific deployment. It defines what features shall be deployed - as
44 well as needed overrides of the base installer, POD/HW environment
45 configurations. Objects allowed to override are governed by the OPNFV Fuel
47 - base installer configuration, part of fuel repo: ``mcp/config/states``,
49 The base installer configuration resembles the least common denominator of all
50 HW/POD environment and deployment scenarios. These configurations are
51 normally carried by the the installer projects in this case (OPNFV Fuel).
53 Executing a Deployment
54 ----------------------
56 ``deploy.sh`` must be executed locally on the target lab/pod/jumpserver.
57 A configuration structure must be provided - see the section below.
58 It is straight forward to execute a deployment task - as an example:
60 .. code-block:: console
62 jenkins@jumpserver:~/fuel/ci$ ./deploy.sh -b file:///home/jenkins/config \
65 -s os-nosdn-nofeature-ha
67 ``-b`` argument should be expressed in URI style (eg: ``file://...`` or
68 ``http://...``). The resources can thus be local or remote.
70 If ``-b`` is not used, the Pharos OPNFV project git submodule local path URI
71 is used for the default configuration structure.
73 Configuration Repository Structure
74 ----------------------------------
76 The CI deployment engine relies on a configuration directory/file structure
77 pointed to by the ``-b`` option described above.
78 Normally this points to the ``mcp/scripts/pharos`` git repo submodule, but you
79 may point to any local or remote strcture fullfilling the diectory/file
81 This configuration structure supports optional encryption of certain security
82 sensitive data, mechanism described in the Pharos documentation.
84 Following configuration directory and file structure should adheare to:
86 .. code-block:: console
100 ! +---- idf-pod2.yaml