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