Browse code

A service to install diskimage-builder

Enabling service 'dib' will install the following repos:
* diskimage-builder
* tripleo-image-elements
* os-collect-config
* os-refresh-config
* os-apply-config

These repos are already pre-fetched in devstack-gate.

This will facilitate gating on changes in these projects by building
a custom image then running the heat-slow job against that image.

diskimage_builder is pip installed from the current git checkout
if the dib service is enabled. This allows devstack gating on
diskimage-builder changes while also allowing diskimage-builder to
be installed from releases for other scenarios (for example, ironic).

Change-Id: Ia911cdee86f5b2e2ba1557e5aa8bf392b92ef555

Steve Baker authored on 2014/05/05 13:06:17
Showing 3 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,27 @@
0
+# dib.sh - Devstack extras script to install diskimage-builder
1
+
2
+if is_service_enabled dib; then
3
+    if [[ "$1" == "source" ]]; then
4
+        # Initial source
5
+        source $TOP_DIR/lib/dib
6
+    elif [[ "$1" == "stack" && "$2" == "install" ]]; then
7
+        echo_summary "Installing diskimage-builder"
8
+        install_dib
9
+    elif [[ "$1" == "stack" && "$2" == "post-config" ]]; then
10
+        # no-op
11
+        :
12
+    elif [[ "$1" == "stack" && "$2" == "extra" ]]; then
13
+        # no-op
14
+        :
15
+    fi
16
+
17
+    if [[ "$1" == "unstack" ]]; then
18
+        # no-op
19
+        :
20
+    fi
21
+
22
+    if [[ "$1" == "clean" ]]; then
23
+        # no-op
24
+        :
25
+    fi
26
+fi
0 27
new file mode 100644
... ...
@@ -0,0 +1,51 @@
0
+# lib/dib
1
+# Install and build images with **diskimage-builder**
2
+
3
+# Dependencies:
4
+#
5
+# - functions
6
+# - DEST, DATA_DIR must be defined
7
+
8
+# stack.sh
9
+# ---------
10
+# - install_dib
11
+
12
+# Save trace setting
13
+XTRACE=$(set +o | grep xtrace)
14
+set +o xtrace
15
+
16
+# Defaults
17
+# --------
18
+
19
+# set up default directories
20
+DIB_DIR=$DEST/diskimage-builder
21
+TIE_DIR=$DEST/tripleo-image-elements
22
+DIB_IMAGE_CACHE=$DATA_DIR/diskimage-builder/image-create
23
+OCC_DIR=$DEST/os-collect-config
24
+ORC_DIR=$DEST/os-refresh-config
25
+OAC_DIR=$DEST/os-apply-config
26
+
27
+# Functions
28
+# ---------
29
+
30
+# install_dib() - Collect source and prepare
31
+function install_dib {
32
+    git_clone $DIB_REPO $DIB_DIR $DIB_BRANCH
33
+    pushd $DIB_DIR
34
+    pip_install ./
35
+    popd
36
+
37
+    git_clone $TIE_REPO $TIE_DIR $TIE_BRANCH
38
+    git_clone $OCC_REPO $OCC_DIR $OCC_BRANCH
39
+    git_clone $ORC_REPO $ORC_DIR $ORC_BRANCH
40
+    git_clone $OAC_REPO $OAC_DIR $OAC_BRANCH
41
+    mkdir -p $DIB_IMAGE_CACHE
42
+}
43
+
44
+# Restore xtrace
45
+$XTRACE
46
+
47
+# Tell emacs to use shell-script-mode
48
+## Local variables:
49
+## mode: shell-script
50
+## End:
... ...
@@ -124,6 +124,10 @@ CINDER_BRANCH=${CINDER_BRANCH:-master}
124 124
 CINDERCLIENT_REPO=${CINDERCLIENT_REPO:-${GIT_BASE}/openstack/python-cinderclient.git}
125 125
 CINDERCLIENT_BRANCH=${CINDERCLIENT_BRANCH:-master}
126 126
 
127
+# diskimage-builder
128
+DIB_REPO=${DIB_REPO:-${GIT_BASE}/openstack/diskimage-builder.git}
129
+DIB_BRANCH=${DIB_BRANCH:-master}
130
+
127 131
 # image catalog service
128 132
 GLANCE_REPO=${GLANCE_REPO:-${GIT_BASE}/openstack/glance.git}
129 133
 GLANCE_BRANCH=${GLANCE_BRANCH:-master}
... ...
@@ -184,10 +188,22 @@ NOVA_BRANCH=${NOVA_BRANCH:-master}
184 184
 NOVACLIENT_REPO=${NOVACLIENT_REPO:-${GIT_BASE}/openstack/python-novaclient.git}
185 185
 NOVACLIENT_BRANCH=${NOVACLIENT_BRANCH:-master}
186 186
 
187
+# os-apply-config configuration template tool
188
+OAC_REPO=${OAC_REPO:-${GIT_BASE}/openstack/os-apply-config.git}
189
+OAC_BRANCH=${OAC_BRANCH:-master}
190
+
191
+# os-collect-config configuration agent
192
+OCC_REPO=${OCC_REPO:-${GIT_BASE}/openstack/os-collect-config.git}
193
+OCC_BRANCH=${OCC_BRANCH:-master}
194
+
187 195
 # consolidated openstack python client
188 196
 OPENSTACKCLIENT_REPO=${OPENSTACKCLIENT_REPO:-${GIT_BASE}/openstack/python-openstackclient.git}
189 197
 OPENSTACKCLIENT_BRANCH=${OPENSTACKCLIENT_BRANCH:-master}
190 198
 
199
+# os-refresh-config configuration run-parts tool
200
+ORC_REPO=${ORC_REPO:-${GIT_BASE}/openstack/os-refresh-config.git}
201
+ORC_BRANCH=${ORC_BRANCH:-master}
202
+
191 203
 # cliff command line framework
192 204
 CLIFF_REPO=${CLIFF_REPO:-${GIT_BASE}/openstack/cliff.git}
193 205
 CLIFF_BRANCH=${CLIFF_BRANCH:-master}
... ...
@@ -258,10 +274,9 @@ SWIFTCLIENT_BRANCH=${SWIFTCLIENT_BRANCH:-master}
258 258
 TEMPEST_REPO=${TEMPEST_REPO:-${GIT_BASE}/openstack/tempest.git}
259 259
 TEMPEST_BRANCH=${TEMPEST_BRANCH:-master}
260 260
 
261
-
262
-# diskimage-builder
263
-DIB_REPO=${DIB_REPO:-${GIT_BASE}/openstack/diskimage-builder.git}
264
-DIB_BRANCH=${DIB_BRANCH:-master}
261
+# Tripleo elements for diskimage-builder images
262
+TIE_REPO=${TIE_REPO:-${GIT_BASE}/openstack/tripleo-image-elements.git}
263
+TIE_BRANCH=${TIE_BRANCH:-master}
265 264
 
266 265
 # a websockets/html5 or flash powered VNC console for vm instances
267 266
 NOVNC_REPO=${NOVNC_REPO:-https://github.com/kanaka/noVNC.git}