A simple method to separate configuration for base fuel, plugins, PODs
[fuel.git] / deploy / scenario / README
1 ##############################################################################
2 # Copyright (c) 2015 Ericsson AB and others.
3 # jonas.bjurel@ericsson.com
4 # All rights reserved. This program and the accompanying materials
5 # are made available under the terms of the Apache License, Version 2.0
6 # which accompanies this distribution, and is available at
7 # http://www.apache.org/licenses/LICENSE-2.0
8 ##############################################################################
9
10 Abstract:
11 ---------
12 The directory contains configuration files for different OPNFV deployment
13 feature scenarios used by Fuel@OPNFV, eg.:
14 - High availability configuration
15 - Type of SDN controller to be deployed
16 - OPNFV collaboration project features to be deployed.
17 - Provisioning of any other sevices
18
19 Creating a new plugin
20 ---------------------
21 Creating a new plugin involves creating a plugin config yaml file in
22 /deploy/config/plugins. The filename should comply to following structure:
23 fuel-<plugin_name>_<version>.yaml.
24 The plugin configuration must include plugin configuration metadata as below:
25
26 plugin-config-metadata:
27   title:
28   version:
29   created:
30   comment:
31
32 Moreover, naturaly the plugin configuration must include the plugin yaml
33 fragment, eg:
34
35 opendaylight:
36   metadata:
37     enabled: true
38     label: OpenDaylight Lithium plugin
39 .......
40
41 Creating a new deployment scenario
42 ----------------------------------
43 Creating a new deployment scenario involve creating a deployment scenario
44 yaml file under deploy/scenario/. The filename should comply to following
45 format: <ha | no-ha>_<SDN Controller>_<feature-1>_..._<feature-n>_<version>.yaml
46
47 The deployment configuration file must contain configuration metadata as stated
48 below:
49
50 deployment-scenario-metadata:
51    title:
52    version:
53    created:
54    comment:
55
56 To include fuel plugins, use the stack-extentions key:
57 stack-extensions, eg:
58
59 stack-extensions:
60    - module: opendaylight
61      module-config-name: fuel-odl
62      module-config-version: 0.0.1
63      module-config-override:
64        # Module config overrides
65        rest_api_port:
66          value: '8282'
67        enable_gbp:
68          value: false
69        enable_l3_odl:
70          value: true
71        enable_sfc:
72          value: false
73
74 "module-config-name" and "module-config-version" must correspond to how
75 the plugin configuration yaml was named.
76 Everything under the "module-config-override" overrides the corresponding
77 keys in the plugin config yaml file, this can for instance be used to configure
78 the plugin.
79
80 Everything under the "dea-override-config" overrides corresponding keys in the dea_base.yaml and dea_pod_override.yaml.
81 You must at least provide {environment:{mode:'value},{net_segment_type:'value'}
82 and {nodes:....} in order to configure the HA mode, network segmentation types
83 and role to node assignments.
84 Other ovverides may also be used to enable stack features such as ceph, heat,
85 etc.
86 Example:
87
88 dea-override-config:
89   environment:
90     mode: ha
91     net_segment_type: tun
92   wanted_release: Kilo on Ubuntu 14.04
93   nodes:
94   - id: 1
95     interfaces: interfaces_1
96     role: mongo,controller,opendaylight
97     transformations: transformations_1
98   - id: 2
99     interfaces: interfaces_1
100     role: mongo,controller
101     transformations: transformations_1
102   - id: 3
103     interfaces: interfaces_1
104     role: mongo,controller
105     transformations: transformations_1
106   - id: 4
107     interfaces: interfaces_1
108     role: ceph-osd,compute
109     transformations: transformations_1
110   - id: 5
111     interfaces: interfaces_1
112     role: ceph-osd,compute
113     transformations: transformations_1
114
115   settings:
116     editable:
117       additional_components:
118         ceilometer:
119           description: If selected, Ceilometer component will be installed
120           label: Install Ceilometer
121           type: checkbox
122           value: true
123           weight: 40
124         heat:
125           description: ''
126           label: ''
127           type: hidden
128           value: true
129           weight: 30
130         metadata:
131           label: Additional Components
132           weight: 20
133       storage:
134         ephemeral_ceph:
135           description: Configures Nova to store ephemeral volumes in RBD. This works
136             best if Ceph is enabled for volumes and images, too. Enables live migration
137             of all types of Ceph backed VMs (without this option, live migration will
138             only work with VMs launched from Cinder volumes).
139           label: Ceph RBD for ephemeral volumes (Nova)
140           type: checkbox
141           value: true
142           weight: 75
143         images_ceph:
144           description: Configures Glance to use the Ceph RBD backend to store images.
145             If enabled, this option will prevent Swift from installing.
146           label: Ceph RBD for images (Glance)
147           restrictions:
148           - settings:storage.images_vcenter.value == true: Only one Glance backend could
149               be selected.
150           type: checkbox
151           value: true
152           weight: 30
153
154 Optionally you may override the pod dha defenition under the
155 "dha-override-config" key.
156
157 Short names
158 -----------
159 scenario.yaml provides a mapping between a deployment scenario short-name
160 and one or several deployment scenario configuration yaml files.
161
162 Other
163 -----
164 These configuration files are used by deploy.sh provided by Fuel@OPNFV, e.g.
165 deploy.sh will clone this repo when deploying.