github.com/redhat-appstudio/e2e-tests@v0.0.0-20240520140907-9709f6f59323/tests/load-tests/ci-scripts/setup-cluster.sh (about) 1 #!/bin/bash 2 3 set -o nounset 4 set -o errexit 5 set -o pipefail 6 7 # shellcheck disable=SC1090 8 source "/usr/local/ci-secrets/redhat-appstudio-load-test/load-test-scenario.${1:-concurrent}" 9 10 pushd "${2:-.}" 11 12 # Install app-studio and tweak cluster configuration 13 echo "Installing app-studio and tweaking cluster configuration" 14 go mod tidy 15 go mod vendor 16 export MY_GITHUB_ORG QUAY_E2E_ORGANIZATION INFRA_DEPLOYMENTS_ORG INFRA_DEPLOYMENTS_BRANCH TEKTON_PERF_ENABLE_PROFILING TEKTON_PERF_ENABLE_CPU_PROFILING TEKTON_PERF_ENABLE_MEMORY_PROFILING TEKTON_PERF_PROFILE_CPU_PERIOD E2E_PAC_GITHUB_APP_ID E2E_PAC_GITHUB_APP_PRIVATE_KEY ENABLE_SCHEDULING_ON_MASTER_NODES 17 MY_GITHUB_ORG=$(cat /usr/local/ci-secrets/redhat-appstudio-load-test/github-org) 18 QUAY_E2E_ORGANIZATION=$(cat /usr/local/ci-secrets/redhat-appstudio-load-test/quay-org) 19 INFRA_DEPLOYMENTS_ORG=${INFRA_DEPLOYMENTS_ORG:-redhat-appstudio} 20 INFRA_DEPLOYMENTS_BRANCH=${INFRA_DEPLOYMENTS_BRANCH:-main} 21 E2E_PAC_GITHUB_APP_ID="$(cat /usr/local/ci-secrets/redhat-appstudio-load-test/pac-github-app-id)" 22 E2E_PAC_GITHUB_APP_PRIVATE_KEY="$(cat /usr/local/ci-secrets/redhat-appstudio-load-test/pac-github-app-private-key)" 23 ENABLE_SCHEDULING_ON_MASTER_NODES=false 24 25 ## Tweak infra-deployments 26 if [ "${TWEAK_INFRA_DEPLOYMENTS:-false}" == "true" ]; then 27 export TEKTON_PERF_THREADS_PER_CONTROLLER TEKTON_PERF_KUBE_API_QPS TEKTON_PERF_KUBE_API_BURST 28 TEKTON_PERF_THREADS_PER_CONTROLLER=${TEKTON_PERF_THREADS_PER_CONTROLLER:-32} 29 TEKTON_PERF_KUBE_API_QPS=${TEKTON_PERF_KUBE_API_QPS:-50} 30 TEKTON_PERF_KUBE_API_BURST=${TEKTON_PERF_KUBE_API_BURST:-50} 31 echo "Tweaking infra-deployments" 32 infra_deployment_dir=$(mktemp -d) 33 git clone --branch "${INFRA_DEPLOYMENTS_BRANCH}" "https://${GITHUB_TOKEN}@github.com/${INFRA_DEPLOYMENTS_ORG}/infra-deployments.git" "$infra_deployment_dir" 34 INFRA_DEPLOYMENTS_ORG="${MY_GITHUB_ORG}" 35 INFRA_DEPLOYMENTS_BRANCH="tekton-tuning-$(mktemp -u XXXX)" 36 envsubst <tests/load-tests/ci-scripts/tekton-performance/update-tekton-config-performance.yaml >"$infra_deployment_dir/components/pipeline-service/development/update-tekton-config-performance.yaml" 37 pushd "$infra_deployment_dir" 38 git checkout -b "$INFRA_DEPLOYMENTS_BRANCH" upstream/main 39 git add "$infra_deployment_dir/components/pipeline-service/development/update-tekton-config-performance.yaml" 40 git commit -m "WIP: tekton performance tuning" 41 git remote add tekton-tuning "https://${GITHUB_TOKEN}@github.com/$INFRA_DEPLOYMENTS_ORG/infra-deployments.git" 42 git push -u tekton-tuning "$INFRA_DEPLOYMENTS_BRANCH" 43 popd 44 rm -rf "$infra_deployment_dir" 45 fi 46 47 ## Install infra-deployments 48 echo "Installing infra-deployments" 49 echo " GitHub org: ${INFRA_DEPLOYMENTS_ORG}" 50 echo " GitHub branch: ${INFRA_DEPLOYMENTS_BRANCH}" 51 make local/cluster/prepare 52 53 ## Enable profiling in Tekton controller 54 if [ "${TEKTON_PERF_ENABLE_CPU_PROFILING:-}" == "true" ] || [ "${TEKTON_PERF_ENABLE_MEMORY_PROFILING:-}" == "true" ]; then 55 echo "Enabling profiling in Tekton controller" 56 oc patch -n openshift-pipelines cm config-observability --type=json -p='[{"op": "add", "path": "/data/profiling.enable", "value": "true"}]' 57 echo "Enabling profiling in Tekton results watcher" 58 oc patch -n tekton-results cm tekton-results-config-observability --type=json -p='[{"op": "add", "path": "/data/profiling.enable", "value": "true"}]' 59 fi 60 61 ## Patch HAS github secret 62 echo "Patching HAS github tokens" 63 oc patch -n application-service secret has-github-token --type=json -p='[{"op": "add", "path": "/data/tokens", "value": "'"$(base64 -w0 </usr/local/ci-secrets/redhat-appstudio-load-test/github_accounts)"'"}]' 64 oc patch -n application-service secret has-github-token -p '{"data": {"token": null}}' 65 oc rollout restart deployment -n application-service 66 oc rollout status deployment -n application-service -w 67 68 popd