summaryrefslogtreecommitdiffstats
path: root/fuel/build/DOC/BUILD/README.build
blob: 519ee6a3a8964336b6ec44c1417c1010d9c7107e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
##############################################################################
# Copyright (c) 2015 Ericsson AB and others.
# stefan.k.berg@ericsson.com
# jonas.bjurel@ericsson.com
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Apache License, Version 2.0
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################

How to setup and use the OPNFV/BGS/FUEL build system
====================================================

1. Build system requirements
----------------------------
1.1 Host HW/VM requirements
---------------------------
- An x86_64 host (real iron or VM) with Ubuntu 14.04 LTS installed
- ~30 GB available disc
- 4 GB RAM

1.2 Host SW dependencies
------------------------
The host should run Ubuntu 14.04
On the host, the following packages must be installed:
- docker - see https://docs.docker.com/installation/ubuntulinux/ for installation notes
for Ubuntu 14.04. Note: only use the Ubuntu stock distro of Docker (docker.io)
- git (simply available through apt-get install git)
- make (simply available through apt-get install make)

2 Setting up the Docker build container
----------------------------------------
When having installed Docker, add yourself to the docker group:
usermod -a -G docker <userid>

Also make sure to define rellevant dns servers part of the global dns chain in
in your /etc/default/docker config file, eg.
DOCKER_OPTS=" --dns=8.8.8.8 --dns=8.8.8.4"

Then restart docker with "service docker.io restart".:

3. Setting up OPNFV Gerrit in order to being able to clone the code
-------------------------------------------------------------------
- Start by creating a SSH key, if you don't already have one, create one with ssh-keygen

- Add your generated public key in OPNFV Gerrit -https://gerrit.opnfv.org/
  (this requires a linuxfoundation account, create one if you do not already have one)

- Select "SSH Public Keys" to the left and then "Add Key" and paste your public key in.

4. Clone the OPNFV code git repository
--------------------------------------
 So now we're coming to the fun part! Let's clone the code repository:
 git clone ssh://<Linux foundation user>@gerrit.opnfv.org:29418/genesis

 Change the directory to "fuel-build"
 cd fuel-build/

5. Set up (build) your build environment
----------------------------------------
Select the versions of the components you want to build by editing the
fuel-build/config-spec file. Note if you want to build with OpenDaylight
SDN controller you need to uncomment the lines starting with odl-main and
java-main

6. Build your fuel .iso image
-----------------------------
That's it, time to build!
make [all]

This will:
- If not allready existing, initialize the docker build environment
- If not already done, build OpenDaylight from upstream (as defined by fuel-build/
  config-spec)
- If not already done, build fuel from upstream (as defined by fuel-build/config-spec)
- Build the defined additions to fuel (as defined by the structure of this framework)
- Apply changes and patches to fuel (as defined by the structure of this framework)
- Reconstruct a fuel .iso image

If the build is successful, you will find the generated ISO file in the release
subdirectory!

NOTE: the build of the baseline for Fuel and odl are cached, if build results reffering
to the same versions as specified in fuel-build/config spec has been built before, these
packages will not be rebuilt. The cache is cleared by "make clean"

7. Install your stack
---------------------
Please see DOC/INSTALL/README

NOTES and TODO:
---------------
The build system will for now partly run as sudo
BUT NOTE, NONE OF THE MAKEFILES OR SCRIPTS SHALL BE EXECUTED WITH
SUDO/ROOT PRIVILEDGES!
TODO: Change the scripts so that no root priviledges will be needed