From b39c9d5823b2bf832b9e30929bf2c7b0442edaa6 Mon Sep 17 00:00:00 2001 From: nqb Date: Fri, 25 Nov 2022 13:39:04 +0100 Subject: [PATCH] move specific variables in a dedicated file define default value for KNK_CACHE build_img_docker=no --- .gitlab-ci.yml | 1 - containers/kaniko_vars | 10 ++++++++++ containers/kanikobuild | 40 +++++++++++++++++++++------------------- 3 files changed, 31 insertions(+), 20 deletions(-) create mode 100644 containers/kaniko_vars diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 194327c3efb0..a35dc9497caf 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -33,7 +33,6 @@ variables: KANIKOBUILD_IMG: ghcr.io/inverse-inc/packetfence/kaniko-build KNK_REGISTRY: ghcr.io KNK_REGISTRY_URL: ${KNK_REGISTRY}/inverse-inc/packetfence - KNK_CACHE: "true" PFBUILD_DEFAULT_DEV_TAG: latest CIDIR: ci CILIBDIR: ci/lib diff --git a/containers/kaniko_vars b/containers/kaniko_vars new file mode 100644 index 000000000000..4d8027db8b43 --- /dev/null +++ b/containers/kaniko_vars @@ -0,0 +1,10 @@ +### collect variables needed inside Dockerfile + +# returns X.Y +export PF_VERSION=$(egrep -o '[0-9]+\.[0-9]+' $CI_PROJECT_DIR/conf/pf-release) + +# only used for pfdebian build +export PKGS_TO_EXCLUDE="packetfence|freeradius" + +# variables to pass during build +DOCKFILE_VARS='PF_VERSION KNK_REGISTRY_URL IMAGE_TAG FINGERBANK_BUILD_API_KEY BUILD_PFAPPSERVER_VUE PKGS_TO_EXCLUDE' \ No newline at end of file diff --git a/containers/kanikobuild b/containers/kanikobuild index 64e6c1cf36f7..921e2e8b0a02 100755 --- a/containers/kanikobuild +++ b/containers/kanikobuild @@ -6,22 +6,22 @@ set -o nounset -o pipefail -o errexit # CI_PROJECT_DIR must be equal to root of PF source tree (full path) setup_vars() { - DOCKFILE_PATH=$CI_PROJECT_DIR/containers/$IMAGE_NAME/Dockerfile + # all specific variables need to be defined in kaniko_vars + if [ -f "$CI_PROJECT_DIR/containers/kaniko_vars" ]; then + source $CI_PROJECT_DIR/containers/kaniko_vars + else + echo "No specific variables added to build" + fi - ### collect variables needed inside Dockerfile - # returns X.Y - export PF_VERSION=$(egrep -o '[0-9]+\.[0-9]+' $CI_PROJECT_DIR/conf/pf-release) + # necessary if variables are not defined in kaniko_vars or in environment + DOCKFILE_PATH=${DOCKFILE_PATH:-"$CI_PROJECT_DIR/containers/$IMAGE_NAME/Dockerfile"} + DOCKFILE_VARS=${DOCKFILE_VARS:-} + KNK_CACHE=${KNK_CACHE:-true} # IMAGE_TAG is used inside DockerFile to reference other image # only one tag can be used in Dockerfile export IMAGE_TAG=$(echo $IMAGE_TAGS | cut -d ',' -f 1) - # only used for pfdebian build - export PKGS_TO_EXCLUDE="packetfence|freeradius" - - # variables to pass during build - DOCKFILE_VARS='PF_VERSION KNK_REGISTRY_URL IMAGE_TAG FINGERBANK_BUILD_API_KEY BUILD_PFAPPSERVER_VUE PKGS_TO_EXCLUDE' - echo "Building ${IMAGE_NAME} using ${DOCKFILE_PATH}" } @@ -35,15 +35,17 @@ generate_knk_config() { # already in the environment generate_build_args() { local build_args='' - for var in ${DOCKFILE_VARS}; do - # just to handle case of first iteration - if [ -z "$build_args" ]; then - build_args="--build-arg ${var}" - else - build_args="$build_args --build-arg ${var}" - fi - done - echo "$build_args" + if [ -n "${DOCKFILE_VARS}" ]; then + for var in ${DOCKFILE_VARS}; do + # just to handle case of first iteration + if [ -z "$build_args" ]; then + build_args="--build-arg ${var}" + else + build_args="$build_args --build-arg ${var}" + fi + done + echo "$build_args" + fi } detect_multi_tags() {