Add secret-management in Charmed OSM
[osm/devops.git] / jenkins / host / start_build
index 555b8a2..f7ada68 100755 (executable)
@@ -1,5 +1,6 @@
 #!/bin/bash
 #   Copyright 2016 RIFT.IO Inc
+#   Copyright 2016 Telefónica Investigación y Desarrollo S.A.U.
 #
 #   Licensed under the Apache License, Version 2.0 (the "License");
 #   you may not use this file except in compliance with the License.
@@ -16,6 +17,7 @@
 # start-build is run on a host to start a MDG build
 #
 # 24 June 2016 -- Jeremy Mordkoff -- Genesis
+#              -- Gerardo Garcia
 
 
 HERE=$(realpath $(dirname $0))
@@ -28,30 +30,37 @@ export OSM_MDG=$1
 shift
 OSM_load_config
 
+if [ "$1" = "--build-container" ]; then
+    shift
+    [ $# -lt 1 ] && FATAL "missing container name with option --build-container"
+    export OSM_BUILD_CONTAINER=$1
+    shift
+fi
+
 if ! container_exists $OSM_BUILD_CONTAINER; then
-       if [[ "$OSM_BUILD_CONTAINER_PRIVILEGED" == yes ]]; then
-               create_privileged_container $OSM_BASE_IMAGE $OSM_BUILD_CONTAINER
-       else
-               create_container $OSM_BASE_IMAGE $OSM_BUILD_CONTAINER
-       fi
+       CONTAINER_OPTS=""
+       [[ "$OSM_BUILD_CONTAINER_PRIVILEGED" == yes ]] && CONTAINER_OPTS="$CONTAINER_OPTS -c security.privileged=true"
+       [[ "$OSM_BUILD_CONTAINER_ALLOW_NESTED" == yes ]] && CONTAINER_OPTS="$CONTAINER_OPTS -c security.nesting=true"
+       [[ "$OSM_BUILD_CONTAINER_ALLOW_DOCKER" == yes ]] && CONTAINER_OPTS="$CONTAINER_OPTS -p docker -p default"
+       create_container $OSM_BASE_IMAGE $OSM_BUILD_CONTAINER $CONTAINER_OPTS
        wait_container_up $OSM_BUILD_CONTAINER
        RE="fedora|fc[0-9]"
        if [[ $OSM_BASE_IMAGE =~ $RE ]]; then
-               container_exec $OSM_BUILD_CONTAINER yum -y install git tar
+               container_exec $OSM_BUILD_CONTAINER yum -y install git tar make sudo
        else
-               container_exec $OSM_BUILD_CONTAINER apt -y install git realpath
+               container_exec $OSM_BUILD_CONTAINER apt-get -y install git realpath make sudo 
+       fi
+       if [ ${OSM_USE_LOCAL_DEVOPS:-false} ]; then
+               container_push_devops $OSM_BUILD_CONTAINER
+       else
+               container_exec $OSM_BUILD_CONTAINER git clone ${OSM_GIT_URL}/devops
        fi
-    if [ ${OSM_USE_LOCAL_DEVOPS:-false} ]; then
-        container_push_devops $OSM_BUILD_CONTAINER
-    else
-           container_exec $OSM_BUILD_CONTAINER git clone ${OSM_GIT_URL}/devops
-    fi
 else
-    if [ ${OSM_USE_LOCAL_DEVOPS:-false} ]; then
-        container_push_devops $OSM_BUILD_CONTAINER
-    else
-           container_exec $OSM_BUILD_CONTAINER git -C devops pull
-    fi
+       if [ ${OSM_USE_LOCAL_DEVOPS:-false} ]; then
+               container_push_devops $OSM_BUILD_CONTAINER
+       else
+               container_exec $OSM_BUILD_CONTAINER git -C devops pull
+       fi
 fi
 
 container_exec $OSM_BUILD_CONTAINER ./devops/jenkins/$OSM_MDG/start_build $*