fix: Refactor test scripts (#1505)

Signed-off-by: Anatolii Bazko <abazko@redhat.com>

Signed-off-by: Anatolii Bazko <abazko@redhat.com>
pull/1506/head
Anatolii Bazko 2022-09-02 12:20:24 +03:00 committed by GitHub
parent ae0f6c87c3
commit bf294fb042
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 157 additions and 239 deletions

View File

@ -684,42 +684,42 @@ create-operatorgroup: ## Creates operator group
create-subscription: SHELL := /bin/bash
create-subscription: ## Creates subscription
[[ -z "$(NAME)" ]] && { echo [ERROR] NAME not defined; exit 1; }
[[ -z "$(NAMESPACE)" ]] && DEFINED_NAMESPACE="openshift-operators" || DEFINED_NAMESPACE=$(NAMESPACE)
[[ -z "$(NAMESPACE)" ]] && { echo [ERROR] NAMESPACE not defined; exit 1; }
[[ -z "$(CHANNEL)" ]] && { echo [ERROR] CHANNEL not defined; exit 1; }
[[ -z "$(INSTALL_PLAN_APPROVAL)" ]] && { echo [ERROR] INSTALL_PLAN_APPROVAL not defined; exit 1; }
[[ -z "$(PACKAGE_NAME)" ]] && { echo [ERROR] PACKAGE_NAME not defined; exit 1; }
[[ -z "$(SOURCE)" ]] && { echo [ERROR] SOURCE not defined; exit 1; }
[[ -z "$(SOURCE_NAMESPACE)" ]] && DEFINED_SOURCE_NAMESPACE="openshift-marketplace" || DEFINED_SOURCE_NAMESPACE=$(SOURCE_NAMESPACE)
[[ -z "$(SOURCE_NAMESPACE)" ]] && { echo [ERROR] SOURCE_NAMESPACE not defined; exit 1; }
echo '{
"apiVersion": "operators.coreos.com/v1alpha1",
"kind": "Subscription",
"metadata": {
"name": "$(NAME)",
"namespace": "'$${DEFINED_NAMESPACE}'"
"namespace": "$(NAMESPACE)"
},
"spec": {
"channel": "$(CHANNEL)",
"installPlanApproval": "$(INSTALL_PLAN_APPROVAL)",
"name": "$(PACKAGE_NAME)",
"source": "$(SOURCE)",
"sourceNamespace": "'$${DEFINED_SOURCE_NAMESPACE}'",
"sourceNamespace": "$(SOURCE_NAMESPACE)",
"startingCSV": "$(STARTING_CSV)"
}
}' | $(K8S_CLI) apply -f -
if [[ ${INSTALL_PLAN_APPROVAL} == "Manual" ]]; then
$(K8S_CLI) wait subscription $(NAME) -n $${DEFINED_NAMESPACE} --for=condition=InstallPlanPending --timeout=60s
if [[ $(INSTALL_PLAN_APPROVAL) == "Manual" ]]; then
$(K8S_CLI) wait subscription $(NAME) -n $(NAMESPACE) --for=condition=InstallPlanPending --timeout=60s
fi
approve-installplan: SHELL := /bin/bash
approve-installplan: ## Approves install plan
[[ -z "$(SUBSCRIPTION_NAME)" ]] && { echo [ERROR] SUBSCRIPTION_NAME not defined; exit 1; }
[[ -z "$(NAMESPACE)" ]] && DEFINED_NAMESPACE="openshift-operators" || DEFINED_NAMESPACE=$(NAMESPACE)
[[ -z "$(NAMESPACE)" ]] && { echo [ERROR] NAMESPACE not defined; exit 1; }
INSTALL_PLAN_NAME=$$($(K8S_CLI) get subscription $(SUBSCRIPTION_NAME) -n $${DEFINED_NAMESPACE} -o jsonpath='{.status.installplan.name}')
$(K8S_CLI) patch installplan $${INSTALL_PLAN_NAME} -n $${DEFINED_NAMESPACE} --type=merge -p '{"spec":{"approved":true}}'
$(K8S_CLI) wait installplan $${INSTALL_PLAN_NAME} -n $${DEFINED_NAMESPACE} --for=condition=Installed --timeout=240s
INSTALL_PLAN_NAME=$$($(K8S_CLI) get subscription $(SUBSCRIPTION_NAME) -n $(NAMESPACE) -o jsonpath='{.status.installplan.name}')
$(K8S_CLI) patch installplan $${INSTALL_PLAN_NAME} -n $(NAMESPACE) --type=merge -p '{"spec":{"approved":true}}'
$(K8S_CLI) wait installplan $${INSTALL_PLAN_NAME} -n $(NAMESPACE) --for=condition=Installed --timeout=240s
create-namespace: SHELL := /bin/bash
create-namespace: ## Creates namespace
@ -754,7 +754,14 @@ install-devworkspace: ## Install Dev Workspace operator, available channels: nex
fi
$(MAKE) create-catalogsource IMAGE="$${IMAGE}" NAME="devworkspace-operator"
$(MAKE) create-subscription NAME="devworkspace-operator" PACKAGE_NAME="devworkspace-operator" CHANNEL="$(CHANNEL)" SOURCE="devworkspace-operator" INSTALL_PLAN_APPROVAL="Auto"
$(MAKE) create-subscription \
NAME="devworkspace-operator" \
NAMESPACE="openshift-operators" \
PACKAGE_NAME="devworkspace-operator" \
CHANNEL="$(CHANNEL)" \
SOURCE="devworkspace-operator" \
SOURCE_NAMESPACE="openshift-marketplace" \
INSTALL_PLAN_APPROVAL="Auto"
$(MAKE) wait-devworkspace-running NAMESPACE="openshift-operators"
wait-devworkspace-running: SHELL := /bin/bash

