# limitations under the License.
#######################################################################################
+APT_PROXY=""
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
HTTPDDIR="$( cd "${HOME}/snap/qhttp/common" &> /dev/null && pwd )"
HTTPPORT=8000
while [ $# -gt 0 ] ; do
case $1 in
--debug) set -x ;;
+ --apt-proxy) APT_PROXY="$2" && shift ;;
--help | -h) show_help && exit 0 ;;
--httpddir) HTTPDIR="$2" && shift;;
--install-local-registry) 'install_local_registry' ;;
OPTIONS:
--help display this help message
+ --apt-proxy provide an apt proxy to docker build steps
--debug enable set -x for this script
- --install-local-registry install and enable Microk8s local registry on port 32000
+ --install-local-registry install and enable Microk8s local registry on port 32000
--install-microstack install Microstack and configure to run robot tests
--install-qhttpd install QHTTPD as an HTTP server on port ${HTTPPORT}
--kubecfg path to kubecfg.yaml (uses Charmed OSM by default)
install-osm perform full installation of Charmed OSM from registry
start-robot start the Robot test container and leave you at prompt
update-install update Charmed OSM with new module container
+
+A typical use could be the following:
+
+Let's assume that we have different repos cloned in the folder workspace:
+
+ cd workspace
+ git clone https://osm.etsi.org/gerrit/osm/devops
+ git clone https://osm.etsi.org/gerrit/osm/NBI
+ git clone https://osm.etsi.org/gerrit/osm/LCM
+ git clone "https://osm.etsi.org/gerrit/osm/RO
+ git clone "https://osm.etsi.org/gerrit/osm/common
+ git clone "https://osm.etsi.org/gerrit/osm/IM
+ git clone "https://osm.etsi.org/gerrit/osm/N2VC
+
+First we install a light HTTP server to serve the artifacts:
+
+ devops/tools/local-build.sh --install-qhttpd
+
+Then we generate the artifacts (debian packages) for the different repos: common, IM, N2VC, RO, LCM, NBI
+
+ devops/tools/local-build.sh --module common,IM,N2VC,RO,LCM,NBI stage-2
+
+Then new docker images are generated locally with the tag "devel" (e.g.: opensourcemano/lcm:devel):
+
+ devops/tools/local-build.sh --module RO,LCM,NBI stage-3
+
+Finally, the deployment of OSM will have to be updated to use the new docker images.
+
EOF
}
function install_qhttpd() {
sudo snap install qhttp
- EXISTING_PID=$(ps auxw | grep "http.server 11480" | grep -v grep | awk '{print $2}')
+ EXISTING_PID=$(ps auxw | grep "http.server $HTTPPORT" | grep -v grep | awk '{print $2}')
if [ ! -z $EXISTING_PID ] ; then
kill $EXISTING_PID
fi
function stage_2() {
print_section "Performing Stage 2"
- MODULES="common devops IM LCM MON N2VC NBI NG-UI osmclient PLA POL RO tests"
+ MODULES="common devops IM LCM MON N2VC NBI NG-UI NG-SA osmclient PLA POL RO tests"
if [ ! -z ${1} ] ; then
POSSIBLE_MODULES=$(echo ${1} | sed "s/,/ /g")
for MODULE in ${POSSIBLE_MODULES}; do
print_section "Building ${MODULE}"
cd ${MODULE}
find . -name '*.deb' -exec rm -v {} \;
- docker build ${NO_CACHE} -t ${MODULE,,}-stage2 .
+
+ BUILD_ARGS=""
+ if [ ! -z $APT_PROXY ] ; then
+ BUILD_ARGS="${BUILD_ARGS}--build-arg APT_PROXY=${APT_PROXY} "
+ fi
+ docker build ${NO_CACHE} ${BUILD_ARGS} -t ${MODULE,,}-stage2 .
STAGES="stage-build.sh"
if [ ! -z $TESTS ] ; then
print_section "Performing Stage 3"
MODULES=$(_find_module_dockerfile $1)
BUILD_ARGS=""
+ if [ ! -z $APT_PROXY ] ; then
+ BUILD_ARGS="${BUILD_ARGS}--build-arg APT_PROXY=${APT_PROXY} "
+ fi
+
HOSTIP=$(ip -4 addr show docker0 | grep -Po 'inet \K[\d.]+')
for file in ~/snap/qhttp/common/*.deb ; do
file=`basename ${file}`