#!/bin/bash # # Copyright (c) 2019-2021 Red Hat, Inc. # This program and the accompanying materials are made # available under the terms of the Eclipse Public License 2.0 # which is available at https://www.eclipse.org/legal/epl-2.0/ # # SPDX-License-Identifier: EPL-2.0 # # Contributors: # Red Hat, Inc. - initial API and implementation # set -e OPERATOR_REPO=$(dirname "$(dirname "$(dirname "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")")")") source "${OPERATOR_REPO}/build/scripts/oc-tests/oc-common.sh" init() { unset VERBOSE unset OPERATOR_IMAGE while [[ "$#" -gt 0 ]]; do case $1 in '--help'|'-h') usage; exit;; '--operator-image'|'-o') OPERATOR_IMAGE="$2"; shift 1;; '--verbose'|'-v') VERBOSE=1;; esac shift 1 done if [[ ! ${OPERATOR_IMAGE} ]]; then usage; exit 1; fi } usage () { echo "Deploy Eclipse Che from sources" echo echo "Usage:" echo -e "\t$0 -o OPERATOR_IMAGE" echo echo "OPTIONS:" echo -e "\t-o,--operator-image Operator image to include into a bundle" echo -e "\t-v,--verbose Verbose mode" echo echo "Example:" echo -e "\t$0 -o quay.io/eclipse/che-operator:next" } buildNextBundleFromSources() { local TMP_BUNDLE_DIR=/tmp/bundle rm -rf ${TMP_BUNDLE_DIR} mkdir ${TMP_BUNDLE_DIR} cp -r $(make bundle-path CHANNEL=next)/* ${TMP_BUNDLE_DIR} mv ${TMP_BUNDLE_DIR}/bundle.Dockerfile ${TMP_BUNDLE_DIR}/Dockerfile yq -rYi '.spec.install.spec.deployments[0].spec.template.spec.containers[0].image = "'${OPERATOR_IMAGE}'"' ${TMP_BUNDLE_DIR}/manifests/che-operator.clusterserviceversion.yaml oc new-build --binary --strategy docker --name ${BUNDLE_NAME} -n ${NAMESPACE} oc start-build ${BUNDLE_NAME} --from-dir ${TMP_BUNDLE_DIR} -n ${NAMESPACE} --wait } createImageRegistryViewerUser() { IMAGE_REGISTRY_VIEWER_USER_NAME=registry-viewer IMAGE_REGISTRY_VIEWER_USER_PASSWORD=registry-viewer if ! oc get secret registry-viewer-htpasswd -n openshift-config >/dev/null 2>&1; then cat > /tmp/htpasswd.conf </dev/null 2>&1; do printf '.'; sleep 1; done" IMAGE_REGISTRY_VIEWER_USER_TOKEN=$(oc --kubeconfig=${IMAGE_REGISTRY_VIEWER_USER_KUBECONFIG} whoami -t) oc policy add-role-to-user registry-viewer ${IMAGE_REGISTRY_VIEWER_USER_NAME} -n ${NAMESPACE} } createOLMRegistry() { oc apply -f - </dev/null run popd >/dev/null