summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitreview4
-rw-r--r--INFO.yaml72
-rw-r--r--ansible/roles/rke/molecule/default/prepare.yml3
-rw-r--r--ansible/test/roles/prepare-rke/tasks/infra.yml6
-rwxr-xr-xbuild/build_nexus_blob.sh228
-rw-r--r--build/download/requirements.txt2
-rwxr-xr-xbuild/fetch_and_patch_charts.sh70
-rwxr-xr-xbuild/package.py2
-rw-r--r--build/requirements.txt2
9 files changed, 233 insertions, 156 deletions
diff --git a/.gitreview b/.gitreview
new file mode 100644
index 00000000..7c81745f
--- /dev/null
+++ b/.gitreview
@@ -0,0 +1,4 @@
+[gerrit]
+host=gerrit.onap.org
+port=29418
+project=oom/offline-installer.git
diff --git a/INFO.yaml b/INFO.yaml
new file mode 100644
index 00000000..e2ddfecf
--- /dev/null
+++ b/INFO.yaml
@@ -0,0 +1,72 @@
+---
+project: 'oom-offline-installer'
+project_creation_date: '2018-12-14'
+lifecycle_state: 'Incubation'
+project_category: ''
+project_lead: &onap_releng_ptl
+ name: 'Mike Elliott'
+ email: 'mike.elliott@amdocs.com'
+ id: 'melliott'
+ company: 'Amdocs'
+ timezone: 'Canada/Ontario'
+primary_contact: *onap_releng_ptl
+issue_tracking:
+ type: 'jira'
+ url: 'https://jira.onap.org/projects/OOM'
+ key: 'OOM'
+mailing_list:
+ type: 'groups.io'
+ url: 'lists.onap.org'
+ tag: '<[sub-project_name]>'
+realtime_discussion: ''
+meetings:
+ - type: 'zoom'
+ agenda: 'https://wiki.onap.org/pages/viewpage.action?pageId=8228913'
+ url: 'https://wiki.onap.org/pages/viewpage.action?pageId=8228913'
+ server: 'n/a'
+ channel: 'n/a'
+ repeats: 'weekly'
+ time: '14:00 UTC'
+repositories:
+ - 'oom'
+ - 'oom-offline-installer'
+ - 'oom-registrator'
+committers:
+ - <<: *onap_releng_ptl
+ - name: 'Michal Ptacek'
+ email: 'm.ptacek@partner.samsung.com'
+ company: 'Samsung'
+ id: 'Michal.Ptacek'
+ timezone: 'Europe/Prague'
+ - name: 'Samuli Silvius'
+ email: 's.silvius@partner.samsung.com'
+ company: 'Samsung'
+ id: 'silvius'
+ timezone: 'Europe/Helsinky'
+ - name: 'Petr Ospaly'
+ email: 'p.ospaly@partner.samsung.com'
+ company: 'Samsung'
+ id: 'p.ospaly'
+ timezone: 'Europe/Prague'
+ - name: 'Tomas Levora'
+ email: 't.levora@partner.samsung.com'
+ company: 'Samsung'
+ id: 't.levora'
+ timezone: 'Europe/Prague'
+ - name: 'Milan Verespej'
+ email: 'm.verespej@partner.samsung.com'
+ company: 'Samsung'
+ id: 'milan.verespej'
+ timezone: 'Europe/Prague'
+ - name: 'Bartlomiej Grzybowski'
+ email: 'b.grzybowski@partner.samsung.com'
+ company: 'Samsung'
+ id: 'bgrzybowski'
+ timezone: 'Europe/Warsaw'
+ - name: 'Michal Zegan'
+ email: 'm.zegan@samsung.com'
+ company: 'Samsung'
+ id: 'm.zegan'
+ timezone: 'Europe/Warsaw'
+tsc:
+ approval: 'https://lists.onap.org/pipermail/onap-tsc'
diff --git a/ansible/roles/rke/molecule/default/prepare.yml b/ansible/roles/rke/molecule/default/prepare.yml
index 6bad2b80..b012790a 100644
--- a/ansible/roles/rke/molecule/default/prepare.yml
+++ b/ansible/roles/rke/molecule/default/prepare.yml
@@ -13,3 +13,6 @@
- role: prepare-rke
vars:
mode: infra
+ - role: prepare-kubectl
+ vars:
+ kubectl_install: true
diff --git a/ansible/test/roles/prepare-rke/tasks/infra.yml b/ansible/test/roles/prepare-rke/tasks/infra.yml
index e9971f77..6e7bcb96 100644
--- a/ansible/test/roles/prepare-rke/tasks/infra.yml
+++ b/ansible/test/roles/prepare-rke/tasks/infra.yml
@@ -8,9 +8,3 @@
get_url:
url: "https://github.com/rancher/rke/releases/download/v{{ rke_version }}/rke_linux-amd64"
dest: "{{ app_data_path }}/downloads/rke_linux-amd64"
-
-- name: "Install kubectl-{{ kubectl_version }}"
- get_url:
- url: "https://storage.googleapis.com/kubernetes-release/release/v{{ kubectl_version }}/bin/linux/amd64/kubectl"
- dest: "/usr/local/bin/kubectl"
- mode: 0755
diff --git a/build/build_nexus_blob.sh b/build/build_nexus_blob.sh
index 6ecab695..58f0f83f 100755
--- a/build/build_nexus_blob.sh
+++ b/build/build_nexus_blob.sh
@@ -62,31 +62,127 @@ LISTS_DIR="${LOCAL_PATH}/data_lists"
COMMANDS=(jq docker expect npm twine)
usage () {
- echo " Example usage: build_nexus_blob.sh --input-directory </path/to/downloaded/files/dir> --output-directory
- </path/to/output/dir> --resource-list-directory </path/to/dir/with/resource/list> [--load-docker-images]
-
- -i | --input-directory directory containing file needed to create nexus blob. The structure of this directory must organized as described in build guide
- -ld | --load-docker-images load docker images from stored files in the input directory
- -o | --output-directory
- -rl | --resource-list-directory directory with files containing docker, pypi and npm lists
+ echo "
+ Usage: $(basename $0) [OPTION...] [FILE]...
+
+ This script prepares Nexus repositories data blobs for ONAP
+
+ Following dependencies are required: nodejs, jq, docker, twine, expect
+ By default, without any lists or dirs provided, the resources are expected as downloaded
+ during download process and default lists will be used to build the Nexus blob in the same
+ resources dir
+
+ Examples:
+ $(basename $0) --input-directory </path/to/downloaded/files/dir> -ld --output-directory
+ </path/to/output/dir> --resource-list-directory </path/to/dir/with/resource/list>
+ # Docker images, npms and pypi packages will be loaded from specified directory
+ # and the blob is created
+ $(basename $0) -d </path/to/docker/images/list> -d </path/to/another/docker/images/list>
+ -n </path/to/npm/list> -p </path/to/pip/list>
+ # Docker images, npms and pypi packages will be pushed to Nexus based and provided data
+ # lists (multiple lists can be provided)
+
+ -d | --docker use specific list of docker images to be pushed into Nexus
+ (in case of -ld used, this list will be used for loading of
+ the images)
+ -h | --help print this usage
+ -i | --input-directory use specific directory containing resources needed to
+ create nexus blob
+ The structure of this directory must organized as described
+ in build guide
+ -ld | --load-docker-images load docker images from resource directory
+ -n | --npm list of npm packages to be pushed into Nexus
+ -o | --output-directory use specific directory for the target blob
+ -p | --pypi use specific list of pypi packages to be pushed into Nexus
+ -rl | --resource-list-directory use specific directory with docker, pypi and npm lists
"
exit 1
}
+publish_ports () {
+ for REGISTRY in $(sed -n '/\.[^/].*\//p' ${1} | sed -e 's/\/.*$//' | sort -u | grep -v ${DEFAULT_REGISTRY} || true) ${NEXUS_PORT}; do
+ if [[ ${REGISTRY} != *":"* ]]; then
+ if [[ ${PUBLISHED_PORTS} != *"80:${NEXUS_DOCKER_PORT}"* ]]; then
+ PUBLISHED_PORTS="${PUBLISHED_PORTS} -p 80:${NEXUS_DOCKER_PORT}"
+ fi
+ else
+ REGISTRY_PORT="$(sed 's/^.*\:\([[:digit:]]*\)$/\1/' <<< ${REGISTRY})"
+ if [[ ${PUBLISHED_PORTS} != *"${REGISTRY_PORT}:${NEXUS_DOCKER_PORT}"* ]]; then
+ PUBLISHED_PORTS="${PUBLISHED_PORTS} -p ${REGISTRY_PORT}:${NEXUS_DOCKER_PORT}"
+ fi
+ fi
+ done
+}
+
+simulated_hosts () {
+ SIMUL_HOSTS=($(sed -n '/\.[^/].*\//p' ${1} | sed -e 's/\/.*$// ; s/:.*$//' | sort -u | grep -v ${DEFAULT_REGISTRY} || true ) ${NEXUS_DOMAIN})
+ for HOST in "${SIMUL_HOSTS[@]}"; do
+ if ! grep -wq ${HOST} /etc/hosts; then
+ echo "127.0.0.1 ${HOST}" >> /etc/hosts
+ fi
+ done
+}
+
load_docker_images () {
for ARCHIVE in $(sed $'s/\r// ; /^#/d ; s/\:/\_/g ; s/\//\_/g ; s/$/\.tar/g' ${1} | awk '{ print $1 }'); do
docker load -i ${NXS_SRC_DOCKER_IMG_DIR}/${ARCHIVE}
done
}
+push_npm () {
+ for ARCHIVE in $(sed $'s/\r// ; s/\\@/\-/g ; s/$/\.tgz/g' ${1}); do
+ npm publish --access public ${ARCHIVE} > /dev/null
+ echo "NPM ${ARCHIVE} pushed to Nexus"
+ done
+}
+
+push_pip () {
+ for PACKAGE in $(sed $'s/\r//; s/==/-/' ${NXS_PYPI_LIST}); do
+ twine upload -u "${NEXUS_USERNAME}" -p "${NEXUS_PASSWORD}" --repository-url ${PYPI_REGISTRY} ${PACKAGE}*
+ echo "PYPI ${PACKAGE} pushed to Nexus"
+ done
+}
+
+docker_login () {
+ for REGISTRY in $(sed -n '/\.[^/].*\//p' ${1} | sed -e 's/\/.*$//' | sort -u | grep -v ${DEFAULT_REGISTRY}) ${DOCKER_REGISTRY}; do
+ if ! grep -wq ${REGISTRY} ~/.docker/config.json; then
+ echo "Docker login to ${REGISTRY}"
+ docker login -u "${NEXUS_USERNAME}" -p "${NEXUS_PASSWORD}" ${REGISTRY} > /dev/null
+ fi
+ done
+}
+
+push_docker () {
+ for IMAGE in $(sed $'s/\r// ; /^#/d' ${1} | awk '{ print $1 }'); do
+ PUSH=""
+ if [[ ${IMAGE} != *"/"* ]]; then
+ PUSH="${DOCKER_REGISTRY}/library/${IMAGE}"
+ elif [[ ${IMAGE} == *"${DEFAULT_REGISTRY}"* ]]; then
+ if [[ ${IMAGE} == *"/"*"/"* ]]; then
+ PUSH="$(sed 's/'"${DEFAULT_REGISTRY}"'/'"${DOCKER_REGISTRY}"'/' <<< ${IMAGE})"
+ else
+ PUSH="$(sed 's/'"${DEFAULT_REGISTRY}"'/'"${DOCKER_REGISTRY}"'\/library/' <<< ${IMAGE})"
+ fi
+ elif [[ -z $(sed -n '/\.[^/].*\//p' <<< ${IMAGE}) ]]; then
+ PUSH="${DOCKER_REGISTRY}/${IMAGE}"
+ fi
+ if [[ ! -z ${PUSH} ]]; then
+ docker tag ${IMAGE} ${PUSH}
+ else
+ PUSH="${IMAGE}"
+ fi
+ docker push ${PUSH}
+ echo "${IMAGE} pushed as ${PUSH} to Nexus"
+ done
+}
+
# Verify all dependencies are available in PATH
FAILED_COMMANDS=()
-for cmd in ${COMMANDS[*]};
-do
+for cmd in ${COMMANDS[*]}; do
command -v $cmd >/dev/null 2>&1 || FAILED_COMMANDS+=($cmd)
done
-if [ ${#FAILED_COMMANDS[*]} -gt 0 ];
-then
+
+if [ ${#FAILED_COMMANDS[*]} -gt 0 ]; then
echo "Following commands where not found in PATH and are required:"
echo ${FAILED_COMMANDS[*]}
echo "Aborting."
@@ -95,14 +191,23 @@ fi
while [ "${1}" != "" ]; do
case ${1} in
+ -d | --docker ) shift
+ NXS_DOCKER_IMG_LISTS+=("${1}")
+ ;;
-i | --input-directory ) shift
DATA_DIR="${1}"
;;
-ld | --load-docker-images ) DOCKER_LOAD="true"
;;
+ -n | --npm ) shift
+ NXS_NPM_LISTS+=("${1}")
+ ;;
-o | --output-directory ) shift
NEXUS_DATA_DIR="${1}"
;;
+ -p | --pypi ) shift
+ NXS_PYPI_LISTS+=("${1}")
+ ;;
-rl | --resource-list-directory ) shift
LISTS_DIR="${1}"
;;
@@ -119,34 +224,42 @@ NXS_SRC_NPM_DIR="${DATA_DIR}/offline_data/npm_tar"
NXS_SRC_PYPI_DIR="${DATA_DIR}/offline_data/pypi"
# Setup specific resources lists
+NXS_INFRA_LIST="${LISTS_DIR}/infra_docker_images.list"
NXS_DOCKER_IMG_LIST="${LISTS_DIR}/onap_docker_images.list"
+NXS_RKE_DOCKER_IMG_LIST="${LISTS_DIR}/rke_docker_images.list"
NXS_NPM_LIST="${LISTS_DIR}/onap_npm.list"
NXS_PYPI_LIST="${LISTS_DIR}/onap_pip_packages.list"
# Setup Nexus image used for build and install infra
-INFRA_LIST="${LISTS_DIR}/infra_docker_images.list"
-NEXUS_IMAGE="$(grep sonatype/nexus3 ${INFRA_LIST})"
+NEXUS_IMAGE="$(grep sonatype/nexus3 ${NXS_INFRA_LIST})"
NEXUS_IMAGE_TAR="${DATA_DIR}/offline_data/docker_images_infra/$(sed 's/\//\_/ ; s/$/\.tar/ ; s/\:/\_/' <<< ${NEXUS_IMAGE})"
+# Set default lists if nothing specific defined by user
+if [ $((${#NXS_DOCKER_IMG_LISTS[@]} + ${#NXS_NPM_LISTS[@]} + ${#NXS_PYPI_LISTS[@]})) -eq 0 ]; then
+ NXS_DOCKER_IMG_LISTS=("${NXS_DOCKER_IMG_LIST}" "${NXS_RKE_DOCKER_IMG_LIST}")
+ NXS_NPM_LISTS[0]="${NXS_NPM_LIST}"
+ NXS_PYPI_LISTS[0]="${NXS_PYPI_LIST}"
+fi
+
+# Backup /etc/hosts
+HOSTS_BACKUP="$(eval ${TIMESTAMP}_hosts.bk)"
+cp /etc/hosts /etc/${HOSTS_BACKUP}
+
+# Backup the current docker registry settings
+if [ -f ~/.docker/config.json ]; then
+ DOCKER_CONF_BACKUP="$(eval ${TIMESTAMP}_config.json.bk)"
+ mv ~/.docker/config.json ~/.docker/${DOCKER_CONF_BACKUP}
+fi
+
# Setup default ports published to host as docker registry
PUBLISHED_PORTS="-p ${NEXUS_PORT}:${NEXUS_PORT} -p ${NEXUS_DOCKER_PORT}:${NEXUS_DOCKER_PORT}"
# Setup additional ports published to host based on simulated docker registries
-for REGISTRY in $(sed -n '/\.[^/].*\//p' ${NXS_DOCKER_IMG_LIST} | sed -e 's/\/.*$//' | sort -u | grep -v ${DEFAULT_REGISTRY} || true); do
- if [[ ${REGISTRY} != *":"* ]]; then
- if [[ ${PUBLISHED_PORTS} != *"80:${NEXUS_DOCKER_PORT}"* ]]; then
- PUBLISHED_PORTS="${PUBLISHED_PORTS} -p 80:${NEXUS_DOCKER_PORT}"
- fi
- else
- REGISTRY_PORT="$(sed 's/^.*\:\([[:digit:]]*\)$/\1/' <<< ${REGISTRY})"
- if [[ ${PUBLISHED_PORTS} != *"${REGISTRY_PORT}:${NEXUS_DOCKER_PORT}"* ]]; then
- PUBLISHED_PORTS="${PUBLISHED_PORTS} -p ${REGISTRY_PORT}:${NEXUS_DOCKER_PORT}"
- fi
- fi
-done
-
# Setup simulated domain names to be able to push all to private Nexus repository
-SIMUL_HOSTS="$(sed -n '/\.[^/].*\//p' ${NXS_DOCKER_IMG_LIST} | sed -e 's/\/.*$// ; s/:.*$//' | sort -u | grep -v ${DEFAULT_REGISTRY} || true) ${NEXUS_DOMAIN}"
+for DOCKER_IMG_LIST in "${NXS_DOCKER_IMG_LISTS[@]}"; do
+ publish_ports "${DOCKER_IMG_LIST}"
+ simulated_hosts "${DOCKER_IMG_LIST}"
+done
# Nexus repository configuration setup
NEXUS_CONFIG_GROOVY='import org.sonatype.nexus.security.realm.RealmManager
@@ -186,23 +299,6 @@ repositoryManager.update(conf)'
NEXUS_CONFIG=$(echo "${NEXUS_CONFIG_GROOVY}" | jq -Rsc '{"name":"configure", "type":"groovy", "content":.}')
#################################
-# Prepare the local environment #
-#################################
-
-# Add simulated domain names to /etc/hosts
-HOSTS_BACKUP="$(eval ${TIMESTAMP}_hosts.bk)"
-cp /etc/hosts /etc/${HOSTS_BACKUP}
-for DNS in ${SIMUL_HOSTS}; do
- echo "127.0.0.1 ${DNS}" >> /etc/hosts
-done
-
-# Backup the current docker registry settings
-if [ -f ~/.docker/config.json ]; then
- DOCKER_CONF_BACKUP="$(eval ${TIMESTAMP}_config.json.bk)"
- mv ~/.docker/config.json ~/.docker/${DOCKER_CONF_BACKUP}
-fi
-
-#################################
# Docker repository preparation #
#################################
@@ -210,7 +306,9 @@ if [ "${DOCKER_LOAD}" == "true" ]; then
# Load predefined Nexus image
docker load -i ${NEXUS_IMAGE_TAR}
# Load all necessary images
- load_docker_images ${NXS_DOCKER_IMG_LIST}
+ for DOCKER_IMG_LIST in "${NXS_DOCKER_IMG_LISTS[@]}"; do
+ load_docker_images "${DOCKER_IMG_LIST}"
+ done
fi
################################
@@ -282,9 +380,8 @@ if [[ ! -z "${PATCHED_NPM}" ]] && ! zgrep -aq "${NPM_REGISTRY}" "${PATCHED_NPM}"
fi
# Push NPM packages to Nexus repository
-for ARCHIVE in $(sed $'s/\r// ; s/\\@/\-/g ; s/$/\.tgz/g' ${NXS_NPM_LIST});do
- npm publish --access public ${ARCHIVE} > /dev/null
- echo "NPM ${ARCHIVE} pushed to Nexus"
+for NPM_LIST in "${NXS_NPM_LISTS[@]}"; do
+ push_npm "${NPM_LIST}"
done
popd
@@ -293,9 +390,8 @@ popd
###############################
pushd ${NXS_SRC_PYPI_DIR}
-for PACKAGE in $(sed $'s/\r//; s/==/-/' ${NXS_PYPI_LIST}); do
- twine upload -u "${NEXUS_USERNAME}" -p "${NEXUS_PASSWORD}" --repository-url ${PYPI_REGISTRY} ${PACKAGE}*
- echo "PYPI ${PACKAGE} pushed to Nexus"
+for PYPI_LIST in "${NXS_PYPI_LISTS[@]}"; do
+ push_pip "${PYPI_LIST}"
done
popd
@@ -304,34 +400,12 @@ popd
###############################
# Login to simulated docker registries
-for REGISTRY in $(sed -n '/\.[^/].*\//p' ${NXS_DOCKER_IMG_LIST} | sed -e 's/\/.*$//' | sort -u | grep -v ${DEFAULT_REGISTRY}) ${DOCKER_REGISTRY}; do
- echo "Docker login to ${REGISTRY}"
- docker login -u "${NEXUS_USERNAME}" -p "${NEXUS_PASSWORD}" ${REGISTRY} > /dev/null
-done
-
# Push images to private nexus based on the list
# Images from default registry need to be tagged to private registry
# and those without defined repository in tag uses default repository 'library'
-for IMAGE in $(sed $'s/\r// ; /^#/d' ${NXS_DOCKER_IMG_LIST} | awk '{ print $1 }'); do
- PUSH=""
- if [[ ${IMAGE} != *"/"* ]]; then
- PUSH="${DOCKER_REGISTRY}/library/${IMAGE}"
- elif [[ ${IMAGE} == *"${DEFAULT_REGISTRY}"* ]]; then
- if [[ ${IMAGE} == *"/"*"/"* ]]; then
- PUSH="$(sed 's/'"${DEFAULT_REGISTRY}"'/'"${DOCKER_REGISTRY}"'/' <<< ${IMAGE})"
- else
- PUSH="$(sed 's/'"${DEFAULT_REGISTRY}"'/'"${DOCKER_REGISTRY}"'\/library/' <<< ${IMAGE})"
- fi
- elif [[ -z $(sed -n '/\.[^/].*\//p' <<< ${IMAGE}) ]]; then
- PUSH="${DOCKER_REGISTRY}/${IMAGE}"
- fi
- if [[ ! -z ${PUSH} ]]; then
- docker tag ${IMAGE} ${PUSH}
- else
- PUSH="${IMAGE}"
- fi
- docker push ${PUSH}
- echo "${IMAGE} pushed as ${PUSH} to Nexus"
+for DOCKER_IMG_LIST in "${NXS_DOCKER_IMG_LISTS[@]}"; do
+ docker_login "${DOCKER_IMG_LIST}"
+ push_docker "${DOCKER_IMG_LIST}"
done
##############################
@@ -344,7 +418,7 @@ echo "Stopping Nexus and returning backups"
docker stop ${NEXUS_CONT_ID} > /dev/null
# Return backed up configuration files
-mv -f /etc/${HOSTS_BACKUP} /etc/hosts
+mv -f "/etc/${HOSTS_BACKUP}" /etc/hosts
if [ -f ~/.docker/${DOCKER_CONF_BACKUP} ]; then
mv -f ~/.docker/${DOCKER_CONF_BACKUP} ~/.docker/config.json
diff --git a/build/download/requirements.txt b/build/download/requirements.txt
index 3eee2a2f..681c0dd5 100644
--- a/build/download/requirements.txt
+++ b/build/download/requirements.txt
@@ -1,3 +1,3 @@
-docker==3.7.2
+docker>=3.7.2
prettytable==0.7.2
retrying==1.3.3
diff --git a/build/fetch_and_patch_charts.sh b/build/fetch_and_patch_charts.sh
deleted file mode 100755
index 22d45e66..00000000
--- a/build/fetch_and_patch_charts.sh
+++ /dev/null
@@ -1,70 +0,0 @@
-#! /usr/bin/env bash
-
-# COPYRIGHT NOTICE STARTS HERE
-#
-# Copyright 2018 © 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.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# COPYRIGHT NOTICE ENDS HERE
-
-# This simple script should be used during build / packaging process
-# and it should be referenced in BuildGuide.
-# Patching of helm charts is the only way for OOM charts to be compatible
-# with this offline installer. This will become obsolete once native
-# solution is implemented in charts themselves and which is tracked
-# in OOM-1610
-
-# fail fast
-set -e
-
-# colours
-_R='\033[0;31;1m' #Red
-_G='\033[0;32;1m' #Green
-_Y='\033[0;33;1m' #Yellow
-C_='\033[0m' #Color off
-
-usage () {
- echo "Usage:"
- echo -e "./$(basename $0) <helm charts repo> <commit/tag/branch> <patchfile> <target_dir>\n"
- echo "Example: ./$(basename $0) https://gerrit.onap.org/r/oom master /root/offline-installer/patches/onap.patch /root/offline-installer/ansible/application/helm_charts"
-}
-
-if [ "$#" -ne 4 ]; then
- echo "This script should get exactly 4 arguments!"
- echo -e "Wrong number of parameters provided\n"
- usage
- exit 1
-fi
-
-# main
-# git and patch tools are preconditions for this to work
-CURR=1
-TOTAL=5
-PATCH_FILE=$(realpath "${3}")
-
-echo -e "${_G}[Step $((CURR++))/${TOTAL} cloning repo with charts to be patched]${C_}"
-git clone --recurse-submodules "${1}" "${4}"
-
-echo -e "${_G}[Step $((CURR++))/${TOTAL} setting working dir to ${4}]${C_}"
-pushd "${4}"
-
-echo -e "${_G}[Step $((CURR++))/${TOTAL} git-checkout to correct base]${C_}"
-git checkout "${2}"
-
-echo -e "${_G}[Step $((CURR++))/${TOTAL} patching charts]${C_}"
-git apply "${PATCH_FILE}"
-
-echo -e "${_G}[Step $((CURR++))/${TOTAL} returning to original working directory]${C_}"
-popd
-
diff --git a/build/package.py b/build/package.py
index 8a1808b3..6e509a31 100755
--- a/build/package.py
+++ b/build/package.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
# -*- coding: utf-8 -*-
# COPYRIGHT NOTICE STARTS HERE
diff --git a/build/requirements.txt b/build/requirements.txt
index 2c404aed..39544458 100644
--- a/build/requirements.txt
+++ b/build/requirements.txt
@@ -1,2 +1,2 @@
-docker==3.7.2
+docker>=3.7.2
gitpython==2.1.11