View File

@ -80,8 +80,7 @@ listCatalogSourceBundles() {
--attach=true \
--image=docker.io/fullstorydev/grpcurl:v1.7.0 \
-- -plaintext "${REGISTRY_IP}:${CATALOG_PORT}" api.Registry.ListBundles
} )
)
echo "${LIST_BUNDLES}" | head -n -1
}
@ -117,6 +116,6 @@ forcePullingOlmImages() {
echo "[INFO] Pulling image '${image}'"
yq -r "(.spec.template.spec.containers[0].image) = \"${image}\"" "${OPERATOR_REPO}/build/scripts/olm/force-pulling-images-job.yaml" | oc apply -f - -n ${NAMESPACE}
oc wait --for=condition=complete --timeout=30s job/force-pulling-images-job -n ${NAMESPACE}
oc delete job/force-pulling-images-job -n ${NAMESPACE}
oc wait --for=condition=complete --timeout=30s job/pull-image -n ${NAMESPACE}
oc delete job/pull-image -n ${NAMESPACE}
}

View File

@ -1,36 +0,0 @@
#!/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 -ex
export CHE_REPO_BRANCH="main"
export OPERATOR_REPO=$(dirname "$(dirname "$(dirname "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")")")")
source "${OPERATOR_REPO}/build/scripts/oc-tests/oc-common.sh"
source <(curl -s https://raw.githubusercontent.com/eclipse/che/${CHE_REPO_BRANCH}/tests/devworkspace-happy-path/common.sh)
#Stop execution on any error
trap "catchFinish" EXIT SIGINT
runTests() {
# CI_CHE_OPERATOR_IMAGE it is che operator image built in openshift CI job workflow.
# More info about how works image dependencies in ci:https://github.com/openshift/ci-tools/blob/master/TEMPLATES.md#parameters-available-to-templates
useCustomOperatorImageInCSV "${CI_CHE_OPERATOR_IMAGE}"
make create-namespace NAMESPACE="eclipse-che"
getCheClusterCRFromInstalledCSV | oc apply -n "${NAMESPACE}" -f -
make wait-eclipseche-version VERSION="$(getCheVersionFromInstalledCSV)" NAMESPACE=${NAMESPACE}
bash <(curl -s https://raw.githubusercontent.com/eclipse/che/${CHE_REPO_BRANCH}/tests/devworkspace-happy-path/remote-launch.sh)
}
runTests

View File

@ -0,0 +1,29 @@
#!/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 -ex
export OPERATOR_REPO=$(dirname "$(dirname "$(dirname "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")")")")
source <(curl -s ${DEVWORKSPACE_HAPPY_PATH}/common.sh)
export DEVWORKSPACE_HAPPY_PATH="https://raw.githubusercontent.com/eclipse/che/main/tests/devworkspace-happy-path"
source "${OPERATOR_REPO}/build/scripts/oc-tests/oc-common.sh"
#Stop execution on any error
trap "catchFinish" EXIT SIGINT
runTests() {
bash <(curl -s ${DEVWORKSPACE_HAPPY_PATH}/remote-launch.sh)
}
runTests

View File

@ -22,7 +22,7 @@ trap "catchFinish" EXIT SIGINT
[[ -z "${CI_CHE_OPERATOR_IMAGE}" ]] && { echo [ERROR] CI_CHE_OPERATOR_IMAGE not defined; exit 1; }
runTests() {
. ${OPERATOR_REPO}/build/scripts/olm/testCatalogFromSources.sh -o ${CI_CHE_OPERATOR_IMAGE}
. ${OPERATOR_REPO}/build/scripts/olm/testCatalogFromSources.sh -o ${CI_CHE_OPERATOR_IMAGE} --verbose
}
runTests

View File

@ -28,97 +28,24 @@ unset OPERATOR_TEST_NAMESPACE
[[ -z "${CI_CHE_OPERATOR_IMAGE}" ]] && { echo [ERROR] CI_CHE_OPERATOR_IMAGE not defined; exit 1; }
# Discover test namespace
# Eclipse Che subscription is pre-created by OpenShift CI
discoverOperatorTestNamespace() {
discoverEclipseCheSubscription
OPERATOR_TEST_NAMESPACE=${ECLIPSE_CHE_SUBSCRIPTION_NAMESPACE}
}
# Delete Eclipse Che next version operator by deleting its subscription
deleteEclipseCheNextVersionSubscription() {
discoverEclipseCheSubscription
# save .spec to recreate subscription later
ECLIPSE_CHE_NEXT_SUBSCRIPTION_SPEC_SOURCE=$(oc get subscription ${ECLIPSE_CHE_SUBSCRIPTION_NAME} -n ${OPERATOR_TEST_NAMESPACE} -o "jsonpath={.spec.source}")
ECLIPSE_CHE_NEXT_SUBSCRIPTION_SPEC_SOURCE_NAMESPACE=$(oc get subscription ${ECLIPSE_CHE_SUBSCRIPTION_NAME} -n ${OPERATOR_TEST_NAMESPACE} -o "jsonpath={.spec.sourceNamespace}")
oc delete csv ${ECLIPSE_CHE_INSTALLED_CSV} -n ${OPERATOR_TEST_NAMESPACE}
oc delete subscription ${ECLIPSE_CHE_SUBSCRIPTION_NAME} -n ${OPERATOR_TEST_NAMESPACE}
}
# Install Eclipse Che next version operator by creating its subscription
createEclipseCheNextVersionSubscription() {
pushd "${OPERATOR_REPO}" || exit 1
make create-subscription \
NAME=${ECLIPSE_CHE_SUBSCRIPTION_NAME} \
NAMESPACE=${OPERATOR_TEST_NAMESPACE} \
SOURCE=${ECLIPSE_CHE_NEXT_SUBSCRIPTION_SPEC_SOURCE} \
SOURCE_NAMESPACE=${ECLIPSE_CHE_NEXT_SUBSCRIPTION_SPEC_SOURCE_NAMESPACE} \
PACKAGE_NAME=${ECLIPSE_CHE_PREVIEW_PACKAGE_NAME} \
CHANNEL="next" \
INSTALL_PLAN_APPROVAL="Auto"
popd
}
# Install Eclipse Che stable version operator by creating its subscription
createEclipseCheStableVersionSubscription() {
pushd "${OPERATOR_REPO}" || exit 1
make create-subscription \
NAME=${ECLIPSE_CHE_SUBSCRIPTION_NAME} \
NAMESPACE=${OPERATOR_TEST_NAMESPACE} \
SOURCE="community-operators" \
SOURCE_NAMESPACE="openshift-marketplace" \
PACKAGE_NAME=${ECLIPSE_CHE_STABLE_PACKAGE_NAME} \
CHANNEL="stable" \
INSTALL_PLAN_APPROVAL="Auto"
popd
}
# Uninstall Eclipse Che stable version operator by deleting its subscription
deleteEclipseCheStableVersionSubscription() {
deleteEclipseCheStableVersionOperator() {
discoverEclipseCheSubscription
oc delete csv ${ECLIPSE_CHE_INSTALLED_CSV} -n ${OPERATOR_TEST_NAMESPACE}
oc delete subscription ${ECLIPSE_CHE_SUBSCRIPTION_NAME} -n ${OPERATOR_TEST_NAMESPACE}
}
oc delete csv ${ECLIPSE_CHE_INSTALLED_CSV} -n ${ECLIPSE_CHE_SUBSCRIPTION_NAMESPACE}
oc delete subscription ${ECLIPSE_CHE_SUBSCRIPTION_NAME} -n ${ECLIPSE_CHE_SUBSCRIPTION_NAMESPACE}
runTests() {
discoverOperatorTestNamespace
# Uninstall pre-created Eclipse Che next version operator (operands don't exist)
deleteEclipseCheNextVersionSubscription
waitForRemovedEclipseCheSubscription
# Deploy stable version
createEclipseCheStableVersionSubscription
waitForInstalledEclipseCheCSV
getCheClusterCRFromInstalledCSV | oc apply -n "${NAMESPACE}" -f -
pushd ${OPERATOR_REPO}
make wait-eclipseche-version VERSION="$(getCheVersionFromInstalledCSV)" NAMESPACE=${NAMESPACE}
popd
# Delete Eclipse Che stable version (just operator)
deleteEclipseCheStableVersionSubscription
waitForRemovedEclipseCheSubscription
# Hack, since we remove operator pod, webhook won't work.
# We have to disable it for a while.
oc patch crd checlusters.org.eclipse.che --patch '{"spec": {"conversion": null}}' --type=merge
}
# Install Eclipse Che next version
createEclipseCheNextVersionSubscription
waitForInstalledEclipseCheCSV
# CI_CHE_OPERATOR_IMAGE it is che operator image built in openshift CI job workflow.
# More info about how works image dependencies in ci:https://github.com/openshift/ci-tools/blob/master/TEMPLATES.md#parameters-available-to-templates
useCustomOperatorImageInCSV "${CI_CHE_OPERATOR_IMAGE}"
pushd ${OPERATOR_REPO}
make wait-eclipseche-version VERSION="$(getCheVersionFromInstalledCSV)" NAMESPACE=${NAMESPACE}
popd
runTests() {
. ${OPERATOR_REPO}/build/scripts/olm/testCatalog.sh -i quay.io/eclipse/eclipse-che-openshift-opm-catalog:test -c stable --verbose
deleteEclipseCheStableVersionOperator
. ${OPERATOR_REPO}/build/scripts/olm/testCatalogFromSources.sh -o ${CI_CHE_OPERATOR_IMAGE} --verbose
}
runTests

View File

@ -20,7 +20,7 @@ source "${OPERATOR_REPO}/build/scripts/oc-tests/oc-common.sh"
trap "catchFinish" EXIT SIGINT
runTests() {
. "${OPERATOR_REPO}"/build/scripts/olm/testUpdate.sh -c stable -i quay.io/eclipse/eclipse-che-openshift-opm-catalog:test -n ${NAMESPACE}
. ${OPERATOR_REPO}/build/scripts/olm/testUpdate.sh -c stable -i quay.io/eclipse/eclipse-che-openshift-opm-catalog:test -n ${NAMESPACE} --verbose
}
runTests

View File

@ -133,9 +133,9 @@ buildCatalogImage() {
init "$@"
pushd "${ROOT_DIR}" || exit
pushd "${OPERATOR_REPO}" >/dev/null
buildBundle
buildCatalog
popd || exit
popd >/dev/null
echo "[INFO] Done"

View File

@ -13,22 +13,16 @@
kind: Job
apiVersion: batch/v1
metadata:
name: force-pulling-images-job
name: pull-image
spec:
parallelism: 1
completions: 1
backoffLimit: 6
template:
metadata:
name: force-pulling-images-job
name: pull-image
spec:
imagePullSecrets:
- name: 'myregistrykey'
volumes:
- name: util
emptyDir: {}
initContainers:
- name: util
image: >-
busybox
@ -40,13 +34,9 @@ spec:
volumeMounts:
- name: util
mountPath: /util
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: IfNotPresent
containers:
- name: pull-bundle-image
- name: pull-image
image: "${BUNDLE_IMAGE_NAME}"
command:
- /util/echo
@ -54,11 +44,5 @@ spec:
volumeMounts:
- name: util
mountPath: /util
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: Always
restartPolicy: OnFailure
terminationGracePeriodSeconds: 30
dnsPolicy: ClusterFirst
schedulerName: default-scheduler

View File

@ -19,6 +19,7 @@ source "${OPERATOR_REPO}/build/scripts/oc-tests/oc-common.sh"
init() {
NAMESPACE="eclipse-che"
CHANNEL="next"
VERBOSE=0
unset CATALOG_IMAGE
while [[ "$#" -gt 0 ]]; do
@ -26,12 +27,13 @@ init() {
'--channel'|'-c') CHANNEL="$2"; shift 1;;
'--namespace'|'-n') NAMESPACE="$2"; shift 1;;
'--catalog-image'|'-i') CATALOG_IMAGE="$2"; shift 1;;
'--verbose'|'-v') VERBOSE=1;;
'--help'|'-h') usage; exit;;
esac
shift 1
done
if [[ ! ${CHANNEL} ]] || [[ ! ${CATALOG_IMAGE} ]]; then usage; exit 1; fi
if [[ ! ${CATALOG_IMAGE} ]]; then usage; exit 1; fi
}
usage () {
@ -44,6 +46,7 @@ usage () {
echo -e "\t-i,--catalog-image Catalog image"
echo -e "\t-c,--channel=next|stable [default: next] Olm channel to deploy Eclipse Che from"
echo -e "\t-n,--namespace [default: eclipse-che] Kubernetes namespace to deploy Eclipse Che into"
echo -e "\t-n,--verbose Verbose mode"
echo
echo "Example:"
echo -e "\t$0 -i quay.io/eclipse/eclipse-che-openshift-opm-catalog:next"
@ -52,41 +55,41 @@ usage () {
}
run() {
pushd ${OPERATOR_REPO} || exit 1
if [[ ${CHANNEL} == "next" ]]; then
make install-devworkspace CHANNEL=next
else
make install-devworkspace CHANNEL=fast
fi
if [[ ${CHANNEL} == "next" ]]; then
make install-devworkspace CHANNEL=next VERBOSE=${VERBOSE}
else
make install-devworkspace CHANNEL=fast VERBOSE=${VERBOSE}
fi
make create-namespace NAMESPACE="eclipse-che"
make create-catalogsource NAME="${ECLIPSE_CHE_CATALOG_SOURCE_NAME}" IMAGE="${CATALOG_IMAGE}"
popd
make create-namespace NAMESPACE="eclipse-che" VERBOSE=${VERBOSE}
make create-catalogsource NAME="${ECLIPSE_CHE_CATALOG_SOURCE_NAME}" IMAGE="${CATALOG_IMAGE}" VERBOSE=${VERBOSE}
local bundles=$(listCatalogSourceBundles "${ECLIPSE_CHE_CATALOG_SOURCE_NAME}")
fetchLatestCSVInfo "${CHANNEL}" "${bundles}"
forcePullingOlmImages "${LATEST_CSV_BUNDLE_IMAGE}"
pushd ${OPERATOR_REPO} || exit 1
make create-subscription \
NAME="${ECLIPSE_CHE_SUBSCRIPTION_NAME}" \
PACKAGE_NAME="${ECLIPSE_CHE_PREVIEW_PACKAGE_NAME}" \
CHANNEL="${CHANNEL}" \
SOURCE="${ECLIPSE_CHE_CATALOG_SOURCE_NAME}" \
SOURCE_NAMESPACE="openshift-marketplace" \
INSTALL_PLAN_APPROVAL="Auto"
popd
make create-subscription \
NAME="${ECLIPSE_CHE_SUBSCRIPTION_NAME}" \
NAMESPACE="openshift-operators" \
PACKAGE_NAME="${ECLIPSE_CHE_PREVIEW_PACKAGE_NAME}" \
CHANNEL="${CHANNEL}" \
SOURCE="${ECLIPSE_CHE_CATALOG_SOURCE_NAME}" \
SOURCE_NAMESPACE="openshift-marketplace" \
INSTALL_PLAN_APPROVAL="Auto" \
VERBOSE=${VERBOSE}
waitForInstalledEclipseCheCSV
getCheClusterCRFromInstalledCSV | oc apply -n "${NAMESPACE}" -f -
pushd ${OPERATOR_REPO}
make wait-eclipseche-version VERSION="$(getCheVersionFromInstalledCSV)" NAMESPACE=${NAMESPACE}
popd
make wait-eclipseche-version VERSION="$(getCheVersionFromInstalledCSV)" NAMESPACE=${NAMESPACE} VERBOSE=${VERBOSE}
}
init "$@"
[[ ${VERBOSE} == 1 ]] && set -x
pushd ${OPERATOR_REPO} >/dev/null
run
popd >/dev/null
echo "[INFO] Done"

View File

@ -17,12 +17,14 @@ OPERATOR_REPO=$(dirname "$(dirname "$(dirname "$(dirname "$(readlink -f "${BASH_
source "${OPERATOR_REPO}/build/scripts/oc-tests/oc-common.sh"
init() {
VERBOSE=0
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
@ -37,7 +39,8 @@ usage () {
echo -e "\t$0 -o OPERATOR_IMAGE"
echo
echo "OPTIONS:"
echo -e "\t-o,--operator-image Operator image to include into bundle"
echo -e "\t-o,--operator-image Operator image to include into a bundle"
echo -e "\t-n,--verbose Verbose mode"
echo
echo "Example:"
echo -e "\t$0 -o quay.io/eclipse/che-operator:next"
@ -67,20 +70,16 @@ createImageRegistryViewerUser() {
registry-viewer:{SHA}4xV+Nga1JF5YDx0fB1LdYbyaVvQ=
EOF
oc create secret generic registry-viewer-htpasswd --from-file=htpasswd=/tmp/htpasswd.conf -n openshift-config
oc apply -f - <<EOF
apiVersion: config.openshift.io/v1
kind: OAuth
metadata:
name: cluster
oc patch oauths cluster --type merge -p '
spec:
identityProviders:
- name: registry-viewer
mappingMethod: claim
type: HTPasswd
htpasswd:
fileData:
name: registry-viewer-htpasswd
EOF
- name: registry-viewer
mappingMethod: claim
type: HTPasswd
htpasswd:
fileData:
name: registry-viewer-htpasswd
'
fi
IMAGE_REGISTRY_VIEWER_USER_KUBECONFIG=/tmp/${IMAGE_REGISTRY_VIEWER_USER_NAME}.kubeconfig
@ -158,28 +157,31 @@ EOF
}
run() {
pushd ${OPERATOR_REPO}
make create-namespace NAMESPACE=${NAMESPACE}
if [[ $(oc get operatorgroup -n eclipse-che --no-headers | wc -l) == 0 ]]; then
make create-operatorgroup NAME=eclipse-che NAMESPACE=${NAMESPACE}
fi
createEclipseCheCatalogSource
make create-subscription \
NAME=eclipse-che-subscription \
NAMESPACE=eclipse-che \
PACKAGE_NAME=${ECLIPSE_CHE_PREVIEW_PACKAGE_NAME} \
SOURCE=eclipse-che \
SOURCE_NAMESPACE=eclipse-che \
INSTALL_PLAN_APPROVAL=Auto \
CHANNEL=next
waitForInstalledEclipseCheCSV
if [[ $(oc get checluster -n eclipse-che --no-headers | wc -l) == 0 ]]; then
getCheClusterCRFromInstalledCSV | oc apply -n "${NAMESPACE}" -f -
fi
make wait-eclipseche-version VERSION="$(getCheVersionFromInstalledCSV)" NAMESPACE=${NAMESPACE}
popd
make create-namespace NAMESPACE=${NAMESPACE} VERBOSE=${VERBOSE}
if [[ $(oc get operatorgroup -n eclipse-che --no-headers | wc -l) == 0 ]]; then
make create-operatorgroup NAME=eclipse-che NAMESPACE=${NAMESPACE} VERBOSE=${VERBOSE}
fi
createEclipseCheCatalogSource
make create-subscription \
NAME=eclipse-che-subscription \
NAMESPACE=eclipse-che \
PACKAGE_NAME=${ECLIPSE_CHE_PREVIEW_PACKAGE_NAME} \
SOURCE=eclipse-che \
SOURCE_NAMESPACE=eclipse-che \
INSTALL_PLAN_APPROVAL=Auto \
CHANNEL=next \
VERBOSE=${VERBOSE}
waitForInstalledEclipseCheCSV
if [[ $(oc get checluster -n eclipse-che --no-headers | wc -l) == 0 ]]; then
getCheClusterCRFromInstalledCSV | oc apply -n "${NAMESPACE}" -f -
fi
make wait-eclipseche-version VERSION="$(getCheVersionFromInstalledCSV)" NAMESPACE=${NAMESPACE} VERBOSE=${VERBOSE}
}
init "$@"
run
[[ ${VERBOSE} == 1 ]] && set -x
pushd ${OPERATOR_REPO} >/dev/null
run
popd >/dev/null

View File

@ -1,4 +1,4 @@
#!/bin/bash
#!/bin/bash
#
# Copyright (c) 2019-2021 Red Hat, Inc.
# This program and the accompanying materials are made
@ -19,6 +19,7 @@ source "${OPERATOR_REPO}/build/scripts/oc-tests/oc-common.sh"
init() {
NAMESPACE="eclipse-che"
CHANNEL="next"
VERBOSE=0
unset CATALOG_IMAGE
while [[ "$#" -gt 0 ]]; do
@ -26,6 +27,7 @@ init() {
'--channel'|'-c') CHANNEL="$2"; shift 1;;
'--namespace'|'-n') NAMESPACE="$2"; shift 1;;
'--catalog-image'|'-i') CATALOG_IMAGE="$2"; shift 1;;
'--verbose'|'-v') VERBOSE=1;;
'--help'|'-h') usage; exit;;
esac
shift 1
@ -44,6 +46,7 @@ usage () {
echo -e "\t-i,--catalog-image Catalog image"
echo -e "\t-c,--channel [default: next] Olm channel to deploy Eclipse Che from"
echo -e "\t-n,--namespace [default: eclipse-che] Kubernetes namepsace to deploy Eclipse Che into"
echo -e "\t-n,--verbose Verbose mode"
echo
echo "Example:"
echo -e "\t$0 -i quay.io/eclipse/eclipse-che-openshift-opm-catalog:next -c next"
@ -51,22 +54,20 @@ usage () {
}
run() {
pushd ${OPERATOR_REPO} || exit 1
if [[ ${CHANNEL} == "next" ]]; then
make install-devworkspace CHANNEL=next
else
make install-devworkspace CHANNEL=fast
fi
if [[ ${CHANNEL} == "next" ]]; then
make install-devworkspace CHANNEL=next VERBOSE=${VERBOSE}
else
make install-devworkspace CHANNEL=fast VERBOSE=${VERBOSE}
fi
make create-namespace NAMESPACE="eclipse-che"
make create-catalogsource NAME="${ECLIPSE_CHE_CATALOG_SOURCE_NAME}" IMAGE="${CATALOG_IMAGE}"
popd
make create-namespace NAMESPACE="eclipse-che" VERBOSE=${VERBOSE}
make create-catalogsource NAME="${ECLIPSE_CHE_CATALOG_SOURCE_NAME}" IMAGE="${CATALOG_IMAGE}" VERBOSE=${VERBOSE}
local bundles=$(listCatalogSourceBundles "${ECLIPSE_CHE_CATALOG_SOURCE_NAME}")
fetchPreviousCSVInfo "${CHANNEL}" "${bundles}"
fetchLatestCSVInfo "${CHANNEL}" "${bundles}"
if [ "${PREVIOUS_CSV_BUNDLE_IMAGE}" == "${LATEST_CSV_BUNDLE_IMAGE}" ]; then
if [[ "${PREVIOUS_CSV_BUNDLE_IMAGE}" == "${LATEST_CSV_BUNDLE_IMAGE}" ]]; then
echo "[ERROR] Nothing to update. OLM channel '${CHANNEL}' contains only one bundle '${LATEST_CSV_BUNDLE_IMAGE}'"
exit 1
fi
@ -75,30 +76,32 @@ run() {
forcePullingOlmImages "${PREVIOUS_CSV_BUNDLE_IMAGE}"
forcePullingOlmImages "${LATEST_CSV_BUNDLE_IMAGE}"
pushd ${OPERATOR_REPO} || exit 1
make create-subscription \
NAME="${ECLIPSE_CHE_SUBSCRIPTION_NAME}" \
PACKAGE_NAME="${ECLIPSE_CHE_PREVIEW_PACKAGE_NAME}" \
CHANNEL="${CHANNEL}" \
SOURCE="${ECLIPSE_CHE_CATALOG_SOURCE_NAME}" \
SOURCE_NAMESPACE="openshift-marketplace" \
INSTALL_PLAN_APPROVAL="Manual" \
STARTING_CSV="${PREVIOUS_CSV_NAME}"
make approve-installplan SUBSCRIPTION_NAME="${ECLIPSE_CHE_SUBSCRIPTION_NAME}"
popd
make create-subscription \
NAME="${ECLIPSE_CHE_SUBSCRIPTION_NAME}" \
NAMESPACE="openshift-operators" \
PACKAGE_NAME="${ECLIPSE_CHE_PREVIEW_PACKAGE_NAME}" \
CHANNEL="${CHANNEL}" \
SOURCE="${ECLIPSE_CHE_CATALOG_SOURCE_NAME}" \
SOURCE_NAMESPACE="openshift-marketplace" \
INSTALL_PLAN_APPROVAL="Manual" \
STARTING_CSV="${PREVIOUS_CSV_NAME}" \
VERBOSE=${VERBOSE}
make approve-installplan SUBSCRIPTION_NAME="${ECLIPSE_CHE_SUBSCRIPTION_NAME}" NAMESPACE="openshift-operators"
sleep 10s
getCheClusterCRFromInstalledCSV | oc apply -n "${NAMESPACE}" -f -
pushd ${OPERATOR_REPO} || exit 1
make wait-eclipseche-version VERSION="$(getCheVersionFromInstalledCSV)" NAMESPACE=${NAMESPACE}
make approve-installplan SUBSCRIPTION_NAME="${ECLIPSE_CHE_SUBSCRIPTION_NAME}"
make wait-eclipseche-version VERSION="$(getCheVersionFromInstalledCSV)" NAMESPACE=${NAMESPACE}
popd
make wait-eclipseche-version VERSION="$(getCheVersionFromInstalledCSV)" NAMESPACE=${NAMESPACE} VERBOSE=${VERBOSE}
make approve-installplan SUBSCRIPTION_NAME="${ECLIPSE_CHE_SUBSCRIPTION_NAME}" NAMESPACE="openshift-operators" VERBOSE=${VERBOSE}
make wait-eclipseche-version VERSION="$(getCheVersionFromInstalledCSV)" NAMESPACE=${NAMESPACE} VERBOSE=${VERBOSE}
}
init "$@"
[[ ${VERBOSE} == 1 ]] && set -x
pushd ${OPERATOR_REPO} >/dev/null
run
popd >/dev/null
echo "[INFO] Done"