Merge "Move mcp.rsa to /var/lib/opnfv"
[fuel.git] / ci / README
1 ##############################################################################
2 # Copyright (c) 2017 Ericsson AB, Mirantis Inc., Enea Software AB and others.
3 # stefan.k.berg@ericsson.com
4 # jonas.bjurel@ericsson.com
5 # All rights reserved. This program and the accompanying materials
6 # are made available under the terms of the Apache License, Version 2.0
7 # which accompanies this distribution, and is available at
8 # http://www.apache.org/licenses/LICENSE-2.0
9 ##############################################################################
10
11 Abstract
12 ========
13 The fuel/ci directory holds all Fuel@OPNFV programatic abstractions for
14 the OPNFV community release and continous integration pipeline.
15 There is now only one Fuel@OPNFV autonomous script for this, complying to the
16 OPNFV CI pipeline guideline:
17  - deploy.sh
18
19 USAGE
20 =====
21 For usage information of the CI/CD scripts, please run:
22 ./deploy.sh -h
23
24 Details on the CI/CD deployment framework
25 =========================================
26
27 Overview and purpose
28 --------------------
29 The CI/CD deployment script relies on a configuration structure, providing base
30 installer configuration (part of fuel repo: mcp/config), per POD specific
31 configuration (part of a separate classified POD configuration repo: securedlab
32 and deployment scenario configuration (part of fuel repo: mcp/config/scenario).
33
34 - The base installer configuration resembles the least common denominator of all
35   HW/POD environment and deployment scenarios. These configurations are
36   normally carried by the the installer projects in this case (Fuel@OPNFV).
37 - Per POD specific configuration specifies POD unique parameters, the POD
38   parameter possible to alter is governed by the Fuel@OPNFV project.
39 - Deployment scenario configuration - provides a high level, POD/HW environment
40   independent scenario configuration for a specifiv deployment. It defines what
41   features shall be deployed - as well needed overrides of the base
42   installer, POD/HW environment configurations. Objects allowed to override
43   are governed by the Fuel@OPNFV project.
44
45 Executing a deployment
46 ----------------------
47 deploy.sh must be executed locally at the target lab/pod/jumpserver
48 A configuration structure must be provided - see the section below.
49 It is straight forward to execute a deployment task - as an example:
50 $ sudo deploy.sh -b file:///home/jenkins/config \
51   -l lf -p pod2 -s os-nosdn-nofeature-ha
52
53 -b and -i arguments should be expressed in URI style (eg: file://...
54 or http://...). The resources can thus be local or remote.
55
56 Configuration repository structure
57 ----------------------------------
58 The CI deployment engine relies on a configuration directory/file structure
59 pointed to by the -b option described above.
60 Normally this points to the secure classified OPNFV securedlab repo to which
61 only jenkins and andmins have access to, but you may point to any local or
62 remote strcture fullfilling the diectory/file structure below.
63 The reason that this configuration structure needs to be secure/hidden
64 is that there are security sensitive information in the various configuration
65 files.
66
67 FIXME: Below information is out of date and should be refreshed after PDF
68 support is fully implemented.
69
70 A local stripped version of this configuration structure with virtual
71 deployment configurations also exist under build/config/.
72 Following configuration directory and file structure should adheare to:
73
74 TOP
75 !
76 +---- labs
77        !
78        +---- lab-name-1
79        !        !
80        !        +---- pod-name-1
81        !        !        !
82        !        !        +---- fuel
83        !        !               !
84        !        !               +---- config
85        !        !                       !
86        !        !                       +---- dea-pod-override.yaml
87        !        !                       !
88        !        !                       +---- dha.yaml
89        !        !
90        !        +---- pod-name-2
91        !                 !
92        !
93        +---- lab-name-2
94        !        !
95
96
97 Creating a deployment scenario
98 ------------------------------
99 Please find deploy/scenario/README for instructions on how to create a new
100 deployment scenario.