From 9ab0e2e33a5f2fd59ce175511aef8437922e1634 Mon Sep 17 00:00:00 2001 From: Bartek Grzybowski Date: Wed, 4 Nov 2020 11:52:48 +0100 Subject: Setup temporary helm repository A temporary helm repository will be created for the process of preparing data list and removed afterwards. This allows setting a separate working helm repo not affecting system wide configuration. Change-Id: I775e28b7c5f0e9b5259588032346ff392f1b1803 Issue-ID: OOM-2623 Signed-off-by: Bartek Grzybowski --- build/creating_data/docker-images-collector.sh | 36 ++++++++++++++++---------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/build/creating_data/docker-images-collector.sh b/build/creating_data/docker-images-collector.sh index a6b3c470..253246d5 100755 --- a/build/creating_data/docker-images-collector.sh +++ b/build/creating_data/docker-images-collector.sh @@ -65,6 +65,14 @@ create_list() { -e 's/\x27\|,//g; s/^.*\(image\|tag_version\):\ //' | tr -d '\r' } +# Kill helm if already running +kill_helm() { + for pid in $(pgrep -f "helm serve --address ${HELM_REPO}"); + do + kill $pid + done +} + # Configuration if [ "${1}" == "-h" ] || [ "${1}" == "--help" ] || [ $# -lt 1 ]; then usage @@ -73,7 +81,8 @@ fi PROJECT_DIR="${1}" LIST="${2}" LISTS_DIR="$(readlink -f $(dirname ${0}))/../data_lists" -HELM_REPO="local http://127.0.0.1:8879" +HELM_REPO="127.0.0.1:8879" +HELM_REPO_PATH="dist/packages" # based on PACKAGE_DIR defined in oom/kubernetes/Makefile PROJECT="$(basename ${1})" if [ ! -f "${PROJECT_DIR}/../Makefile" ]; then @@ -95,18 +104,13 @@ if [ -e "${LIST}" ]; then fi # Setup helm -if ps -eaf | grep -v "grep" | grep "helm" > /dev/null; then - echo "helm is already running" -else - helm init -c > /dev/null - helm serve & - helm repo remove stable 2>/dev/null || true -fi - -# Create helm repository -if ! helm repo list 2>&1 | awk '{ print $1, $2 }' | grep -q "$HELM_REPO" > /dev/null; then - helm repo add $HELM_REPO -fi +HELM_HOME=$(mktemp -p /tmp -d .helm.XXXXXXXX) +export HELM_HOME +kill_helm # make sure it's not already running +mkdir -p "${PROJECT_DIR}/../${HELM_REPO_PATH}" +helm init -c --local-repo-url "http://${HELM_REPO}" +helm serve --address ${HELM_REPO} --repo-path "${PROJECT_DIR}/../${HELM_REPO_PATH}" & +helm repo remove stable 2>/dev/null || true # Make all pushd "${PROJECT_DIR}/.." @@ -132,4 +136,10 @@ sed -i "1i# generated from ${COMMENT}" "${LIST}" echo -e ${MSG} echo -e 'The list has been created:\n '"${LIST}" + +# Remove temporary helm directory +rm -rf ${HELM_HOME} +# Kill helm +kill_helm + exit 0 -- cgit 1.2.3-korg From e51e086c5fa4ff60fc4e89e5fa72ddf413213011 Mon Sep 17 00:00:00 2001 From: Bartek Grzybowski Date: Wed, 4 Nov 2020 12:14:29 +0100 Subject: Override oom-cert-service docker container name Container name for certificate generation tool is hardcoded as "generate-certs" hence multiple builds couldn't run in parallel. This change overrides DOCKER_CONTAINER oom-cert-service makefile variable changing the container name effectively. Change-Id: I397ab7f3b04d35070cfb492ca482521ee10159fa Issue-ID: OOM-2623 Signed-off-by: Bartek Grzybowski --- build/creating_data/docker-images-collector.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/build/creating_data/docker-images-collector.sh b/build/creating_data/docker-images-collector.sh index 253246d5..b8eb174e 100755 --- a/build/creating_data/docker-images-collector.sh +++ b/build/creating_data/docker-images-collector.sh @@ -81,8 +81,11 @@ fi PROJECT_DIR="${1}" LIST="${2}" LISTS_DIR="$(readlink -f $(dirname ${0}))/../data_lists" -HELM_REPO="127.0.0.1:8879" +HELM_REPO_HOST="127.0.0.1" +HELM_REPO_PORT="8879" +HELM_REPO="${HELM_REPO_HOST}:${HELM_REPO_PORT}" HELM_REPO_PATH="dist/packages" # based on PACKAGE_DIR defined in oom/kubernetes/Makefile +DOCKER_CONTAINER="generate-certs-${HELM_REPO_PORT}" # oom-cert-service container name override PROJECT="$(basename ${1})" if [ ! -f "${PROJECT_DIR}/../Makefile" ]; then @@ -116,7 +119,8 @@ helm repo remove stable 2>/dev/null || true pushd "${PROJECT_DIR}/.." echo "Building project..." export SKIP_LINT=TRUE -make all > /dev/null; make ${PROJECT} > /dev/null +export DOCKER_CONTAINER +make -e all > /dev/null; make -e ${PROJECT} > /dev/null popd # Create the list from all enabled subsystems -- cgit 1.2.3-korg From 9b92bbd38b7f43b635bd4d23693822d5079edcca Mon Sep 17 00:00:00 2001 From: Bartek Grzybowski Date: Wed, 4 Nov 2020 13:28:00 +0100 Subject: Add feature to set custom helm repository server port Change-Id: Ia273290ce661c2e4887e16a3a323a7349c609546 Issue-ID: OOM-2623 Signed-off-by: Bartek Grzybowski --- build/creating_data/docker-images-collector.sh | 52 +++++++++++++++++++++++--- 1 file changed, 46 insertions(+), 6 deletions(-) diff --git a/build/creating_data/docker-images-collector.sh b/build/creating_data/docker-images-collector.sh index b8eb174e..db085618 100755 --- a/build/creating_data/docker-images-collector.sh +++ b/build/creating_data/docker-images-collector.sh @@ -2,7 +2,7 @@ # COPYRIGHT NOTICE STARTS HERE # -# Copyright 2019 © Samsung Electronics Co., Ltd. +# Copyright 2019-2020 © Samsung Electronics Co., Ltd. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -20,7 +20,7 @@ ### This script is preparing docker images list based on kubernetes project -### NOTE: helm needs to be installed and working, it is required for correct processing +### NOTE: helm needs to be installed; it is required for correct processing ### of helm charts in oom directory # Fail fast settings @@ -30,7 +30,11 @@ usage () { echo " " echo " This script is preparing docker images list based on kubernetes project" echo " Usage:" - echo " ./$(basename $0) []" + echo " ./$(basename $0) [OPTION]... []" + echo " " + echo " Options:" + echo " -h | --help Show script usage synopsis" + echo " -p | --helm-port Chart repository server port" echo " " echo " Example: ./$(basename $0) /root/oom/kubernetes/onap" echo " " @@ -73,16 +77,52 @@ kill_helm() { done } -# Configuration -if [ "${1}" == "-h" ] || [ "${1}" == "--help" ] || [ $# -lt 1 ]; then +validate_port() { + if [ -z $1 ]; + then + echo "Error: No valid port number provided" + exit 1 + fi + if ! [[ "$1" =~ ^[0-9]*$ ]]; + then + echo "Error: "${1}" is not a valid port number" + exit 1 + fi +} + +# Proccess input options +if [ $# -lt 1 ]; then usage fi +while [ $# -gt 0 ]; +do + case "${1}" in + -h | --help) + usage + ;; + -p | --helm-port) + PORT="${2}" + validate_port "${PORT}" + shift 2 + ;; + -*) + echo "Unknown option ${1}" + usage + ;; + *) + # end of options + break + ;; + esac +done + +# Configuration PROJECT_DIR="${1}" LIST="${2}" LISTS_DIR="$(readlink -f $(dirname ${0}))/../data_lists" HELM_REPO_HOST="127.0.0.1" -HELM_REPO_PORT="8879" +HELM_REPO_PORT="${PORT:-8879}" HELM_REPO="${HELM_REPO_HOST}:${HELM_REPO_PORT}" HELM_REPO_PATH="dist/packages" # based on PACKAGE_DIR defined in oom/kubernetes/Makefile DOCKER_CONTAINER="generate-certs-${HELM_REPO_PORT}" # oom-cert-service container name override -- cgit 1.2.3-korg From bda9034903df342315e58d8dba5076e377f12fc9 Mon Sep 17 00:00:00 2001 From: Bartek Grzybowski Date: Wed, 4 Nov 2020 15:35:19 +0100 Subject: Abort if helm process failed to spawn Change-Id: I930d3ca4c3d9ab49286a38c0ea298abe807ac781 Issue-ID: OOM-2623 Signed-off-by: Bartek Grzybowski --- build/creating_data/docker-images-collector.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/build/creating_data/docker-images-collector.sh b/build/creating_data/docker-images-collector.sh index db085618..73c19bc4 100755 --- a/build/creating_data/docker-images-collector.sh +++ b/build/creating_data/docker-images-collector.sh @@ -90,6 +90,15 @@ validate_port() { fi } +check_helm() { + sleep 2 # let the helm process settle + if [ $(pgrep -f "helm serve --address ${HELM_REPO}" -c) -eq 0 ]; + then + echo "Fatal: Helm chart repository server failed to start" + exit 1 + fi +} + # Proccess input options if [ $# -lt 1 ]; then usage @@ -154,6 +163,7 @@ mkdir -p "${PROJECT_DIR}/../${HELM_REPO_PATH}" helm init -c --local-repo-url "http://${HELM_REPO}" helm serve --address ${HELM_REPO} --repo-path "${PROJECT_DIR}/../${HELM_REPO_PATH}" & helm repo remove stable 2>/dev/null || true +check_helm # Make all pushd "${PROJECT_DIR}/.." -- cgit 1.2.3-korg