Created
December 14, 2021 09:11
-
-
Save AndrienkoAleksandr/e3e97322731517b0a41b4ef5266ea1ea to your computer and use it in GitHub Desktop.
Temp fork of https://raw.githubusercontent.com/redhat-openshift-ecosystem/community-operators-pipeline/ci/latest/ci/scripts/opp.sh
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
set +o pipefail | |
ACTION=${1-""} | |
TESTS=$1 | |
[[ $TESTS == all* ]] && TESTS="kiwi,lemon,orange" | |
TESTS=${TESTS//,/ } | |
OPP_INPUT_REPO=${OPP_INPUT_REPO-"operator-framework/community-operators"} | |
OPP_INPUT_BRANCH=${OPP_INPUT_BRANCH-"master"} | |
OPP_THIS_SCRIPT_URL="https://raw.githubusercontent.com/$OPP_INPUT_REPO/$OPP_INPUT_BRANCH/ci/scripts/opp.sh" | |
OPP_THIS_REPO_BASE=${OPP_THIS_REPO_BASE-"https://github.com"} | |
OPP_THIS_REPO=${OPP_THIS_REPO-"redhat-openshift-ecosystem/community-operators-pipeline"} | |
OPP_THIS_BRANCH=${OPP_THIS_BRANCH-"main"} | |
OPP_BASE_DEP="ansible curl openssl git" | |
KIND_KUBE_VERSION=${KIND_KUBE_VERSION-"v1.19.11"} | |
OPP_PRODUCTION_TYPE=${OPP_PRODUCTION_TYPE-"ocp"} | |
OPP_CLUSTER_TYPE="k8s" | |
OPP_OPERATORS_DIR=${OPP_OPERATORS_DIR-"operators"} | |
OPP_INDEX_SAFETY="-e enable_production=true" | |
OPP_POD_START_RETRIES_LONG_DEPLOYMENT_WAIT_RETRIES=300 | |
OPP_ANSIBLE_PULL_REPO=${OPP_ANSIBLE_PULL_REPO-"https://github.com/redhat-openshift-ecosystem/operator-test-playbooks"} | |
OPP_ANSIBLE_PULL_BRANCH=${OPP_ANSIBLE_PULL_BRANCH-"upstream-community"} | |
OPP_IMAGE=${OPP_IMAGE-"quay.io/operator_testing/operator-test-playbooks:latest"} | |
OPP_CONTAINER_TOOL=${OPP_CONTAINER_TOOL-"docker"} | |
OPP_CONTAINER_OPT=${OPP_CONTAINER_OPT-"-it"} | |
OPP_CERT_DIR=${OPP_CERT_DIR-"$HOME/.optest/certs"} | |
OPP_NAME=${OPT_TEST_NAME-"op-test"} | |
OPP_ANSIBLE_DEFAULT_ARGS=${OPP_ANSIBLE_DEFAULT_ARGS-"-i localhost, -e ansible_connection=local -e run_upstream=true -e run_remove_catalog_repo=false upstream/local.yml"} | |
OPP_ANSIBLE_EXTRA_ARGS=${OPP_ANSIBLE_EXTRA_ARGS-"--tags kubectl,install_kind"} | |
OPP_CONAINER_RUN_DEFAULT_ARGS=${OPP_CONAINER_RUN_DEFAULT_ARGS-"--net host --cap-add SYS_ADMIN --cap-add SYS_RESOURCE --security-opt seccomp=unconfined --security-opt label=disable -v $OPP_CERT_DIR/domain.crt:/usr/share/pki/ca-trust-source/anchors/ca.crt -e STORAGE_DRIVER=vfs -e BUILDAH_FORMAT=docker"} | |
OPP_CONTAINER_RUN_EXTRA_ARGS=${OPP_CONTAINER_RUN_EXTRA_ARGS-""} | |
OPP_CONTAINER_EXEC_DEFAULT_ARGS=${OPP_CONTAINER_EXEC_DEFAULT_ARGS-""} | |
OPP_CONTAINER_EXEC_EXTRA_ARGS=${OPP_CONTAINER_EXEC_EXTRA_ARGS-""} | |
OPP_EXEC_BASE=${OPP_EXEC_BASE-"ansible-playbook -i localhost, -e ansible_connection=local upstream/local.yml -e run_upstream=true -e image_protocol='docker://'"} | |
OPP_EXEC_EXTRA=${OPP_EXEC_EXTRA-"-e container_tool=podman"} | |
OPP_RUN_MODE=${OPP_RUN_MODE-"privileged"} | |
OPP_LABELS=${OPP_LABELS-""} | |
OPP_PROD=${OPP_PROD-0} | |
OPP_SKIP_INDEX=${OPP_SKIP_INDEX-0} | |
OPP_FORCE_INDEX_UPDATE=${OPP_FORCE_INDEX_UPDATE-0} | |
OPP_PRETEST_CUSTOM_SCRIPT=${OPP_PRETEST_CUSTOM_SCRIPT-""} | |
OPP_DEBUG=${OPP_DEBUG-0} | |
OPP_DRY_RUN=${OPP_DRY_RUN-0} | |
OPP_FORCE_INSTALL=${OPP_FORCE_INSTALL-0} | |
OPP_RESET=${OPP_RESET-1} | |
OPP_IIB_INSTALL=${OPP_IIB_INSTALL-0} | |
OPP_LOG_DIR=${OPP_LOG_DIR-"/tmp/op-test"} | |
OPP_NOCOLOR=${OPP_NOCOLOR-0} | |
OPP_RELEASE_BUNDLE_REGISTRY=${OPP_RELEASE_BUNDLE_REGISTRY-"quay.io"} | |
OPP_RELEASE_BUNDLE_ORGANIZATION=${OPP_RELEASE_BUNDLE_ORGANIZATION-"community-operators-pipeline"} | |
OPP_RELEASE_INDEX_REGISTRY=${OPP_RELEASE_INDEX_REGISTRY-"quay.io"} | |
OPP_RELEASE_INDEX_ORGANIZATION=${OPP_RELEASE_INDEX_ORGANIZATION-"community-operators-pipeline"} | |
OPP_RELEASE_INDEX_NAME=${OPP_RELEASE_INDEX_NAME-"catalog"} | |
OPP_PRODUCTION_REGISTRY_NAMESPACE="$OPP_RELEASE_INDEX_REGISTRY/$OPP_RELEASE_INDEX_ORGANIZATION" | |
OPP_PRODUCTION_INDEX_IMAGE="$OPP_RELEASE_INDEX_REGISTRY/$OPP_RELEASE_INDEX_ORGANIZATION/$OPP_RELEASE_INDEX_NAME" | |
OPP_MIRROR_INDEX_REGISTRY=${OPP_MIRROR_INDEX_REGISTRY-"quay.io"} | |
OPP_MIRROR_INDEX_ORGANIZATION=${OPP_MIRROR_INDEX_ORGANIZATION-"community-operators-pipeline"} | |
OPP_MIRROR_INDEX_NAME=${OPP_MIRROR_INDEX_NAME-"catalog_prod"} | |
OPP_MIRROR_INDEX_IMAGE="$OPP_MIRROR_INDEX_REGISTRY/$OPP_MIRROR_INDEX_ORGANIZATION/$OPP_MIRROR_INDEX_NAME" | |
OHIO_INPUT_CATALOG_IMAGE=${OHIO_INPUT_CATALOG_IMAGE-"quay.io/operatorhubio/catalog:latest"} | |
OHIO_REGISTRY_IMAGE=${OHIO_REGISTRY_IMAGE-"quay.io/operator-framework/upstream-community-operators:latest"} | |
IIB_PUSH_IMAGE=${IIB_PUSH_IMAGE-"quay.io/operator_testing/catalog:latest"} | |
IIB_INPUT_REGISTRY_USER=${IIB_INPUT_REGISTRY_USER-"jbreza"} | |
IIB_INPUT_REGISTRY_TOKEN=${IIB_INPUT_REGISTRY_TOKEN-""} | |
IIB_OUTPUT_REGISTRY_USER=${IIB_OUTPUT_REGISTRY_USER-"$OPP_REGISTRY_MIRROR_USER"} | |
IIB_OUTPUT_REGISTRY_TOKEN=${IIB_OUTPUT_REGISTRY_TOKEN-"$REGISTRY_MIRROR_PW"} | |
# OPP_MULTIARCH_SUPPORTED_VERSIONS=${OPP_MULTIARCH_SUPPORTED_VERSIONS-"v4.5 v4.6 v4.7"} | |
OPP_MIRROR_INDEX_MULTIARCH_POSTFIX=${OPP_MIRROR_INDEX_MULTIARCH_POSTFIX-""} | |
OPP_MIRROR_LATEST_TAG=${OPP_MIRROR_LATEST_TAG-""} | |
OPP_MIRROR_INDEX_ENABLED=${OPP_MIRROR_INDEX_ENABLED-0} | |
OPP_AUTO_PACKAGEMANIFEST_CLUSTER_VERSION_LABEL=${OPP_AUTO_PACKAGEMANIFEST_CLUSTER_VERSION_LABEL-0} | |
OPP_VER_OVERWRITE=${OPP_VER_OVERWRITE-0} | |
OPP_RECREATE=${OPP_RECREATE-0} | |
OPP_FORCE_DEPLOY_ON_K8S=${OPP_FORCE_DEPLOY_ON_K8S-0} | |
OPP_CI_YAML_ONLY=${OPP_CI_YAML_ONLY-0} | |
OPP_UNCOMPLETE="/tmp/operators_uncomplete-localhost.yaml" | |
OPP_UNCOMPLETE_OPERATORS="" | |
OPP_REMOVE_OPERATOR_AFTER_CLONE_PATH=${OPP_REMOVE_OPERATOR_AFTER_CLONE_PATH-""} | |
# OPP_FORCE_OPERATORS=${OPP_FORCE_OPERATORS-""} | |
OPP_INDEX_CHECK_ONLY=${OPP_INDEX_CHECK_ONLY-0} | |
OPP_DELETE_APPREG=${OPP_DELETE_APPREG-0} | |
OPP_DEPLOY_LONGER=${OPP_DEPLOY_LONGER-0} | |
OP_INFO_FILE_LOCATION="/tmp/operator-test" | |
OP_INFO_FILE_CONTAINER_ARGS="" | |
export GODEBUG=${GODEBUG-x509ignoreCN=0} | |
[[ $OPP_NOCOLOR -eq 1 ]] && ANSIBLE_NOCOLOR=1 | |
# Handle if cluster is k8s (pure kubernetes) or openshift | |
[[ $OPP_PRODUCTION_TYPE == "ocp" || $OPP_PRODUCTION_TYPE == "okd" ]] && OPP_CLUSTER_TYPE="openshift" | |
[ -n "$OPP_MIRROR_INDEX_MULTIARCH_BASE" ] && OPP_MIRROR_INDEX_MULTIARCH_BASE_TAG=$(echo $OPP_MIRROR_INDEX_MULTIARCH_BASE | cut -d ':' -f 2) && OPP_MIRROR_INDEX_MULTIARCH_BASE=$(echo $OPP_MIRROR_INDEX_MULTIARCH_BASE | cut -d ':' -f 1) | |
[ "$OPP_MIRROR_INDEX_MULTIARCH_BASE_TAG" = "$OPP_MIRROR_INDEX_MULTIARCH_BASE" ] && OPP_MIRROR_INDEX_MULTIARCH_BASE_TAG= | |
function help() { | |
echo "" | |
echo "op-test <test1,test2,...,testN> [<rebo>] [<branch>]" | |
echo "" | |
echo "Note: 'op-test' can be substituted by 'bash <(curl -sL $OPP_THIS_SCRIPT_URL)'" | |
echo "" | |
echo -e "Examples:\n" | |
echo -e "\top-test all operators/aqua/1.0.2\n" | |
echo -e "\top-test all operators/aqua/1.0.2 $OPP_THIS_REPO_BASE/$OPP_THIS_REPO $OPP_THIS_BRANCH\n" | |
echo -e "\top-test kiwi operators/aqua/1.0.2 $OPP_THIS_REPO_BASE/$OPP_THIS_REPO $OPP_THIS_BRANCH\n" | |
echo -e "\top-test lemon,orange operators/aqua/1.0.2 $OPP_THIS_REPO_BASE/$OPP_THIS_REPO $OPP_THIS_BRANCH\n" | |
exit 1 | |
} | |
function checkExecutable() { | |
local pm="" | |
for p in $*;do | |
! command -v $p > /dev/null 2>&1 && pm="$p $pm" | |
done | |
if [[ "$pm" != "" ]]; then | |
echo "Error: Following packages needs to be installed !!!" | |
for p in $pm;do | |
echo -e "\t$p\n" | |
done | |
echo "" | |
exit 1 | |
fi | |
} | |
function clean() { | |
echo "Removing testing container '$OPP_NAME' ..." | |
$OPP_CONTAINER_TOOL rm -f $OPP_NAME > /dev/null 2>&1 | |
echo "Removing kind registry 'kind-registry' ..." | |
$OPP_CONTAINER_TOOL rm -f kind-registry > /dev/null 2>&1 | |
command -v kind > /dev/null 2>&1 && kind delete cluster --name operator-test | |
echo "Removing cert dir '$OPP_CERT_DIR' ..." | |
rm -rf $OPP_CERT_DIR > /dev/null 2>&1 | |
echo "Done" | |
exit 0 | |
} | |
function iib_install() { | |
echo "Installing iib ..." | |
set -o pipefail | |
$DRY_RUN_CMD ansible-pull -U $OPP_ANSIBLE_PULL_REPO -C $OPP_ANSIBLE_PULL_BRANCH $OPP_ANSIBLE_DEFAULT_ARGS -e run_prepare_catalog_repo_upstream=false --tags iib | |
# -e iib_push_image="$IIB_PUSH_IMAGE" -e iib_push_registry="$(echo $IIB_PUSH_IMAGE | cut -d '/' -f 1)" | |
if [[ $? -eq 0 ]];then | |
echo "Loging to registry.redhat.io ..." | |
if [ -n "$IIB_INPUT_REGISTRY_TOKEN" ];then | |
echo "$IIB_INPUT_REGISTRY_TOKEN" | $OPP_CONTAINER_TOOL login registry.redhat.io -u $IIB_INPUT_REGISTRY_USER --password-stdin || { echo "Problem to login to 'registry.redhat.io' !!!"; exit 1; } | |
if [ -n "$IIB_OUTPUT_REGISTRY_TOKEN" ];then | |
echo "$IIB_OUTPUT_REGISTRY_TOKEN" | $OPP_CONTAINER_TOOL login quay.io -u $IIB_OUTPUT_REGISTRY_USER --password-stdin || { echo "Problem to login to 'quay.io' !!!"; exit 1; } | |
fi | |
$OPP_CONTAINER_TOOL cp $HOME/.docker/config.json iib_iib-worker_1:/root/.docker/config.json.template || exit 1 | |
else | |
echo "Variable \$IIB_INPUT_REGISTRY_TOKEN is not set or is empty !!!" | |
exit 1 | |
fi | |
echo -e "\n==================================================================================" | |
echo -e "IIB was installed successfully !!!" | |
echo -e "==================================================================================\n" | |
else | |
echo "Problem installing iib !!!" | |
exit 1 | |
fi | |
set +o pipefail | |
} | |
function run() { | |
if [[ $OPP_DEBUG -ge 4 ]] ; then | |
v=$(exec 2>&1 && set -x && set -- "$@") | |
echo "#${v#*--}" | |
set -o pipefail | |
"$@" | tee -a $OPP_LOG_DIR/log.out | |
[[ $? -eq 0 ]] || { echo -e "\nFailed with rc=$? !!!\nLogs are in '$OPP_LOG_DIR/log.out'."; exit $?; } | |
set +o pipefail | |
elif [[ $OPP_DEBUG -ge 1 ]] ; then | |
set -o pipefail | |
"$@" | tee -a $OPP_LOG_DIR/log.out | |
[[ $? -eq 0 ]] || { echo -e "\nFailed with rc=$? !!!\nLogs are in '$OPP_LOG_DIR/log.out'."; exit $?; } | |
set +o pipefail | |
else | |
set -o pipefail | |
"$@" | tee -a $OPP_LOG_DIR/log.out >/dev/null 2>&1 | |
[[ $? -eq 0 ]] || { echo -e "\nFailed with rc=$? !!!\nLogs are in '$OPP_LOG_DIR/log.out'."; exit $?; } | |
set +o pipefail | |
fi | |
} | |
function handleMultiarchTag() { | |
# Handle OPP_MULTIARCH_SUPPORTED_VERSIONS | |
if [ -n "$OPP_MULTIARCH_SUPPORTED_VERSIONS" ];then | |
if [ -z "$OPP_MIRROR_INDEX_MULTIARCH_BASE_TAG" ];then | |
OPP_MIRROR_INDEX_MULTIARCH_BASE_TAG=$OPP_PRODUCTION_INDEX_IMAGE_TAG | |
v_last= | |
for v in $OPP_MULTIARCH_SUPPORTED_VERSIONS;do | |
# echo "OPP_MULTIARCH_SUPPORTED_VERSIONS=[$OPP_MULTIARCH_SUPPORTED_VERSIONS] $v $OPP_MIRROR_INDEX_MULTIARCH_BASE_TAG" | |
v_last=$v | |
[ "$v" = "$OPP_MIRROR_INDEX_MULTIARCH_BASE_TAG" ] && break | |
done | |
OPP_MIRROR_INDEX_MULTIARCH_BASE_TAG=$v_last | |
fi | |
echo "OPP_MIRROR_INDEX_MULTIARCH_BASE_TAG=$OPP_MIRROR_INDEX_MULTIARCH_BASE_TAG" | |
fi | |
[ -z "$OPP_MIRROR_INDEX_MULTIARCH_BASE_TAG" ] && { echo "Multiarch image tag cound not be detected !!! ('$OPP_MIRROR_INDEX_MULTIARCH_BASE:$OPP_MIRROR_INDEX_MULTIARCH_BASE_TAG' OPP_MULTIARCH_SUPPORTED_VERSIONS=$OPP_MULTIARCH_SUPPORTED_VERSIONS)"; exit 1; } | |
} | |
if [ -f "$OP_INFO_FILE_LOCATION/op_info.yaml" ]; then | |
# OPP_EXEC_USER="$OPP_EXEC_USER -e operator_info=$OP_INFO_FILE_LOCATION/op_info.yaml" | |
OP_INFO_FILE_CONTAINER_ARGS="$OP_INFO_FILE_CONTAINER_ARGS -v $OP_INFO_FILE_LOCATION/op_info.yaml:$OP_INFO_FILE_LOCATION/op_info.yaml -v $OP_INFO_FILE_LOCATION/operators:$OP_INFO_FILE_LOCATION/operators" | |
fi | |
[ "$OPP_RUN_MODE" = "privileged" ] && OPP_CONAINER_RUN_DEFAULT_ARGS="--privileged --net host -v $OPP_CERT_DIR:/usr/share/pki/ca-trust-source/anchors -e STORAGE_DRIVER=vfs -e BUILDAH_FORMAT=docker $OP_INFO_FILE_CONTAINER_ARGS" | |
[ "$OPP_RUN_MODE" = "user" ] && OPP_CONAINER_RUN_DEFAULT_ARGS="--net host -v $OPP_CERT_DIR:/usr/share/pki/ca-trust-source/anchors -e STORAGE_DRIVER=vfs -e BUILDAH_FORMAT=docker $OP_INFO_FILE_CONTAINER_ARGS" | |
checkExecutable $OPP_BASE_DEP | |
if ! command -v ansible > /dev/null 2>&1; then | |
echo "Error: Ansible is not installed. Please install it first !!!" | |
echo " e.g. : pip install ansible jmespath" | |
echo " or : apt install ansible" | |
echo " or : yum install ansible" | |
echo -e "\nRun 'ansible --version' to make sure it is installed\n" | |
exit 1 | |
fi | |
if [ "$OPP_CONTAINER_TOOL" = "podman" ];then | |
OPP_ANSIBLE_EXTRA_ARGS="$OPP_ANSIBLE_EXTRA_ARGS -e opm_container_tool=podman -e container_tool=podman -e opm_container_tool_index=none" | |
# OPP_EXEC_EXTRA="$OPP_EXEC_EXTRA -e opm_container_tool=podman -e container_tool=podman -e opm_container_tool_index=" | |
fi | |
[ -d $OPP_LOG_DIR ] || mkdir -p $OPP_LOG_DIR | |
[ -f $OPP_LOG_DIR/log.out ] && rm -f $OPP_LOG_DIR/log.out | |
# Handle labels | |
if [ -n "$OPP_LABELS" ];then | |
for l in $(echo $OPP_LABELS);do | |
echo "Handling label '$l' ..." | |
[[ "$l" = "allow/operator-version-overwrite" ]] && export OPP_VER_OVERWRITE=1 | |
[[ "$l" = "allow/operator-recreate" ]] && export OPP_RECREATE=1 | |
[[ "$l" = "allow/serious-changes-to-existing" ]] && export OP_ALLOW_BIG_CHANGES_TO_EXISTING=1 | |
[[ "$l" = "test/force-deploy-on-kubernetes" ]] && export OPP_FORCE_DEPLOY_ON_K8S=1 | |
[[ "$l" = "verbosity/high" ]] && export OPP_DEBUG=2 | |
[[ "$l" = "verbosity/debug" ]] && export OPP_DEBUG=3 | |
[[ "$l" = "allow/longer-deployment" ]] && export OPP_DEPLOY_LONGER=1 | |
done | |
else | |
echo "Info: No labels defined" | |
fi | |
[[ $OPP_DEBUG -eq 0 ]] && OPP_EXEC_EXTRA="-vv $OPP_EXEC_EXTRA" | |
# [[ $OPP_DEBUG -eq 1 ]] && OPP_EXEC_EXTRA="$OPP_EXEC_EXTRA" | |
[[ $OPP_DEBUG -eq 2 ]] && OPP_EXEC_EXTRA="-v $OPP_EXEC_EXTRA" | |
[[ $OPP_DEBUG -eq 3 ]] && OPP_EXEC_EXTRA="-vv $OPP_EXEC_EXTRA" | |
[[ $OPP_DRY_RUN -eq 1 ]] && DRY_RUN_CMD="echo" | |
# Hide secrets in dry run | |
if [[ $OPP_DRY_RUN -eq 1 ]];then | |
QUAY_API_TOKEN_OPENSHIFT_COMMUNITY_OP="" | |
QUAY_API_TOKEN_OPERATORHUBIO="" | |
QUAY_API_TOKEN_OPERATOR_TESTING="" | |
OHIO_REGISTRY_TOKEN="" | |
QUAY_APPREG_TOKEN="" | |
QUAY_COURIER_TOKEN="" | |
fi | |
echo "debug=$OPP_DEBUG" | |
# Handle test types | |
[ -n "$1" ] || help | |
[ "$ACTION" = "clean" ] && clean | |
if [ "$ACTION" = "docker" ];then | |
echo "Installing docker ..." | |
$DRY_RUN_CMD ansible-pull -U $OPP_ANSIBLE_PULL_REPO -C $OPP_ANSIBLE_PULL_BRANCH $OPP_ANSIBLE_DEFAULT_ARGS -e run_prepare_catalog_repo_upstream=false --tags docker | |
if [[ $? -eq 0 ]];then | |
echo -e "\n==================================================================================" | |
echo -e "Make sure that you logout and login after docker installation to apply changes !!!" | |
echo -e "==================================================================================\n" | |
else | |
echo "Problem installing docker !!!" | |
exit 1 | |
fi | |
exit 0 | |
fi | |
[ "$ACTION" = "iib" ] && { iib_install; exit 0; } | |
if ! command -v $OPP_CONTAINER_TOOL > /dev/null 2>&1; then | |
echo -e "\nError: '$OPP_CONTAINER_TOOL' is missing !!! Install it via:" | |
[ "$OPP_CONTAINER_TOOL" = "docker" ] && echo -e "\n\tbash <(curl -sL $OPP_THIS_SCRIPT_URL) $OPP_CONTAINER_TOOL" | |
[ "$OPP_CONTAINER_TOOL" = "podman" ] && echo -e "\n\tContainer tool '$OPP_CONTAINER_TOOL' is not supported yet" | |
echo | |
exit 1 | |
fi | |
# Handle operator info | |
OPP_BASE_DIR=${OPP_BASE_DIR-"/tmp/community-operators-for-catalog"} | |
OPP_STREAM=${OPP_STREAM-"operators"} | |
OPP_OPERATOR=${OPP_OPERATOR-"aqua"} | |
OPP_VERSION=${OPP_VERSION-"1.0.2"} | |
OPP_REPO_CLONE=0 | |
if [ -n "$2" ];then | |
if [ -n "$3" ];then | |
p=$2 | |
OPP_VERSION=$(echo $p | rev | cut -d'/' -f 1 | rev);p=$(dirname $p) | |
OPP_OPERATOR=$(echo $p | rev | cut -d'/' -f 1 | rev);p=$(dirname $p) | |
OPP_STREAM=$(echo $p | rev | cut -d'/' -f 1 | rev);p=$(dirname $p) | |
OPP_THIS_REPO="$3" | |
OPP_THIS_BRANCH="master" | |
OPP_REPO_CLONE=1 | |
[ -n "$4" ] && OPP_THIS_BRANCH=$4 | |
elif [ -d $2 ];then | |
p=$(readlink -f $2) | |
OPP_VERSION=$(echo $p | rev | cut -d'/' -f 1 | rev);p=$(dirname $p) | |
OPP_OPERATOR=$(echo $p | rev | cut -d'/' -f 1 | rev);p=$(dirname $p) | |
OPP_STREAM=$(echo $p | rev | cut -d'/' -f 1 | rev);p=$(dirname $p) | |
OPP_CONTAINER_RUN_EXTRA_ARGS="$OPP_CONTAINER_RUN_EXTRA_ARGS -v $p:$OPP_BASE_DIR" | |
else | |
echo -e "\nError: Full path to operator/version '$PWD/$2' was not found !!!\n" | |
exit 1 | |
fi | |
else | |
p=${PWD} | |
echo "Running locally from '$p' ..." | |
OPP_VERSION=$(echo $p | rev | cut -d'/' -f 1 | rev);p=$(dirname $p) | |
OPP_OPERATOR=$(echo $p | rev | cut -d'/' -f 1 | rev);p=$(dirname $p) | |
OPP_STREAM=$(echo $p | rev | cut -d'/' -f 1 | rev);p=$(dirname $p) | |
OPP_CONTAINER_RUN_EXTRA_ARGS="$OPP_CONTAINER_RUN_EXTRA_ARGS -v $p:$OPP_BASE_DIR" | |
fi | |
OPP_CHECK_STEAM_OK=0 | |
[ "$OPP_STREAM" = "." ] && [ "$OPP_VERSION" = "sync" ] && OPP_STREAM=$OPP_OPERATOR && OPP_OPERATOR=$OPP_VERSION | |
[ "$OPP_STREAM" = "." ] && [ "$OPP_VERSION" = "update" ] && OPP_STREAM=$OPP_OPERATOR && OPP_OPERATOR=$OPP_VERSION | |
[ "$OPP_STREAM" = "operators" ] && OPP_CHECK_STEAM_OK=1 | |
[[ $OPP_CHECK_STEAM_OK -eq 0 ]] && { echo "Error : Unknwn value for 'OPP_STREAM=$OPP_STREAM' !!!"; exit 1; } | |
[[ $OPP_PROD -eq 1 ]] && OPP_AUTO_PACKAGEMANIFEST_CLUSTER_VERSION_LABEL=1 | |
function ExecParameters() { | |
OPP_EXEC_USER= | |
OPP_EXEC_USER_SECRETS= | |
OPP_EXEC_USER_INDEX_CHECK= | |
OPP_SKIP=0 | |
OPP_MIRROR_INDEX_MULTIARCH_POSTFIX_FINAL=$OPP_MIRROR_INDEX_MULTIARCH_POSTFIX | |
[[ $2 == *rc* ]] && [[ $OPP_PROD -eq 0 ]] && { echo "Skipping '$1-$2' ..."; exit 0; } | |
[[ $2 == *db* ]] || OPP_MIRROR_INDEX_MULTIARCH_POSTFIX_FINAL="${OPP_MIRROR_INDEX_MULTIARCH_POSTFIX_FINAL}f" | |
[[ $1 == kiwi* ]] && OPP_EXEC_USER="-e operator_dir=$OPP_BASE_DIR/$OPP_OPERATORS_DIR/$OPP_OPERATOR -e operator_version=$OPP_VERSION --tags pure_test -e operator_channel_force=optest" | |
[[ $1 == kiwi* ]] && [ "$OPP_CLUSTER_TYPE" = "openshift" ] && [[ $OPP_FORCE_DEPLOY_ON_K8S -eq 0 ]] && OPP_EXEC_USER="$OPP_EXEC_USER -e test_skip_deploy=true" | |
[[ $1 == kiwi* ]] && [[ $OPP_DEPLOY_LONGER -eq 1 ]] && OPP_EXEC_USER="$OPP_EXEC_USER -e pod_start_retries=$OPP_POD_START_RETRIES_LONG_DEPLOYMENT_WAIT_RETRIES" | |
[[ $1 == kiwi* ]] && [[ $OPP_PROD -eq 0 ]] && [ "$OPP_CLUSTER_TYPE" = "openshift" ] && OPP_EXEC_USER="$OPP_EXEC_USER -e enable_bundle_validate_community=true" | |
[[ $1 == lemon* ]] && OPP_EXEC_USER="-e operator_dir=$OPP_BASE_DIR/$OPP_OPERATORS_DIR/$OPP_OPERATOR --tags deploy_bundles" | |
[[ $1 == orange* ]] && [ "$OPP_VERSION" != "sync" ] && OPP_EXEC_USER="-e operator_dir=$OPP_BASE_DIR/$OPP_OPERATORS_DIR/$OPP_OPERATOR --tags operator_info,deploy_bundles" | |
[[ $1 == orange* ]] && [ "$OPP_VERSION" = "sync" ] && OPP_EXEC_USER="--tags deploy_bundles" | |
if [ -f "$OP_INFO_FILE_LOCATION/op_info.yaml" ]; then OPP_EXEC_USER="$OPP_EXEC_USER -e operator_info_file=$OP_INFO_FILE_LOCATION/op_info.yaml"; fi | |
[[ $OPP_AUTO_PACKAGEMANIFEST_CLUSTER_VERSION_LABEL -eq 1 ]] && OPP_EXEC_USER="$OPP_EXEC_USER -e automatic_cluster_version_label=true" && OPP_EXEC_USER_INDEX_CHECK="$OPP_EXEC_USER_INDEX_CHECK -e automatic_cluster_version_label=true" | |
# [[ $1 == orange* ]] && [ "$OPP_STREAM" = "community-operators" ] && [ "$OPP_VERSION" != "sync" ] && [[ $OPP_PROD -lt 2 ]] && OPP_EXEC_USER="$OPP_EXEC_USER -e production_registry_namespace=quay.io/openshift-community-operators" | |
# [[ $1 == orange* ]] && [ "$OPP_STREAM" = "upstream-community-operators" ] && [ "$OPP_VERSION" != "sync" ] && [[ $OPP_PROD -lt 2 ]] && OPP_EXEC_USER="$OPP_EXEC_USER -e production_registry_namespace=quay.io/operatorhubio" | |
[[ $1 == orange* ]] && [ "$OPP_VERSION" != "sync" ] && [[ $OPP_PROD -lt 2 ]] && OPP_EXEC_USER="$OPP_EXEC_USER -e production_registry_namespace=$OPP_PRODUCTION_REGISTRY_NAMESPACE" | |
# Handle index_check | |
# [[ $1 == orange* ]] &&[ "$OPP_STREAM" = "community-operators" ] && OPP_EXEC_USER_INDEX_CHECK="-e run_prepare_catalog_repo_upstream=true -e bundle_index_image=quay.io/openshift-community-operators/catalog:latest -e operator_base_dir=$OPP_BASE_DIR/$OPP_OPERATORS_DIR" | |
# [[ $1 == orange* ]] &&[ "$OPP_STREAM" = "community-operators" ] && [[ $OPP_PROD -ge 2 ]] && OPP_EXEC_USER_INDEX_CHECK="-e run_prepare_catalog_repo_upstream=true -e bundle_index_image=quay.io/operator_testing/catalog:latest -e operator_base_dir=$OPP_BASE_DIR/$OPP_OPERATORS_DIR" | |
# [[ $1 == orange_* ]] && [ "$OPP_STREAM" = "community-operators" ] && OPP_EXEC_USER_INDEX_CHECK="-e run_prepare_catalog_repo_upstream=true -e bundle_index_image=quay.io/openshift-community-operators/catalog:${1/orange_/} -e operator_base_dir=$OPP_BASE_DIR/$OPP_OPERATORS_DIR" | |
# [[ $1 == orange_* ]] && [ "$OPP_STREAM" = "community-operators" ] && [[ $OPP_PROD -ge 2 ]] && OPP_EXEC_USER_INDEX_CHECK="-e run_prepare_catalog_repo_upstream=true -e bundle_index_image=quay.io/operator_testing/catalog:${1/orange_/} -e operator_base_dir=$OPP_BASE_DIR/$OPP_OPERATORS_DIR" | |
# [[ $1 == orange* ]] && [ "$OPP_STREAM" = "upstream-community-operators" ] && OPP_EXEC_USER_INDEX_CHECK="-e run_prepare_catalog_repo_upstream=true -e bundle_index_image=quay.io/operatorhubio/catalog:latest -e operator_base_dir=$OPP_BASE_DIR/$OPP_OPERATORS_DIR" | |
# [[ $1 == orange* ]] && [ "$OPP_STREAM" = "upstream-community-operators" ] && [[ $OPP_PROD -ge 2 ]] && OPP_EXEC_USER_INDEX_CHECK="-e run_prepare_catalog_repo_upstream=true -e bundle_index_image=quay.io/operator_testing/catalog:latest -e operator_base_dir=$OPP_BASE_DIR/$OPP_OPERATORS_DIR" | |
# [[ $1 == orange_* ]] && [ "$OPP_STREAM" = "upstream-community-operators" ] && { echo "Error: orange_xxx is not supported for 'upstream-community-operators' !!! Exiting ..."; exit 1; } | |
# Handle index_check | |
OPP_PRODUCTION_INDEX_IMAGE_TAG="latest" | |
[[ $1 == orange_* ]] && OPP_PRODUCTION_INDEX_IMAGE_TAG="${1/orange_/}" | |
[[ $1 == lemon_* ]] && OPP_PRODUCTION_INDEX_IMAGE_TAG="${1/lemon_/}" | |
[[ $1 == orange* ]] && OPP_EXEC_USER_INDEX_CHECK="-e run_prepare_catalog_repo_upstream=true -e bundle_index_image=$OPP_PRODUCTION_INDEX_IMAGE:$OPP_PRODUCTION_INDEX_IMAGE_TAG -e operator_base_dir=$OPP_BASE_DIR/$OPP_OPERATORS_DIR" | |
[[ $1 == orange* ]] && [ "$OPP_CLUSTER_TYPE" = "openshift" ] && OPP_EXEC_USER_INDEX_CHECK="$OPP_EXEC_USER_INDEX_CHECK -e stream_kind=openshift_upstream" | |
[[ $1 == orange_* ]] && [ "$OPP_CLUSTER_TYPE" = "k8s" ] && { echo "Error: orange_xxx is not supported for 'kubernetes' cluster !!! Exiting ..."; exit 1; } | |
# [[ $1 == orange* ]] && [[ $OPP_PROD -eq 1 ]] && [ "$OPP_STREAM" = "community-operators" ] && OPP_EXEC_USER="$OPP_EXEC_USER -e bundle_registry=$OPP_RELEASE_BUNDLE_REGISTRY -e bundle_image_namespace=$OPP_RELEASE_BUNDLE_ORGANIZATION -e bundle_index_image_namespace=$OPP_RELEASE_INDEX_ORGANIZATION -e bundle_index_image_name=OPP_RELEASE_INDEX_NAME" | |
# Using default "-e use_cluster_filter=false -e supported_cluster_versions=latest" for k8s | |
# [[ $1 == orange* ]] && [[ $OPP_PROD -eq 1 ]] && [ "$OPP_STREAM" = "upstream-community-operators" ] && OPP_EXEC_USER="$OPP_EXEC_USER -e bundle_registry=quay.io -e bundle_image_namespace=operatorhubio -e bundle_index_image_namespace=operatorhubio -e bundle_index_image_name=catalog" | |
# [[ $1 == orange* ]] && [[ $OPP_PROD -ge 2 ]] && OPP_EXEC_USER="$OPP_EXEC_USER -e bundle_registry=quay.io -e bundle_image_namespace=operator_testing -e bundle_index_image_namespace=operator_testing -e bundle_index_image_name=catalog" | |
# [[ $1 == orange* ]] && [[ $OPP_PROD -eq 1 ]] && [ "$OPP_STREAM" = "community-operators" ] && OPP_EXEC_USER_SECRETS="$OPP_EXEC_USER_SECRETS -e quay_api_token=$QUAY_API_TOKEN_OPENSHIFT_COMMUNITY_OP" | |
# [[ $1 == orange* ]] && [[ $OPP_PROD -eq 1 ]] && [ "$OPP_STREAM" = "upstream-community-operators" ] && OPP_EXEC_USER_SECRETS="$OPP_EXEC_USER_SECRETS -e quay_api_token=$QUAY_API_TOKEN_OPERATORHUBIO" | |
# [[ $1 == orange* ]] && [[ $OPP_PROD -ge 2 ]] && OPP_EXEC_USER_SECRETS="$OPP_EXEC_USER_SECRETS -e quay_api_token=$QUAY_API_TOKEN_OPERATOR_TESTING" | |
[[ $1 == orange* ]] && [[ $OPP_PROD -eq 1 ]] && OPP_EXEC_USER="$OPP_EXEC_USER -e bundle_registry=$OPP_RELEASE_BUNDLE_REGISTRY -e bundle_image_namespace=$OPP_RELEASE_BUNDLE_ORGANIZATION -e bundle_index_image_namespace=$OPP_RELEASE_INDEX_ORGANIZATION -e bundle_index_image_name=$OPP_RELEASE_INDEX_NAME" | |
[[ $1 == orange* ]] && [[ $OPP_PROD -eq 1 ]] && OPP_EXEC_USER_SECRETS="$OPP_EXEC_USER_SECRETS -e quay_api_token=$REGISTRY_RELEASE_API_TOKEN" | |
[[ $1 == orange* ]] && [[ $OPP_PROD -eq 1 ]] && [[ $OPP_SKIP_INDEX -eq 1 ]] && OPP_EXEC_USER="$OPP_EXEC_USER -e index_skip=true" | |
[ -n "$IIB_INPUT_REGISTRY_USER" ] && OPP_EXEC_USER="$OPP_EXEC_USER -e quay_arch_input_user=$IIB_INPUT_REGISTRY_USER -e quay_arch_input_host=$(echo $OPP_MIRROR_INDEX_MULTIARCH_BASE | cut -d '/' -f 1)" | |
[ -n "$IIB_INPUT_REGISTRY_TOKEN" ] && OPP_EXEC_USER_SECRETS="$OPP_EXEC_USER_SECRETS -e quay_arch_input_password=\"$IIB_INPUT_REGISTRY_TOKEN\"" | |
# If community and doing orange_<version> | |
# [[ $1 == orange* ]] && [[ $1 != orange_* ]] && [ "$OPP_CLUSTER_TYPE" = "openshift" ] && OPP_EXEC_USER="$OPP_EXEC_USER -e stream_kind=openshift_upstream" | |
# [[ $1 == orange_* ]] && [ "$OPP_CLUSTER_TYPE" = "openshift" ] && OPP_EXEC_USER="$OPP_EXEC_USER -e stream_kind=openshift_upstream -e supported_cluster_versions=$OPP_PRODUCTION_INDEX_IMAGE_TAG -e bundle_index_image_version=$OPP_PRODUCTION_INDEX_IMAGE_TAG" | |
# [[ $1 == lemon_* ]] && [ "$OPP_CLUSTER_TYPE" = "openshift" ] && OPP_EXEC_USER="$OPP_EXEC_USER -e stream_kind=openshift_upstream -e supported_cluster_versions=$OPP_PRODUCTION_INDEX_IMAGE_TAG -e bundle_index_image_version=$OPP_PRODUCTION_INDEX_IMAGE_TAG" | |
[ "$OPP_CLUSTER_TYPE" = "openshift" ] && OPP_EXEC_USER="$OPP_EXEC_USER -e stream_kind=openshift_upstream" | |
[ "$OPP_CLUSTER_TYPE" = "k8s" ] && [[ $OPP_MIRROR_INDEX_ENABLED -eq 0 ]] && OPP_EXEC_USER="$OPP_EXEC_USER -e force_skip_mirror=true" | |
if [[ $1 == orange_* || $1 == lemon_* ]];then | |
[ "$OPP_CLUSTER_TYPE" = "openshift" ] && OPP_EXEC_USER="$OPP_EXEC_USER -e supported_cluster_versions=$OPP_PRODUCTION_INDEX_IMAGE_TAG -e bundle_index_image_version=$OPP_PRODUCTION_INDEX_IMAGE_TAG" | |
fi | |
if [ "$OPP_CLUSTER_TYPE" = "openshift" ] && [[ $1 == orange_* ]] && [[ $OPP_PROD -eq 0 ]];then | |
if [[ $OPP_MIRROR_INDEX_ENABLED -eq 1 ]];then | |
handleMultiarchTag | |
# OPP_EXEC_USER="$OPP_EXEC_USER -e mirror_apply=true" | |
OPP_MIRROR_INDEX_IMAGE="kind-registry:5000/operator_testing/catalog_prod" | |
[[ $OPP_MIRROR_INDEX_MULTIARCH_BASE != "" ]] && OPP_EXEC_USER="$OPP_EXEC_USER -e mirror_multiarch_image=$OPP_MIRROR_INDEX_MULTIARCH_BASE:$OPP_MIRROR_INDEX_MULTIARCH_BASE_TAG" | |
[ "$OPP_MIRROR_LATEST_TAG" != "$OPP_PRODUCTION_INDEX_IMAGE_TAG" ] && OPP_EXEC_USER_SECRETS="$OPP_EXEC_USER_SECRETS -e mirror_index_images=\"$OPP_MIRROR_INDEX_IMAGE:$OPP_PRODUCTION_INDEX_IMAGE_TAG|||$OPP_MIRROR_INDEX_MULTIARCH_POSTFIX_FINAL\"" | |
[ "$OPP_MIRROR_LATEST_TAG" = "$OPP_PRODUCTION_INDEX_IMAGE_TAG" ] && OPP_EXEC_USER_SECRETS="$OPP_EXEC_USER_SECRETS -e mirror_index_images=\"$OPP_MIRROR_INDEX_IMAGE:$OPP_PRODUCTION_INDEX_IMAGE_TAG|||$OPP_MIRROR_INDEX_MULTIARCH_POSTFIX_FINAL|$OPP_MIRROR_INDEX_IMAGE:latest\"" | |
else | |
echo "Ignoring: -e sis_index_add_skip=true" | |
#OPP_EXEC_USER="$OPP_EXEC_USER -e sis_index_add_skip=true" | |
fi | |
fi | |
if [ "$OPP_CLUSTER_TYPE" = "openshift" ] && [[ $1 == orange_* ]] && [[ $OPP_PROD -eq 1 ]];then | |
if [[ $OPP_MIRROR_INDEX_ENABLED -eq 1 ]];then | |
handleMultiarchTag | |
OPP_EXEC_USER="$OPP_EXEC_USER -e mirror_apply=true" | |
[[ $OPP_MIRROR_INDEX_MULTIARCH_BASE != "" ]] && OPP_EXEC_USER="$OPP_EXEC_USER -e mirror_multiarch_image=$OPP_MIRROR_INDEX_MULTIARCH_BASE:$OPP_MIRROR_INDEX_MULTIARCH_BASE_TAG" | |
[ "$OPP_MIRROR_LATEST_TAG" != "$OPP_PRODUCTION_INDEX_IMAGE_TAG" ]&& OPP_EXEC_USER_SECRETS="$OPP_EXEC_USER_SECRETS -e mirror_index_images=\"$OPP_MIRROR_INDEX_IMAGE:$OPP_PRODUCTION_INDEX_IMAGE_TAG|$OPP_REGISTRY_MIRROR_USER|$REGISTRY_MIRROR_PW|$OPP_MIRROR_INDEX_MULTIARCH_POSTFIX\"" | |
[ "$OPP_MIRROR_LATEST_TAG" = "$OPP_PRODUCTION_INDEX_IMAGE_TAG" ] && OPP_EXEC_USER_SECRETS="$OPP_EXEC_USER_SECRETS -e mirror_index_images=\"$OPP_MIRROR_INDEX_IMAGE:$OPP_PRODUCTION_INDEX_IMAGE_TAG|$OPP_REGISTRY_MIRROR_USER|$REGISTRY_MIRROR_PW|$OPP_MIRROR_INDEX_MULTIARCH_POSTFIX|$OPP_MIRROR_INDEX_IMAGE:latest\"" | |
else | |
echo "Ignoring: -e sis_index_add_skip=true" | |
#OPP_EXEC_USER="$OPP_EXEC_USER -e sis_index_add_skip=true" | |
fi | |
fi | |
if [ "$OPP_CLUSTER_TYPE" = "k8s" ] && [[ $1 == orange* ]] && [[ $OPP_PROD -eq 0 ]];then | |
if [[ $OPP_MIRROR_INDEX_ENABLED -eq 1 ]];then | |
handleMultiarchTag | |
# OPP_EXEC_USER="$OPP_EXEC_USER -e mirror_apply=true" | |
OPP_MIRROR_INDEX_IMAGE="kind-registry:5000/operator_testing/catalog" | |
[[ $OPP_MIRROR_INDEX_MULTIARCH_BASE != "" ]] && OPP_EXEC_USER="$OPP_EXEC_USER -e mirror_multiarch_image=$OPP_MIRROR_INDEX_MULTIARCH_BASE:$OPP_MIRROR_INDEX_MULTIARCH_BASE_TAG" | |
[ "$OPP_MIRROR_LATEST_TAG" != "$OPP_PRODUCTION_INDEX_IMAGE_TAG" ] && OPP_EXEC_USER_SECRETS="$OPP_EXEC_USER_SECRETS -e mirror_index_images=\"$OPP_MIRROR_INDEX_IMAGE:$OPP_PRODUCTION_INDEX_IMAGE_TAG|||$OPP_MIRROR_INDEX_MULTIARCH_POSTFIX\"" | |
[ "$OPP_MIRROR_LATEST_TAG" = "$OPP_PRODUCTION_INDEX_IMAGE_TAG" ] && OPP_EXEC_USER_SECRETS="$OPP_EXEC_USER_SECRETS -e mirror_index_images=\"$OPP_MIRROR_INDEX_IMAGE:$OPP_PRODUCTION_INDEX_IMAGE_TAG|||$OPP_MIRROR_INDEX_MULTIARCH_POSTFIX|$OPP_MIRROR_INDEX_IMAGE:latest\"" | |
else | |
echo "Ignoring: -e sis_index_add_skip=true" | |
#OPP_EXEC_USER="$OPP_EXEC_USER -e sis_index_add_skip=true" | |
fi | |
fi | |
if [ "$OPP_CLUSTER_TYPE" = "k8s" ] && [[ $1 == orange* ]] && [[ $OPP_PROD -eq 1 ]];then | |
if [[ $OPP_MIRROR_INDEX_ENABLED -eq 1 ]];then | |
handleMultiarchTag | |
OPP_EXEC_USER="$OPP_EXEC_USER -e mirror_apply=true" | |
[[ $OPP_MIRROR_INDEX_MULTIARCH_BASE != "" ]] && OPP_EXEC_USER="$OPP_EXEC_USER -e mirror_multiarch_image=$OPP_MIRROR_INDEX_MULTIARCH_BASE:$OPP_MIRROR_INDEX_MULTIARCH_BASE_TAG" | |
[ "$OPP_MIRROR_LATEST_TAG" != "$OPP_PRODUCTION_INDEX_IMAGE_TAG" ]&& OPP_EXEC_USER_SECRETS="$OPP_EXEC_USER_SECRETS -e mirror_index_images=\"$OPP_MIRROR_INDEX_IMAGE:$OPP_PRODUCTION_INDEX_IMAGE_TAG|||$OPP_MIRROR_INDEX_MULTIARCH_POSTFIX\"" | |
[ "$OPP_MIRROR_LATEST_TAG" = "$OPP_PRODUCTION_INDEX_IMAGE_TAG" ] && OPP_EXEC_USER_SECRETS="$OPP_EXEC_USER_SECRETS -e mirror_index_images=\"$OPP_MIRROR_INDEX_IMAGE:$OPP_PRODUCTION_INDEX_IMAGE_TAG|||$OPP_MIRROR_INDEX_MULTIARCH_POSTFIX|$OPP_MIRROR_INDEX_IMAGE:latest\"" | |
else | |
echo "Ignoring: -e sis_index_add_skip=true" | |
#OPP_EXEC_USER="$OPP_EXEC_USER -e sis_index_add_skip=true" | |
fi | |
fi | |
[ -n "$OPP_PRODUCTION_TYPE" ] && OPP_EXEC_USER="$OPP_EXEC_USER -e cluster_type=$OPP_PRODUCTION_TYPE" && OPP_EXEC_USER_INDEX_CHECK="$OPP_EXEC_USER_INDEX_CHECK -e cluster_type=$OPP_PRODUCTION_TYPE" | |
[[ OP_ALLOW_BIG_CHANGES_TO_EXISTING -eq 1 ]] && OPP_EXEC_USER="$OPP_EXEC_USER -e allow_big_changes_to_existing=true" | |
# Failing test when upstream and orgage_<version> (not supported yet) | |
[[ $1 == orange_* ]] && [ "$OPP_CLUSTER_TYPE" = "k8s" ] && OPP_EXEC_USER="" && { echo "Warning: Index versions are not supported for 'upstream-community-operators' !!! Skipping ..."; OPP_SKIP=1; } | |
# Building index from bundle shas in production | |
[[ $1 == orange* ]] && [[ $OPP_PROD -eq 0 ]] && OPP_EXEC_USER="$OPP_EXEC_USER -e bundle_index_sha_posfix=$OPP_MIRROR_INDEX_MULTIARCH_POSTFIX -e sis_allow_empty_index=true" | |
[[ $1 == orange* ]] && [[ $OPP_PROD -eq 1 ]] && OPP_EXEC_USER="$OPP_EXEC_USER -e bundle_index_sha_posfix=$OPP_MIRROR_INDEX_MULTIARCH_POSTFIX" | |
# Don't reset kind when production (It should speedup deploy when kind and registry is not needed) | |
[[ $1 == orange* ]] && [[ $OPP_PROD -ge 1 ]] && OPP_RESET=0 | |
[[ $1 == orange* ]] && [[ $OPP_VER_OVERWRITE -eq 0 ]] && [ "$OPP_VERSION" != "update" ] && OPP_EXEC_USER="$OPP_EXEC_USER -e fail_on_no_index_change=false" | |
[[ $1 == orange* ]] && [[ $OPP_PROD -eq 0 ]] && OPP_FORCE_INDEX_UPDATE=1 | |
[[ $1 == orange* ]] && [[ $OPP_PROD -ge 1 ]] && [[ $OPP_VER_OVERWRITE -eq 0 ]] && [ "$OPP_VERSION" == "sync" ] && OPP_FORCE_INDEX_UPDATE=1 | |
[[ $1 == orange* ]] && [[ $OPP_PROD -ge 1 ]] && [[ $OPP_CI_YAML_ONLY -eq 1 ]] && [ "$OPP_VERSION" == "sync" ] && OPP_EXEC_USER="$OPP_EXEC_USER -e operator_dir=$OPP_BASE_DIR/$OPP_OPERATORS_DIR/$OPP_OPERATOR" | |
[[ $1 == orange* ]] && [[ $OPP_VER_OVERWRITE -eq 0 ]] && [ "$OPP_VERSION" = "update" ] && OPP_FORCE_INDEX_UPDATE=1 && OPP_EXEC_USER="$OPP_EXEC_USER -e fail_on_no_index_change=false -e strict_mode=true" | |
[[ $OPP_FORCE_INDEX_UPDATE -eq 1 ]] && OPP_EXEC_USER="$OPP_EXEC_USER -e index_force_update=true" | |
# Handle OPP_VER_OVERWRITE | |
[[ $1 == orange* ]] && [[ $OPP_VER_OVERWRITE -eq 1 ]] && [ "$OPP_VERSION" != "sync" ] && [ "$OPP_VERSION" != "update" ] && OPP_EXEC_USER="$OPP_EXEC_USER -e operator_version=$OPP_VERSION -e bundle_force_rebuild=true -e fail_on_no_index_change=false" | |
# Handle OPP_RECREATE | |
[[ $1 == orange* ]] && [[ $OPP_RECREATE -eq 1 ]] && [[ $OPP_PROD -eq 0 ]] && OPP_SKIP=1 | |
# [[ $1 == orange* ]] && [[ $OPP_PROD -eq 0 ]] && [ "$OPP_PRODUCTION_INDEX_IMAGE_TAG" == "v4.9" ] && OPP_EXEC_USER="$OPP_EXEC_USER -e skip_iib_index=true" | |
# [[ $1 == orange* ]] && [[ $OPP_PROD -eq 0 ]] && OPP_EXEC_USER="$OPP_EXEC_USER -e skip_iib_index=true" | |
# Skipping when version is not defined in case OPP_VER_OVERWRITE=1 | |
[[ $OPP_VER_OVERWRITE -eq 1 ]] && [ -z $OPP_VERSION ] && { echo "Warning: OPP_VER_OVERWRITE=1 and no version specified 'OPP_VERSION=$OPP_VERSION' !!! Skipping ..."; OPP_SKIP=1; } | |
# Skipping case when sync in non prod mode | |
[[ $OPP_PROD -eq 0 ]] && [ "$OPP_VERSION" = "sync" ] && { echo "Warning: No support for 'sync' (try 'update') when 'OPP_PROD=$OPP_PROD' !!! Skipping ..."; OPP_SKIP=1; } | |
[[ $OPP_PROD -eq 0 ]] && [ "$OPP_OPERATOR" = "update" ] && { echo "Warning: No support for 'update' when 'OPP_PROD=$OPP_PROD' when operator name is not defined !!! Skipping ..."; OPP_SKIP=1; } | |
# Handling when kiwi and lemon case for production mode | |
[[ $OPP_PROD -ge 1 ]] && [[ $1 == kiwi* ]] && { echo "Warning: No support for 'kiwi' test when 'OPP_PROD=$OPP_PROD' !!! Skipping ..."; OPP_SKIP=1; } | |
[[ $OPP_PROD -ge 1 ]] && [[ $1 == lemon* ]] && { echo "Warning: No support for 'lemon' test when 'OPP_PROD=$OPP_PROD' !!! Skipping ..."; OPP_SKIP=1; } | |
[[ $OPP_PROD -eq 1 ]] && OPP_EXEC_USER="$OPP_EXEC_USER -e enable_bundle_validate_community=false" | |
[[ $1 == push_to_quay* ]] && [ "$OPP_CLUSTER_TYPE" = "openshift" ] && OPP_RESET=1 && OPP_EXEC_USER="$OPP_EXEC_USER --tags deploy_bundles -e operator_dir=$OPP_BASE_DIR/$OPP_OPERATORS_DIR/$OPP_OPERATOR -e production_registry_namespace=$OPP_PRODUCTION_REGISTRY_NAMESPACE -e index_force_update=true -e bundle_index_image_name=$OPP_RELEASE_INDEX_NAME -e op_test_operator_version=$OPP_VERSION" | |
[[ $1 == push_to_quay* ]] && [ "$OPP_CLUSTER_TYPE" = "openshift" ] && OPP_RESET=1 && OPP_EXEC_USER="$OPP_EXEC_USER -e stream_kind=openshift_upstream -e automatic_cluster_version_label=true" | |
[[ $1 == push_to_quay* ]] && [ "$OPP_CLUSTER_TYPE" = "openshift" ] && OPP_RESET=1 && OPP_EXEC_USER_SECRETS="$OPP_EXEC_USER_SECRETS -e quay_appregistry_api_token=$QUAY_APPREG_TOKEN -e quay_appregistry_courier_token=$QUAY_COURIER_TOKEN" | |
[[ $1 == push_to_quay* ]] && [ "$OPP_CLUSTER_TYPE" = "openshift" ] && OPP_RESET=1 && [[ OPP_DELETE_APPREG -eq 1 ]] && OPP_EXEC_USER="$OPP_EXEC_USER -e delete_appreg='true'" | |
[[ $1 == push_to_quay* ]] && [ "$OPP_CLUSTER_TYPE" = "k8s" ] && OPP_RESET=0 && OPP_EXEC_USER="" && { echo "Warning: Push to quay is not supported for 'k8s' !!! Skipping ..."; OPP_SKIP=1; } | |
[[ $1 == ohio_image* ]] && OPP_RESET=0 && OPP_EXEC_USER="$OPP_EXEC_USER --tags app_registry -e bundle_index_image=$OHIO_INPUT_CATALOG_IMAGE -e index_export_parallel=true -e app_registry_image=$OHIO_REGISTRY_IMAGE -e quay_api_token=$OHIO_REGISTRY_TOKEN" | |
[[ $1 == op_delete* ]] && OPP_RESET=0 && OPP_EXEC_USER="$OPP_EXEC_USER --tags remove_operator -e operator_dir=$OPP_BASE_DIR/$OPP_OPERATORS_DIR/$OPP_OPERATOR -e operator_info_file=" | |
# [[ $1 == op_delete* ]] && [[ $OPP_PROD -eq 1 ]] && [ "$OPP_STREAM" = "community-operators" ] && OPP_EXEC_USER="$OPP_EXEC_USER -e bundle_registry=quay.io -e bundle_image_namespace=openshift-community-operators -e bundle_index_image_namespace=openshift-community-operators -e bundle_index_image_name=catalog" | |
# [[ $1 == op_delete* ]] && [[ $OPP_PROD -eq 1 ]] && [ "$OPP_STREAM" = "upstream-community-operators" ] && OPP_EXEC_USER="$OPP_EXEC_USER -e bundle_registry=quay.io -e bundle_image_namespace=operatorhubio -e bundle_index_image_namespace=operatorhubio -e bundle_index_image_name=catalog" | |
# [[ $1 == op_delete* ]] && [[ $OPP_PROD -eq 1 ]] && [ "$OPP_STREAM" = "community-operators" ] && OPP_EXEC_USER_SECRETS="$OPP_EXEC_USER_SECRETS -e quay_api_token=$QUAY_API_TOKEN_OPENSHIFT_COMMUNITY_OP" | |
# [[ $1 == op_delete* ]] && [[ $OPP_PROD -eq 1 ]] && [ "$OPP_STREAM" = "upstream-community-operators" ] && OPP_EXEC_USER_SECRETS="$OPP_EXEC_USER_SECRETS -e quay_api_token=$QUAY_API_TOKEN_OPERATORHUBIO" | |
# [[ $1 == op_delete* ]] && [[ $OPP_PROD -ge 2 ]] && OPP_EXEC_USER_SECRETS="$OPP_EXEC_USER_SECRETS -e quay_api_token=$QUAY_API_TOKEN_OPERATOR_TESTING" | |
[[ $1 == op_delete* ]] && [[ $OPP_PROD -eq 1 ]] && OPP_EXEC_USER="$OPP_EXEC_USER -e bundle_registry=$OPP_RELEASE_BUNDLE_REGISTRY -e bundle_image_namespace=$OPP_RELEASE_BUNDLE_ORGANIZATION -e bundle_index_image_namespace=$OPP_RELEASE_INDEX_ORGANIZATION -e bundle_index_image_name=$OPP_RELEASE_INDEX_NAME" | |
[[ $1 == op_delete* ]] && [[ $OPP_PROD -eq 1 ]] && OPP_EXEC_USER_SECRETS="$OPP_EXEC_USER_SECRETS -e quay_api_token=$REGISTRY_RELEASE_API_TOKEN" | |
[[ $1 == op_delete_* ]] && [ "$OPP_CLUSTER_TYPE" = "openshift" ] && OPP_EXEC_USER="$OPP_EXEC_USER -e bundle_index_image_version=${1/op_delete_/}" | |
[[ $1 == op_delete_* ]] && [ "$OPP_CLUSTER_TYPE" = "k8s" ] && OPP_RESET=0 && OPP_EXEC_USER="" && { echo "Warning: Removing specific version (not latest) not supported for 'k8s' !!! Skipping ..."; OPP_SKIP=1; } | |
[[ $1 == op_delete* ]] && [[ $OPP_VER_OVERWRITE -eq 1 ]] && [ "$OPP_VERSION" != "sync" ] && [ "$OPP_VERSION" != "update" ] && OPP_EXEC_USER="$OPP_EXEC_USER -e operator_version=$OPP_VERSION" | |
# index safety - avoid accidental index destroy | |
[[ $1 == orange* ]] && [[ $OPP_PROD -eq 1 ]] && OPP_EXEC_USER="$OPP_EXEC_USER $OPP_INDEX_SAFETY" && OPP_EXEC_USER_INDEX_CHECK="$OPP_EXEC_USER_INDEX_CHECK $OPP_INDEX_SAFETY" | |
# Force strict mode (force to fail on 'bundle add' and 'index add') | |
[[ $OPP_PROD -eq 0 ]] && OPP_EXEC_USER="$OPP_EXEC_USER -e strict_mode=true" | |
# FOR debuging only | |
# echo "OPP_REMOVE_OPERATOR_AFTER_CLONE_PATH=$OPP_REMOVE_OPERATOR_AFTER_CLONE_PATH" | |
[ -n "$OPP_REMOVE_OPERATOR_AFTER_CLONE_PATH" ] && OPP_EXEC_USER="$OPP_EXEC_USER -e remove_base_dir=/tmp/community-operators-for-catalog/operators -e remove_operator_dirs=$OPP_REMOVE_OPERATOR_AFTER_CLONE_PATH" | |
[ -n "$OPP_REMOVE_OPERATOR_AFTER_CLONE_PATH" ] && OPP_EXEC_USER_INDEX_CHECK="$OPP_EXEC_USER_INDEX_CHECK -e remove_base_dir=/tmp/community-operators-for-catalog/operators -e remove_operator_dirs=$OPP_REMOVE_OPERATOR_AFTER_CLONE_PATH" | |
} | |
function GenerateOperatorConfigFile() { | |
[ -f "$OP_INFO_FILE_LOCATION/op_info.yaml" ] && echo "operator_base_dir: $OP_INFO_FILE_LOCATION/operators" > $OPP_UNCOMPLETE || echo "operator_base_dir: /tmp/community-operators-for-catalog/operators" > $OPP_UNCOMPLETE | |
echo "operators:" >> $OPP_UNCOMPLETE | |
for o in $OPP_FORCE_OPERATORS;do | |
echo "- $o" >> $OPP_UNCOMPLETE | |
done | |
cat $OPP_UNCOMPLETE | |
} | |
echo "Using $(ansible --version | head -n 1) on host ..." | |
if [[ $OPP_DEBUG -ge 2 ]];then | |
run echo "OPP_DEBUG='$OPP_DEBUG'" | |
run echo "OPP_DRY_RUN='$OPP_DRY_RUN'" | |
run echo "OPP_EXEC_USER='$OPP_EXEC_USER'" | |
run echo "OPP_IMAGE='$OPP_IMAGE'" | |
run echo "OPP_CONTAINER_EXEC_EXTRA_ARGS='$OPP_CONTAINER_EXEC_EXTRA_ARGS'" | |
run echo "OPP_CERT_DIR='$OPP_CERT_DIR'" | |
run echo "OPP_CONTAINER_TOOL='$OPP_CONTAINER_TOOL'" | |
run echo "OPP_NAME='$OPP_NAME'" | |
run echo "OPP_ANSIBLE_PULL_REPO='$OPP_ANSIBLE_PULL_REPO'" | |
run echo "OPP_ANSIBLE_PULL_BRANCH='$OPP_ANSIBLE_PULL_BRANCH'" | |
run echo "OPP_ANSIBLE_DEFAULT_ARGS='$OPP_ANSIBLE_DEFAULT_ARGS'" | |
run echo "OPP_ANSIBLE_EXTRA_ARGS='$OPP_ANSIBLE_EXTRA_ARGS'" | |
run echo "OPP_CONAINER_RUN_DEFAULT_ARGS='$OPP_CONAINER_RUN_DEFAULT_ARGS'" | |
run echo "OPP_CONTAINER_RUN_EXTRA_ARGS='$OPP_CONTAINER_RUN_EXTRA_ARGS'" | |
run echo "OPP_CONTAINER_EXEC_DEFAULT_ARGS='$OPP_CONTAINER_EXEC_EXTRA_ARGS'" | |
run echo "OPP_CONTAINER_EXEC_EXTRA_ARGS='$OPP_CONTAINER_EXEC_EXTRA_ARGS'" | |
run echo "OPP_RUN_MODE='$OPP_RUN_MODE'" | |
run echo "OPP_FORCE_INSTALL='$OPP_FORCE_INSTALL'" | |
run echo "OPP_LOG_DIR='$OPP_LOG_DIR'" | |
fi | |
echo -e "\nOne can do 'tail -f $OPP_LOG_DIR/log.out' from second console to see full logs\n" | |
# Check if kind is installed | |
echo -e "Checking for kind binary ..." | |
if ! $DRY_RUN_CMD command -v kind > /dev/null 2>&1; then | |
OPP_FORCE_INSTALL=1 | |
fi | |
# Install prerequisites (kind cluster) | |
[[ $OPP_FORCE_INSTALL -eq 1 ]] && run echo -e " [ Installing prerequisites ] " | |
[[ $OPP_FORCE_INSTALL -eq 1 ]] && run $DRY_RUN_CMD ansible-pull -U $OPP_ANSIBLE_PULL_REPO -C $OPP_ANSIBLE_PULL_BRANCH $OPP_ANSIBLE_DEFAULT_ARGS $OPP_ANSIBLE_EXTRA_ARGS -e run_prepare_catalog_repo_upstream=false | |
# [[ $OPP_IIB_INSTALL -eq 1 ]] && iib_install | |
if [ -n "$OPP_THIS_REPO" ] && [[ $OPP_REPO_CLONE -eq 1 ]];then | |
OPP_EXEC_EXTRA="$OPP_EXEC_EXTRA -e catalog_repo=$OPP_THIS_REPO_BASE/$OPP_THIS_REPO -e catalog_repo_branch=$OPP_THIS_BRANCH" | |
else | |
OPP_EXEC_EXTRA="$OPP_EXEC_EXTRA -e run_prepare_catalog_repo_upstream=false" | |
fi | |
# # Start container | |
# echo -e " [ Preparing testing container '$OPP_NAME' from '$OPP_IMAGE' ] " | |
# $DRY_RUN_CMD $OPP_CONTAINER_TOOL pull $OPP_IMAGE > /dev/null 2>&1 || { echo "Error: Problem pulling image '$OPP_IMAGE' !!!"; exit 1; } | |
OPP_CONTAINER_OPT="$OPP_CONTAINER_OPT -e ANSIBLE_CONFIG=/playbooks/upstream/ansible.cfg" | |
OPP_CONTAINER_OPT="$OPP_CONTAINER_OPT -e GODEBUG=$GODEBUG" | |
echo "::set-output name=opp_uncomplete_operators::$OPP_UNCOMPLETE_OPERATORS" | |
OPP_SKIP=0 | |
IIB_INSTALLED=0 | |
for t in $TESTS;do | |
t1=$(echo $t | cut -d '-' -f 1) | |
t2=$(echo $t | cut -d '-' -f 2) | |
echo "t1=$t1 t2=$t2" | |
OPP_FORCE_OPERATORS_TMP=OPP_FORCE_OPERATORS_${t1/orange_/} | |
OPP_FORCE_OPERATORS_TMP=${OPP_FORCE_OPERATORS_TMP//./_} | |
[[ $t1 == orange* ]] && [[ $OPP_PROD -ge 1 ]] && [ -n "${!OPP_FORCE_OPERATORS_TMP}" ] && OPP_FORCE_OPERATORS=${!OPP_FORCE_OPERATORS_TMP} | |
echo "Using Varialble : OPP_FORCE_OPERATORS_TMP=$OPP_FORCE_OPERATORS_TMP (${!OPP_FORCE_OPERATORS_TMP}) -> OPP_FORCE_OPERATORS=$OPP_FORCE_OPERATORS" | |
[ ! -n "$OPP_FORCE_OPERATORS" ] && [[ "${OPP_FORCE_OPERATORS-x}" != "x" ]] && continue | |
ExecParameters $t1 $t2 | |
echo "OPP_MIRROR_INDEX_MULTIARCH_POSTFIX_FINAL=$OPP_MIRROR_INDEX_MULTIARCH_POSTFIX_FINAL" | |
[[ $OPP_SKIP -eq 1 ]] && echo "Skipping test '$t1' for '$OPP_OPERATORS_DIR $OPP_OPERATOR $OPP_VERSION' ..." && continue | |
[ -z "$OPP_EXEC_USER" ] && { echo "Error: Unknown test '$t1' for '$OPP_OPERATORS_DIR $OPP_OPERATOR $OPP_VERSION' !!! Exiting ..."; help; } | |
echo -e "Test '$t1' for '$OPP_OPERATORS_DIR $OPP_OPERATOR $OPP_VERSION' ..." | |
if [[ $OPP_RESET -eq 1 ]];then | |
echo -e "[$t1] Reseting kind cluster ..." | |
run $DRY_RUN_CMD ansible-pull -U $OPP_ANSIBLE_PULL_REPO -C $OPP_ANSIBLE_PULL_BRANCH $OPP_ANSIBLE_DEFAULT_ARGS -e run_prepare_catalog_repo_upstream=false -e kind_kube_version=$KIND_KUBE_VERSION --tags reset | |
fi | |
if [ -n "$OPP_PRETEST_CUSTOM_SCRIPT" ];then | |
echo "Running custom script '$OPP_PRETEST_CUSTOM_SCRIPT' ..." | |
[ -f $OPP_PRETEST_CUSTOM_SCRIPT ] || { echo "Custom script '$OPP_PRETEST_CUSTOM_SCRIPT' was not found. Exiting ..."; exit 1; } | |
[[ -x "$OPP_PRETEST_CUSTOM_SCRIPT" ]] || { echo "Custom script '$OPP_PRETEST_CUSTOM_SCRIPT' is not executable. Do 'chmod +x $OPP_PRETEST_CUSTOM_SCRIPT' first !!! Exiting ..."; exit 1; } | |
run $OPP_PRETEST_CUSTOM_SCRIPT | |
echo "Custom script '$OPP_PRETEST_CUSTOM_SCRIPT' done ..." | |
fi | |
echo -e "[$t1] Running test ..." | |
[[ $OPP_DEBUG -ge 3 ]] && echo "OPP_EXEC_EXTRA=$OPP_EXEC_EXTRA" | |
# Pull container | |
echo -e " [ Pull testing container '$OPP_NAME' from '$OPP_IMAGE' ] " | |
$DRY_RUN_CMD $OPP_CONTAINER_TOOL pull $OPP_IMAGE > /dev/null 2>&1 || { echo "Error: Problem pulling image '$OPP_IMAGE' !!!"; exit 1; } | |
$DRY_RUN_CMD $OPP_CONTAINER_TOOL rm -f $OPP_NAME > /dev/null 2>&1 | |
run $DRY_RUN_CMD $OPP_CONTAINER_TOOL run -d --rm $OPP_CONTAINER_OPT --name $OPP_NAME $OPP_CONAINER_RUN_DEFAULT_ARGS $OPP_CONTAINER_RUN_EXTRA_ARGS $OPP_IMAGE | |
[[ $OPP_RESET -eq 1 ]] && run $DRY_RUN_CMD $OPP_CONTAINER_TOOL cp $HOME/.kube $OPP_NAME:/root/ | |
set -e | |
if [ -n "$OPP_FORCE_OPERATORS" ];then | |
echo "Generating config file" | |
GenerateOperatorConfigFile | |
run $DRY_RUN_CMD $OPP_CONTAINER_TOOL cp $OPP_UNCOMPLETE $OPP_NAME:$OPP_UNCOMPLETE | |
OPP_EXEC_USER="$OPP_EXEC_USER -e operators_config=$OPP_UNCOMPLETE" | |
else | |
if [[ $t1 == orange* ]] && [[ $OPP_PROD -ge 1 ]] && [[ $OPP_CI_YAML_ONLY -eq 0 ]] && [ "$OPP_VERSION" = "sync" ];then | |
echo "$OPP_EXEC_BASE $OPP_EXEC_EXTRA --tags index_check $OPP_EXEC_USER_INDEX_CHECK" | |
run $DRY_RUN_CMD $OPP_CONTAINER_TOOL exec $OPP_CONTAINER_OPT $OPP_NAME /bin/bash -c "update-ca-trust && $OPP_EXEC_BASE $OPP_EXEC_EXTRA --tags index_check $OPP_EXEC_USER_INDEX_CHECK" | |
echo "Checking insync operators ..." | |
$DRY_RUN_CMD $OPP_CONTAINER_TOOL exec $OPP_CONTAINER_OPT $OPP_NAME /bin/bash -c "ls $OPP_UNCOMPLETE" || true | |
$DRY_RUN_CMD $OPP_CONTAINER_TOOL exec $OPP_CONTAINER_OPT $OPP_NAME /bin/bash -c "ls $OPP_UNCOMPLETE" > /dev/null 2>&1 || { echo "Noting to run !!!";set +e; continue; } | |
OPP_EXEC_USER="$OPP_EXEC_USER -e operators_config=$OPP_UNCOMPLETE" | |
OPP_UNCOMPLETE_OPERATORS_CURRENT=$($DRY_RUN_CMD $OPP_CONTAINER_TOOL exec $OPP_CONTAINER_OPT $OPP_NAME /bin/bash -c "/tmp/operator-test/bin/yq r $OPP_UNCOMPLETE operators -j | /tmp/operator-test/bin/jq '.[]' -r | tr '\n' ' '") | |
OPP_UNCOMPLETE_OPERATORS="$OPP_UNCOMPLETE_OPERATORS $OPP_UNCOMPLETE_OPERATORS_CURRENT" | |
OPP_UNCOMPLETE_OPERATORS_CURRENT=$(echo $OPP_UNCOMPLETE_OPERATORS_CURRENT | xargs) | |
echo "[$t1] OPP_UNCOMPLETE_OPERATORS_CURRENT='$OPP_UNCOMPLETE_OPERATORS_CURRENT'" | |
OPP_MY_VER=${t1/orange_/} | |
OPP_MY_VER=${OPP_MY_VER//./_} | |
[[ $t1 == orange_* ]] && [ -n "$OPP_UNCOMPLETE_OPERATORS_CURRENT" ] && echo "::set-output name=opp_uncomplete_operators_${OPP_MY_VER}::$OPP_UNCOMPLETE_OPERATORS_CURRENT" | |
[[ $OPP_INDEX_CHECK_ONLY -eq 1 ]] && { set +e && continue; } | |
fi | |
fi | |
[[ $OPP_IIB_INSTALL -eq 1 ]] && [[ $IIB_INSTALLED -eq 0 ]] && iib_install && IIB_INSTALLED=1 | |
echo "$OPP_EXEC_BASE $OPP_EXEC_EXTRA $OPP_EXEC_USER" | |
run $DRY_RUN_CMD $OPP_CONTAINER_TOOL exec $OPP_CONTAINER_OPT $OPP_NAME /bin/bash -c "update-ca-trust && $OPP_EXEC_BASE $OPP_EXEC_EXTRA $OPP_EXEC_USER $OPP_EXEC_USER_SECRETS" | |
set +e | |
echo -e "Test '$t' : [ OK ]\n" | |
done | |
[ -n "$OPP_UNCOMPLETE_OPERATORS" ] && OPP_UNCOMPLETE_OPERATORS=$(echo $OPP_UNCOMPLETE_OPERATORS | tr ' ' '\n' | sort | uniq | tr '\n' ' '| xargs) | |
echo "OPP_UNCOMPLETE_OPERATORS='$OPP_UNCOMPLETE_OPERATORS'" | |
echo "::set-output name=opp_uncomplete_operators::$OPP_UNCOMPLETE_OPERATORS" | |
echo "Done" | |
# For playbook developers | |
# OPP_DEBUG=2 bash <(curl -sL https://raw.githubusercontent.com/operator-framework/operator-test-playbooks/master/upstream/test/test.sh) orange community-operators/aqua/5.3.0 https://github.com/operator-framework/community-operators master | |
# export CURLOPT_FRESH_CONNECT=true |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment