Script to clean expired build cache items
[fuel.git] / ci / README
1 ##############################################################################
2 # Copyright (c) 2015 Ericsson 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 are two Fuel@OPNF autonomous scripts fo this, complying to the OPNFV CI pipeline guideline:
16  - build.sh
17  - deploy.sh
18
19 USAGE
20 =====
21 For usage information of the CI/CD scripts, please run:
22 ./build.sh -h
23 ./deploy.sh -h
24
25 Details on the CI/CD deployment framework
26 =========================================
27
28 Overview and purpose
29 --------------------
30 The CI/CD deployment script relies on a configuration structure, providing base
31 installer configuration (part of fuel repo: deploy/config), per POD specific
32 configuration (part of a separate classified POD configuration repo: securedlab
33 , plugin configuration (part of fuel repo: deploy/config/plugins), and
34 deployment scenario configuration (part of fuel repo: deploy/scenario).
35
36 - The base installer configuration resembles the least common denominator of all
37   HW/POD environment and deployment scenarios (These configurations are
38   normally carried by the the installer projects in this case (fuel@OPNFV).
39 - Per POD specific configuration specifies POD unique parameters, the POD
40   parameter possible to alter is governed by the Fuel@OPNFV project.
41 - Plugin configuration - providing configuration of a specific plugin.
42   these configurations maintain there own namespace and are normally maintained
43   by collaborative projects building Fuel@OPNFV plugins
44 - Deployment scenario configuration - provides a high level, POD/HW environment
45   independent scenario configuration for a specifiv deployment. It defines what
46   features/plugins that shall be deployed - as well needed overrides of the base
47   installer-, POD/HW environment- configurations. Objects allowed to override
48   is governed by the Fuel@OPNFV project.
49
50 Executing a deployment
51 ----------------------
52 deploy.sh must be executed locally at the target lab/pod/jumpserver
53 A configuration structure must be provided - see the section below.
54 It is straight forward to execute a deployment task - as an example:
55 sudo deploy.sh -b file:///home/jenkins/config -l LF-1 -p POD-2 -s
56 os_odl-l2_ha -i file:///home/jenkins/MyIso.iso
57
58 -b and -i arguments should be expressed in URI style (eg: file://...
59 or http://.... The resources can thus be local or remote.
60
61 Configuration repository structure
62 ----------------------------------
63 The CI deployment engine relies on a configuration directory/file structure
64 pointed to by the -b option described above.
65 Normally this points to the secure classified OPNFV securedlab repo to which
66 only jenkins and andmins have access to, but you may point to any local or
67 remote strcture fullfilling the diectory/file structure below.
68 The reason that this configuration structure needs to be secure/hidden
69 is that there are security sensitive information in the various configuration
70 files.
71 A local stripped version of this configuration structure with virtual
72 deployment configurations also exist under build/config/.
73 Following configuration directory and file structure should be adheare to:
74
75 TOP
76 !
77 +---- labs
78        !
79        +---- lab-name-1
80        !        !
81        !        +---- pod-name-1
82        !        !        !
83        !        !        +---- fuel
84        !        !               !
85        !        !               +---- config
86        !        !                       !
87        !        !                       +---- dea-pod-override.yaml
88        !        !                       !
89        !        !                       +---- dha.yaml
90        !        !
91        !        +---- pod-name-2
92        !                 !
93        !
94        +---- lab-name-2
95        !        !
96
97
98 Creating a deployment scenario
99 ------------------------------
100 Please find deploy/scenario/README for instructions on how to create a new
101 deployment scenario.