diff --git a/.github/workflows/gha-e2e-tests.yaml b/.github/workflows/gha-e2e-tests.yaml index 1b664da7..40714604 100644 --- a/.github/workflows/gha-e2e-tests.yaml +++ b/.github/workflows/gha-e2e-tests.yaml @@ -43,36 +43,12 @@ jobs: application_id: ${{ secrets.E2E_TESTS_ACCESS_APP_ID }} application_private_key: ${{ secrets.E2E_TESTS_ACCESS_PK }} organization: ${{ env.TARGET_ORG }} - - name: Run default setup test run: hack/e2e-test.sh default-setup env: GITHUB_TOKEN: "${{steps.config-token.outputs.token}}" shell: bash - default-setup-v2: - runs-on: ubuntu-latest - timeout-minutes: 20 - if: github.event_name != 'pull_request' || - github.event.pull_request.head.repo.id == github.repository_id - steps: - - uses: actions/checkout@v7 - with: - ref: ${{github.head_ref}} - - - name: Get configure token - id: config-token - uses: peter-murray/workflow-application-token-action@dad2b81e50ce3edeb5f3b7ffbd79f731368bd668 - with: - application_id: ${{ secrets.E2E_TESTS_ACCESS_APP_ID }} - application_private_key: ${{ secrets.E2E_TESTS_ACCESS_PK }} - organization: ${{ env.TARGET_ORG }} - - name: Run default setup test - run: hack/e2e-test.sh default-setup-v2 - env: - GITHUB_TOKEN: "${{steps.config-token.outputs.token}}" - shell: bash - single-namespace-setup: runs-on: ubuntu-latest timeout-minutes: 20 @@ -96,29 +72,6 @@ jobs: GITHUB_TOKEN: "${{steps.config-token.outputs.token}}" shell: bash - single-namespace-setup-v2: - runs-on: ubuntu-latest - timeout-minutes: 20 - if: github.event_name != 'pull_request' || - github.event.pull_request.head.repo.id == github.repository_id - steps: - - uses: actions/checkout@v7 - with: - ref: ${{github.head_ref}} - - - name: Get configure token - id: config-token - uses: peter-murray/workflow-application-token-action@dad2b81e50ce3edeb5f3b7ffbd79f731368bd668 - with: - application_id: ${{ secrets.E2E_TESTS_ACCESS_APP_ID }} - application_private_key: ${{ secrets.E2E_TESTS_ACCESS_PK }} - organization: ${{ env.TARGET_ORG }} - - name: Run single namespace setup test - run: hack/e2e-test.sh single-namespace-setup-v2 - env: - GITHUB_TOKEN: "${{steps.config-token.outputs.token}}" - shell: bash - dind-mode-setup: runs-on: ubuntu-latest timeout-minutes: 20 @@ -142,29 +95,6 @@ jobs: GITHUB_TOKEN: "${{steps.config-token.outputs.token}}" shell: bash - dind-mode-setup-v2: - runs-on: ubuntu-latest - timeout-minutes: 20 - if: github.event_name != 'pull_request' || - github.event.pull_request.head.repo.id == github.repository_id - steps: - - uses: actions/checkout@v7 - with: - ref: ${{github.head_ref}} - - - name: Get configure token - id: config-token - uses: peter-murray/workflow-application-token-action@dad2b81e50ce3edeb5f3b7ffbd79f731368bd668 - with: - application_id: ${{ secrets.E2E_TESTS_ACCESS_APP_ID }} - application_private_key: ${{ secrets.E2E_TESTS_ACCESS_PK }} - organization: ${{ env.TARGET_ORG }} - - name: Run dind mode setup test - run: hack/e2e-test.sh dind-mode-setup-v2 - env: - GITHUB_TOKEN: "${{steps.config-token.outputs.token}}" - shell: bash - kubernetes-mode-setup: runs-on: ubuntu-latest timeout-minutes: 20 @@ -188,29 +118,6 @@ jobs: GITHUB_TOKEN: "${{steps.config-token.outputs.token}}" shell: bash - kubernetes-mode-setup-v2: - runs-on: ubuntu-latest - timeout-minutes: 20 - if: github.event_name != 'pull_request' || - github.event.pull_request.head.repo.id == github.repository_id - steps: - - uses: actions/checkout@v7 - with: - ref: ${{github.head_ref}} - - - name: Get configure token - id: config-token - uses: peter-murray/workflow-application-token-action@dad2b81e50ce3edeb5f3b7ffbd79f731368bd668 - with: - application_id: ${{ secrets.E2E_TESTS_ACCESS_APP_ID }} - application_private_key: ${{ secrets.E2E_TESTS_ACCESS_PK }} - organization: ${{ env.TARGET_ORG }} - - name: Run kubernetes mode setup test - run: hack/e2e-test.sh kubernetes-mode-setup-v2 - env: - GITHUB_TOKEN: "${{steps.config-token.outputs.token}}" - shell: bash - auth-proxy-setup: runs-on: ubuntu-latest timeout-minutes: 20 @@ -228,31 +135,8 @@ jobs: application_id: ${{ secrets.E2E_TESTS_ACCESS_APP_ID }} application_private_key: ${{ secrets.E2E_TESTS_ACCESS_PK }} organization: ${{ env.TARGET_ORG }} - - name: Run single namespace setup test - run: hack/e2e-test.sh single-namespace-setup - env: - GITHUB_TOKEN: "${{steps.config-token.outputs.token}}" - shell: bash - - auth-proxy-setup-v2: - runs-on: ubuntu-latest - timeout-minutes: 20 - if: github.event_name != 'pull_request' || - github.event.pull_request.head.repo.id == github.repository_id - steps: - - uses: actions/checkout@v7 - with: - ref: ${{github.head_ref}} - - - name: Get configure token - id: config-token - uses: peter-murray/workflow-application-token-action@dad2b81e50ce3edeb5f3b7ffbd79f731368bd668 - with: - application_id: ${{ secrets.E2E_TESTS_ACCESS_APP_ID }} - application_private_key: ${{ secrets.E2E_TESTS_ACCESS_PK }} - organization: ${{ env.TARGET_ORG }} - - name: Run single namespace setup test - run: hack/e2e-test.sh single-namespace-setup-v2 + - name: Run auth proxy setup test + run: hack/e2e-test.sh auth-proxy-setup env: GITHUB_TOKEN: "${{steps.config-token.outputs.token}}" shell: bash @@ -280,29 +164,6 @@ jobs: GITHUB_TOKEN: "${{steps.config-token.outputs.token}}" shell: bash - anonymous-proxy-setup-v2: - runs-on: ubuntu-latest - timeout-minutes: 20 - if: github.event_name != 'pull_request' || - github.event.pull_request.head.repo.id == github.repository_id - steps: - - uses: actions/checkout@v7 - with: - ref: ${{github.head_ref}} - - - name: Get configure token - id: config-token - uses: peter-murray/workflow-application-token-action@dad2b81e50ce3edeb5f3b7ffbd79f731368bd668 - with: - application_id: ${{ secrets.E2E_TESTS_ACCESS_APP_ID }} - application_private_key: ${{ secrets.E2E_TESTS_ACCESS_PK }} - organization: ${{ env.TARGET_ORG }} - - name: Run anonymous proxy setup test - run: hack/e2e-test.sh anonymous-proxy-setup-v2 - env: - GITHUB_TOKEN: "${{steps.config-token.outputs.token}}" - shell: bash - self-signed-ca-setup: runs-on: ubuntu-latest timeout-minutes: 20 @@ -326,29 +187,6 @@ jobs: GITHUB_TOKEN: "${{steps.config-token.outputs.token}}" shell: bash - self-signed-ca-setup-v2: - runs-on: ubuntu-latest - timeout-minutes: 20 - if: github.event_name != 'pull_request' || - github.event.pull_request.head.repo.id == github.repository_id - steps: - - uses: actions/checkout@v7 - with: - ref: ${{github.head_ref}} - - - name: Get configure token - id: config-token - uses: peter-murray/workflow-application-token-action@dad2b81e50ce3edeb5f3b7ffbd79f731368bd668 - with: - application_id: ${{ secrets.E2E_TESTS_ACCESS_APP_ID }} - application_private_key: ${{ secrets.E2E_TESTS_ACCESS_PK }} - organization: ${{ env.TARGET_ORG }} - - name: Run self signed CA setup test - run: hack/e2e-test.sh self-signed-ca-setup-v2 - env: - GITHUB_TOKEN: "${{steps.config-token.outputs.token}}" - shell: bash - update-gha-runner-scale-set-tests: runs-on: ubuntu-latest timeout-minutes: 20 @@ -372,29 +210,6 @@ jobs: GITHUB_TOKEN: "${{steps.config-token.outputs.token}}" shell: bash - update-gha-runner-scale-set-tests-v2: - runs-on: ubuntu-latest - timeout-minutes: 20 - if: github.event_name != 'pull_request' || - github.event.pull_request.head.repo.id == github.repository_id - steps: - - uses: actions/checkout@v7 - with: - ref: ${{github.head_ref}} - - - name: Get configure token - id: config-token - uses: peter-murray/workflow-application-token-action@dad2b81e50ce3edeb5f3b7ffbd79f731368bd668 - with: - application_id: ${{ secrets.E2E_TESTS_ACCESS_APP_ID }} - application_private_key: ${{ secrets.E2E_TESTS_ACCESS_PK }} - organization: ${{ env.TARGET_ORG }} - - name: Run update strategy test - run: hack/e2e-test.sh update-gha-runner-scale-set-v2 - env: - GITHUB_TOKEN: "${{steps.config-token.outputs.token}}" - shell: bash - init-with-min-runners: runs-on: ubuntu-latest timeout-minutes: 20 @@ -417,26 +232,3 @@ jobs: env: GITHUB_TOKEN: "${{steps.config-token.outputs.token}}" shell: bash - - init-with-min-runners-v2: - runs-on: ubuntu-latest - timeout-minutes: 20 - if: github.event_name != 'pull_request' || - github.event.pull_request.head.repo.id == github.repository_id - steps: - - uses: actions/checkout@v7 - with: - ref: ${{github.head_ref}} - - - name: Get configure token - id: config-token - uses: peter-murray/workflow-application-token-action@dad2b81e50ce3edeb5f3b7ffbd79f731368bd668 - with: - application_id: ${{ secrets.E2E_TESTS_ACCESS_APP_ID }} - application_private_key: ${{ secrets.E2E_TESTS_ACCESS_PK }} - organization: ${{ env.TARGET_ORG }} - - name: Run init with min runners test - run: hack/e2e-test.sh init-with-min-runners-v2 - env: - GITHUB_TOKEN: "${{steps.config-token.outputs.token}}" - shell: bash diff --git a/test/actions.github.com/anonymous-proxy-setup-v2.test.sh b/test/actions.github.com/anonymous-proxy-setup-v2.test.sh deleted file mode 100755 index 696e1017..00000000 --- a/test/actions.github.com/anonymous-proxy-setup-v2.test.sh +++ /dev/null @@ -1,86 +0,0 @@ -#!/bin/bash - -set -euo pipefail - -DIR="$(realpath "$(dirname "${BASH_SOURCE[0]}")")" - -ROOT_DIR="$(realpath "${DIR}/../..")" - -source "${DIR}/helper.sh" - -export VERSION="$(chart_version "${ROOT_DIR}/charts/gha-runner-scale-set-controller-experimental/Chart.yaml")" - -SCALE_SET_NAME="anonymous-proxy-$(date +'%M%S')$(((RANDOM + 100) % 100 + 1))" -SCALE_SET_NAMESPACE="arc-runners" -WORKFLOW_FILE="arc-test-workflow.yaml" -ARC_NAME="arc" -ARC_NAMESPACE="arc-systems" - -function install_arc() { - echo "Installing ARC" - helm install "${ARC_NAME}" \ - --namespace "${ARC_NAMESPACE}" \ - --create-namespace \ - --set controller.manager.container.image="${IMAGE_NAME}:${IMAGE_TAG}" \ - "${ROOT_DIR}/charts/gha-runner-scale-set-controller-experimental" \ - --debug - - if ! NAME="${ARC_NAME}" NAMESPACE="${ARC_NAMESPACE}" wait_for_arc; then - NAMESPACE="${ARC_NAMESPACE}" log_arc - return 1 - fi -} - -function install_squid() { - echo "Starting squid-proxy" - kubectl apply -f "${DIR}/anonymous-proxy-setup.squid.yaml" -} - -function install_scale_set() { - echo "Installing scale set ${SCALE_SET_NAMESPACE}/${SCALE_SET_NAME}" - - helm install "${SCALE_SET_NAME}" \ - --namespace "${SCALE_SET_NAMESPACE}" \ - --create-namespace \ - --set controllerServiceAccount.name="${ARC_NAME}-gha-rs-controller" \ - --set controllerServiceAccount.namespace="${ARC_NAMESPACE}" \ - --set auth.url="https://github.com/${TARGET_ORG}/${TARGET_REPO}" \ - --set auth.githubToken="${GITHUB_TOKEN}" \ - --set proxy.https.url="http://squid.default.svc.cluster.local:3128" \ - --set "proxy.noProxy[0]=10.96.0.1:443" \ - "${ROOT_DIR}/charts/gha-runner-scale-set-experimental" - - if ! NAME="${SCALE_SET_NAME}" NAMESPACE="${ARC_NAMESPACE}" wait_for_scale_set; then - NAMESPACE="${ARC_NAMESPACE}" log_arc - return 1 - fi -} - -function main() { - local failed=() - - build_image - create_cluster - - install_arc - install_squid - - install_scale_set || { - echo "Scale set installation failed" - NAMESPACE="${ARC_NAMESPACE}" log_arc - delete_cluster - exit 1 - } - - WORKFLOW_FILE="${WORKFLOW_FILE}" SCALE_SET_NAME="${SCALE_SET_NAME}" run_workflow || failed+=("run_workflow") - - INSTALLATION_NAME="${SCALE_SET_NAME}" NAMESPACE="${SCALE_SET_NAMESPACE}" cleanup_scale_set || failed+=("cleanup_scale_set") - - NAMESPACE="${ARC_NAMESPACE}" log_arc || failed+=("log_arc") - - delete_cluster - - print_results "${failed[@]}" -} - -main diff --git a/test/actions.github.com/anonymous-proxy-setup.test.sh b/test/actions.github.com/anonymous-proxy-setup.test.sh index ff45710c..696e1017 100755 --- a/test/actions.github.com/anonymous-proxy-setup.test.sh +++ b/test/actions.github.com/anonymous-proxy-setup.test.sh @@ -8,7 +8,7 @@ ROOT_DIR="$(realpath "${DIR}/../..")" source "${DIR}/helper.sh" -export VERSION="$(chart_version "${ROOT_DIR}/charts/gha-runner-scale-set-controller/Chart.yaml")" +export VERSION="$(chart_version "${ROOT_DIR}/charts/gha-runner-scale-set-controller-experimental/Chart.yaml")" SCALE_SET_NAME="anonymous-proxy-$(date +'%M%S')$(((RANDOM + 100) % 100 + 1))" SCALE_SET_NAMESPACE="arc-runners" @@ -21,9 +21,8 @@ function install_arc() { helm install "${ARC_NAME}" \ --namespace "${ARC_NAMESPACE}" \ --create-namespace \ - --set image.repository="${IMAGE_NAME}" \ - --set image.tag="${IMAGE_TAG}" \ - "${ROOT_DIR}/charts/gha-runner-scale-set-controller" \ + --set controller.manager.container.image="${IMAGE_NAME}:${IMAGE_TAG}" \ + "${ROOT_DIR}/charts/gha-runner-scale-set-controller-experimental" \ --debug if ! NAME="${ARC_NAME}" NAMESPACE="${ARC_NAMESPACE}" wait_for_arc; then @@ -43,12 +42,13 @@ function install_scale_set() { helm install "${SCALE_SET_NAME}" \ --namespace "${SCALE_SET_NAMESPACE}" \ --create-namespace \ - --set githubConfigUrl="https://github.com/${TARGET_ORG}/${TARGET_REPO}" \ - --set githubConfigSecret.github_token="${GITHUB_TOKEN}" \ + --set controllerServiceAccount.name="${ARC_NAME}-gha-rs-controller" \ + --set controllerServiceAccount.namespace="${ARC_NAMESPACE}" \ + --set auth.url="https://github.com/${TARGET_ORG}/${TARGET_REPO}" \ + --set auth.githubToken="${GITHUB_TOKEN}" \ --set proxy.https.url="http://squid.default.svc.cluster.local:3128" \ --set "proxy.noProxy[0]=10.96.0.1:443" \ - "${ROOT_DIR}/charts/gha-runner-scale-set" \ - --debug + "${ROOT_DIR}/charts/gha-runner-scale-set-experimental" if ! NAME="${SCALE_SET_NAME}" NAMESPACE="${ARC_NAMESPACE}" wait_for_scale_set; then NAMESPACE="${ARC_NAMESPACE}" log_arc diff --git a/test/actions.github.com/auth-proxy-setup-v2.test.sh b/test/actions.github.com/auth-proxy-setup-v2.test.sh deleted file mode 100755 index 630c5954..00000000 --- a/test/actions.github.com/auth-proxy-setup-v2.test.sh +++ /dev/null @@ -1,101 +0,0 @@ -#!/bin/bash - -set -euo pipefail - -DIR="$(realpath "$(dirname "${BASH_SOURCE[0]}")")" - -ROOT_DIR="$(realpath "${DIR}/../..")" - -source "${DIR}/helper.sh" - -export VERSION="$(chart_version "${ROOT_DIR}/charts/gha-runner-scale-set-controller-experimental/Chart.yaml")" - -SCALE_SET_NAME="default-$(date +'%M%S')$(((RANDOM + 100) % 100 + 1))" -SCALE_SET_NAMESPACE="arc-runners" -WORKFLOW_FILE="arc-test-workflow.yaml" -ARC_NAME="arc" -ARC_NAMESPACE="arc-systems" - -function install_arc() { - install_openebs || { - echo "OpenEBS installation failed" - return 1 - } - - echo "Installing ARC" - helm install "${ARC_NAME}" \ - --namespace "${ARC_NAMESPACE}" \ - --create-namespace \ - --set controller.manager.container.image="${IMAGE_NAME}:${IMAGE_TAG}" \ - "${ROOT_DIR}/charts/gha-runner-scale-set-controller-experimental" \ - --debug - - if ! NAME="${ARC_NAME}" NAMESPACE="${ARC_NAMESPACE}" wait_for_arc; then - NAMESPACE="${ARC_NAMESPACE}" log_arc - return 1 - fi -} - -function install_squid() { - echo "Starting squid-proxy" - kubectl apply -f "${DIR}/auth-proxy-setup.squid.yaml" - - echo "Creating scale set namespace" - kubectl create namespace "${SCALE_SET_NAMESPACE}" || true - - echo "Creating squid proxy secret" - kubectl create secret generic proxy-auth \ - --namespace=arc-runners \ - --from-literal=username=github \ - --from-literal=password='actions' -} - -function install_scale_set() { - echo "Installing scale set ${SCALE_SET_NAMESPACE}/${SCALE_SET_NAME}" - helm install "${SCALE_SET_NAME}" \ - --namespace "${SCALE_SET_NAMESPACE}" \ - --create-namespace \ - --set controllerServiceAccount.name="${ARC_NAME}-gha-rs-controller" \ - --set controllerServiceAccount.namespace="${ARC_NAMESPACE}" \ - --set auth.url="https://github.com/${TARGET_ORG}/${TARGET_REPO}" \ - --set auth.githubToken="${GITHUB_TOKEN}" \ - --set proxy.https.url="http://squid.default.svc.cluster.local:3128" \ - --set proxy.https.credentialSecretRef="proxy-auth" \ - --set "proxy.noProxy[0]=10.96.0.1:443" \ - "${ROOT_DIR}/charts/gha-runner-scale-set-experimental" \ - --version="${VERSION}" - - if ! NAME="${SCALE_SET_NAME}" NAMESPACE="${ARC_NAMESPACE}" wait_for_scale_set; then - NAMESPACE="${ARC_NAMESPACE}" log_arc - return 1 - fi -} - -function main() { - local failed=() - - build_image - create_cluster - - install_arc - install_squid - - install_scale_set || { - echo "Scale set installation failed" - NAMESPACE="${ARC_NAMESPACE}" log_arc - delete_cluster - exit 1 - } - - WORKFLOW_FILE="${WORKFLOW_FILE}" SCALE_SET_NAME="${SCALE_SET_NAME}" run_workflow || failed+=("run_workflow") - - INSTALLATION_NAME="${SCALE_SET_NAME}" NAMESPACE="${SCALE_SET_NAMESPACE}" cleanup_scale_set || failed+=("cleanup_scale_set") - - NAMESPACE="${ARC_NAMESPACE}" log_arc || failed+=("log_arc") - - delete_cluster - - print_results "${failed[@]}" -} - -main diff --git a/test/actions.github.com/auth-proxy-setup.test.sh b/test/actions.github.com/auth-proxy-setup.test.sh index 179748de..630c5954 100755 --- a/test/actions.github.com/auth-proxy-setup.test.sh +++ b/test/actions.github.com/auth-proxy-setup.test.sh @@ -8,7 +8,7 @@ ROOT_DIR="$(realpath "${DIR}/../..")" source "${DIR}/helper.sh" -export VERSION="$(chart_version "${ROOT_DIR}/charts/gha-runner-scale-set-controller/Chart.yaml")" +export VERSION="$(chart_version "${ROOT_DIR}/charts/gha-runner-scale-set-controller-experimental/Chart.yaml")" SCALE_SET_NAME="default-$(date +'%M%S')$(((RANDOM + 100) % 100 + 1))" SCALE_SET_NAMESPACE="arc-runners" @@ -26,9 +26,8 @@ function install_arc() { helm install "${ARC_NAME}" \ --namespace "${ARC_NAMESPACE}" \ --create-namespace \ - --set image.repository="${IMAGE_NAME}" \ - --set image.tag="${IMAGE_TAG}" \ - "${ROOT_DIR}/charts/gha-runner-scale-set-controller" \ + --set controller.manager.container.image="${IMAGE_NAME}:${IMAGE_TAG}" \ + "${ROOT_DIR}/charts/gha-runner-scale-set-controller-experimental" \ --debug if ! NAME="${ARC_NAME}" NAMESPACE="${ARC_NAMESPACE}" wait_for_arc; then @@ -56,14 +55,15 @@ function install_scale_set() { helm install "${SCALE_SET_NAME}" \ --namespace "${SCALE_SET_NAMESPACE}" \ --create-namespace \ - --set githubConfigUrl="https://github.com/${TARGET_ORG}/${TARGET_REPO}" \ - --set githubConfigSecret.github_token="${GITHUB_TOKEN}" \ + --set controllerServiceAccount.name="${ARC_NAME}-gha-rs-controller" \ + --set controllerServiceAccount.namespace="${ARC_NAMESPACE}" \ + --set auth.url="https://github.com/${TARGET_ORG}/${TARGET_REPO}" \ + --set auth.githubToken="${GITHUB_TOKEN}" \ --set proxy.https.url="http://squid.default.svc.cluster.local:3128" \ --set proxy.https.credentialSecretRef="proxy-auth" \ --set "proxy.noProxy[0]=10.96.0.1:443" \ - "${ROOT_DIR}/charts/gha-runner-scale-set" \ - --version="${VERSION}" \ - --debug + "${ROOT_DIR}/charts/gha-runner-scale-set-experimental" \ + --version="${VERSION}" if ! NAME="${SCALE_SET_NAME}" NAMESPACE="${ARC_NAMESPACE}" wait_for_scale_set; then NAMESPACE="${ARC_NAMESPACE}" log_arc diff --git a/test/actions.github.com/custom-label-setup-v2.test.sh b/test/actions.github.com/custom-label-setup-v2.test.sh deleted file mode 100755 index c6485520..00000000 --- a/test/actions.github.com/custom-label-setup-v2.test.sh +++ /dev/null @@ -1,113 +0,0 @@ -#!/bin/bash - -set -euo pipefail - -DIR="$(realpath "$(dirname "${BASH_SOURCE[0]}")")" - -ROOT_DIR="$(realpath "${DIR}/../..")" - -source "${DIR}/helper.sh" - -VERSION="$(chart_version "${ROOT_DIR}/charts/gha-runner-scale-set-controller-experimental/Chart.yaml")" || exit 1 -export VERSION - -SCALE_SET_NAME="custom-label-$(date +'%M%S')$(((RANDOM + 100) % 100 + 1))" -SCALE_SET_NAMESPACE="arc-runners" -SCALE_SET_LABEL="custom-$(date +'%s')${RANDOM}" -WORKFLOW_FILE="arc-custom-label.yaml" -ARC_NAME="arc" -ARC_NAMESPACE="arc-systems" - -function install_arc() { - echo "Installing ARC" - helm install "${ARC_NAME}" \ - --namespace "${ARC_NAMESPACE}" \ - --create-namespace \ - --set controller.manager.container.image="${IMAGE_NAME}:${IMAGE_TAG}" \ - "${ROOT_DIR}/charts/gha-runner-scale-set-controller-experimental" \ - --debug - - if ! NAME="${ARC_NAME}" NAMESPACE="${ARC_NAMESPACE}" wait_for_arc; then - NAMESPACE="${ARC_NAMESPACE}" log_arc - return 1 - fi -} - -function install_scale_set() { - echo "Installing scale set ${SCALE_SET_NAMESPACE}/${SCALE_SET_NAME} with label ${SCALE_SET_LABEL}" - helm install "${SCALE_SET_NAME}" \ - --namespace "${SCALE_SET_NAMESPACE}" \ - --create-namespace \ - --set controllerServiceAccount.name="${ARC_NAME}-gha-rs-controller" \ - --set controllerServiceAccount.namespace="${ARC_NAMESPACE}" \ - --set auth.url="https://github.com/${TARGET_ORG}/${TARGET_REPO}" \ - --set auth.githubToken="${GITHUB_TOKEN}" \ - --set scaleset.labels[0]="${SCALE_SET_LABEL}" \ - "${ROOT_DIR}/charts/gha-runner-scale-set-experimental" \ - --version="${VERSION}" - - if ! NAME="${SCALE_SET_NAME}" NAMESPACE="${ARC_NAMESPACE}" wait_for_scale_set; then - NAMESPACE="${ARC_NAMESPACE}" log_arc - return 1 - fi -} - -function verify_scale_set_label() { - local actual_label - actual_label="$(kubectl get autoscalingrunnersets.actions.github.com -n "${SCALE_SET_NAMESPACE}" -l app.kubernetes.io/instance="${SCALE_SET_NAME}" -o jsonpath='{.items[0].spec.runnerScaleSetLabels[0]}')" - if [[ "${actual_label}" != "${SCALE_SET_LABEL}" ]]; then - echo "Expected scale set label '${SCALE_SET_LABEL}', got '${actual_label}'" >&2 - return 1 - fi -} - -function run_custom_label_workflow() { - local repo="${TARGET_ORG}/${TARGET_REPO}" - local queue_time - queue_time="$(date -u +%FT%TZ)" - - gh workflow run -R "${repo}" "${WORKFLOW_FILE}" \ - -f scaleset-label="${SCALE_SET_LABEL}" || return 1 - - local count=0 - local run_id= - while true; do - if [[ "${count}" -ge 12 ]]; then - echo "Timeout waiting for custom label workflow to start" >&2 - return 1 - fi - - run_id="$(gh run list -R "${repo}" --workflow "${WORKFLOW_FILE}" --created ">${queue_time}" --json databaseId --jq '.[0].databaseId' | head -n1)" - if [[ -n "${run_id}" ]]; then - break - fi - - sleep 5 - count=$((count + 1)) - done - - gh run watch "${run_id}" -R "${repo}" --exit-status -} - -function main() { - local failed=() - - build_image - create_cluster - - install_arc - install_scale_set - verify_scale_set_label || failed+=("verify_scale_set_label") - - run_custom_label_workflow || failed+=("run_custom_label_workflow") - - INSTALLATION_NAME="${SCALE_SET_NAME}" NAMESPACE="${SCALE_SET_NAMESPACE}" cleanup_scale_set || failed+=("cleanup_scale_set") - - NAMESPACE="${ARC_NAMESPACE}" log_arc || failed+=("log_arc") - - delete_cluster - - print_results "${failed[@]}" -} - -main diff --git a/test/actions.github.com/custom-label-setup.test.sh b/test/actions.github.com/custom-label-setup.test.sh index 8295ec3e..c6485520 100755 --- a/test/actions.github.com/custom-label-setup.test.sh +++ b/test/actions.github.com/custom-label-setup.test.sh @@ -8,7 +8,8 @@ ROOT_DIR="$(realpath "${DIR}/../..")" source "${DIR}/helper.sh" -export VERSION="$(chart_version "${ROOT_DIR}/charts/gha-runner-scale-set-controller/Chart.yaml")" +VERSION="$(chart_version "${ROOT_DIR}/charts/gha-runner-scale-set-controller-experimental/Chart.yaml")" || exit 1 +export VERSION SCALE_SET_NAME="custom-label-$(date +'%M%S')$(((RANDOM + 100) % 100 + 1))" SCALE_SET_NAMESPACE="arc-runners" @@ -22,9 +23,8 @@ function install_arc() { helm install "${ARC_NAME}" \ --namespace "${ARC_NAMESPACE}" \ --create-namespace \ - --set image.repository="${IMAGE_NAME}" \ - --set image.tag="${IMAGE_TAG}" \ - "${ROOT_DIR}/charts/gha-runner-scale-set-controller" \ + --set controller.manager.container.image="${IMAGE_NAME}:${IMAGE_TAG}" \ + "${ROOT_DIR}/charts/gha-runner-scale-set-controller-experimental" \ --debug if ! NAME="${ARC_NAME}" NAMESPACE="${ARC_NAMESPACE}" wait_for_arc; then @@ -38,12 +38,13 @@ function install_scale_set() { helm install "${SCALE_SET_NAME}" \ --namespace "${SCALE_SET_NAMESPACE}" \ --create-namespace \ - --set githubConfigUrl="https://github.com/${TARGET_ORG}/${TARGET_REPO}" \ - --set githubConfigSecret.github_token="${GITHUB_TOKEN}" \ - --set scaleSetLabels[0]="${SCALE_SET_LABEL}" \ - "${ROOT_DIR}/charts/gha-runner-scale-set" \ - --version="${VERSION}" \ - --debug + --set controllerServiceAccount.name="${ARC_NAME}-gha-rs-controller" \ + --set controllerServiceAccount.namespace="${ARC_NAMESPACE}" \ + --set auth.url="https://github.com/${TARGET_ORG}/${TARGET_REPO}" \ + --set auth.githubToken="${GITHUB_TOKEN}" \ + --set scaleset.labels[0]="${SCALE_SET_LABEL}" \ + "${ROOT_DIR}/charts/gha-runner-scale-set-experimental" \ + --version="${VERSION}" if ! NAME="${SCALE_SET_NAME}" NAMESPACE="${ARC_NAMESPACE}" wait_for_scale_set; then NAMESPACE="${ARC_NAMESPACE}" log_arc diff --git a/test/actions.github.com/default-setup-v2.test.sh b/test/actions.github.com/default-setup-v2.test.sh deleted file mode 100755 index 921165fd..00000000 --- a/test/actions.github.com/default-setup-v2.test.sh +++ /dev/null @@ -1,73 +0,0 @@ -#!/bin/bash - -set -euo pipefail - -DIR="$(realpath "$(dirname "${BASH_SOURCE[0]}")")" - -ROOT_DIR="$(realpath "${DIR}/../..")" - -source "${DIR}/helper.sh" - -VERSION="$(chart_version "${ROOT_DIR}/charts/gha-runner-scale-set-controller-experimental/Chart.yaml")" || exit 1 -export VERSION - -SCALE_SET_NAME="default-$(date +'%M%S')$(((RANDOM + 100) % 100 + 1))" -SCALE_SET_NAMESPACE="arc-runners" -WORKFLOW_FILE="arc-test-workflow.yaml" -ARC_NAME="arc" -ARC_NAMESPACE="arc-systems" - -function install_arc() { - echo "Installing ARC" - helm install "${ARC_NAME}" \ - --namespace "${ARC_NAMESPACE}" \ - --create-namespace \ - --set controller.manager.container.image="${IMAGE_NAME}:${IMAGE_TAG}" \ - "${ROOT_DIR}/charts/gha-runner-scale-set-controller-experimental" \ - --debug - - if ! NAME="${ARC_NAME}" NAMESPACE="${ARC_NAMESPACE}" wait_for_arc; then - NAMESPACE="${ARC_NAMESPACE}" log_arc - return 1 - fi -} - -function install_scale_set() { - echo "Installing scale set ${SCALE_SET_NAMESPACE}/${SCALE_SET_NAME}" - helm install "${SCALE_SET_NAME}" \ - --namespace "${SCALE_SET_NAMESPACE}" \ - --create-namespace \ - --set controllerServiceAccount.name="${ARC_NAME}-gha-rs-controller" \ - --set controllerServiceAccount.namespace="${ARC_NAMESPACE}" \ - --set auth.url="https://github.com/${TARGET_ORG}/${TARGET_REPO}" \ - --set auth.githubToken="${GITHUB_TOKEN}" \ - "${ROOT_DIR}/charts/gha-runner-scale-set-experimental" \ - --version="${VERSION}" - - if ! NAME="${SCALE_SET_NAME}" NAMESPACE="${ARC_NAMESPACE}" wait_for_scale_set; then - NAMESPACE="${ARC_NAMESPACE}" log_arc - return 1 - fi -} - -function main() { - local failed=() - - build_image - create_cluster - - install_arc - install_scale_set - - WORKFLOW_FILE="${WORKFLOW_FILE}" SCALE_SET_NAME="${SCALE_SET_NAME}" run_workflow || failed+=("run_workflow") - - INSTALLATION_NAME="${SCALE_SET_NAME}" NAMESPACE="${SCALE_SET_NAMESPACE}" cleanup_scale_set || failed+=("cleanup_scale_set") - - NAMESPACE="${ARC_NAMESPACE}" log_arc || failed+=("log_arc") - - delete_cluster - - print_results "${failed[@]}" -} - -main diff --git a/test/actions.github.com/default-setup.test.sh b/test/actions.github.com/default-setup.test.sh index 9a92a260..921165fd 100755 --- a/test/actions.github.com/default-setup.test.sh +++ b/test/actions.github.com/default-setup.test.sh @@ -8,7 +8,8 @@ ROOT_DIR="$(realpath "${DIR}/../..")" source "${DIR}/helper.sh" -export VERSION="$(chart_version "${ROOT_DIR}/charts/gha-runner-scale-set-controller/Chart.yaml")" +VERSION="$(chart_version "${ROOT_DIR}/charts/gha-runner-scale-set-controller-experimental/Chart.yaml")" || exit 1 +export VERSION SCALE_SET_NAME="default-$(date +'%M%S')$(((RANDOM + 100) % 100 + 1))" SCALE_SET_NAMESPACE="arc-runners" @@ -21,9 +22,8 @@ function install_arc() { helm install "${ARC_NAME}" \ --namespace "${ARC_NAMESPACE}" \ --create-namespace \ - --set image.repository="${IMAGE_NAME}" \ - --set image.tag="${IMAGE_TAG}" \ - "${ROOT_DIR}/charts/gha-runner-scale-set-controller" \ + --set controller.manager.container.image="${IMAGE_NAME}:${IMAGE_TAG}" \ + "${ROOT_DIR}/charts/gha-runner-scale-set-controller-experimental" \ --debug if ! NAME="${ARC_NAME}" NAMESPACE="${ARC_NAMESPACE}" wait_for_arc; then @@ -37,11 +37,12 @@ function install_scale_set() { helm install "${SCALE_SET_NAME}" \ --namespace "${SCALE_SET_NAMESPACE}" \ --create-namespace \ - --set githubConfigUrl="https://github.com/${TARGET_ORG}/${TARGET_REPO}" \ - --set githubConfigSecret.github_token="${GITHUB_TOKEN}" \ - "${ROOT_DIR}/charts/gha-runner-scale-set" \ - --version="${VERSION}" \ - --debug + --set controllerServiceAccount.name="${ARC_NAME}-gha-rs-controller" \ + --set controllerServiceAccount.namespace="${ARC_NAMESPACE}" \ + --set auth.url="https://github.com/${TARGET_ORG}/${TARGET_REPO}" \ + --set auth.githubToken="${GITHUB_TOKEN}" \ + "${ROOT_DIR}/charts/gha-runner-scale-set-experimental" \ + --version="${VERSION}" if ! NAME="${SCALE_SET_NAME}" NAMESPACE="${ARC_NAMESPACE}" wait_for_scale_set; then NAMESPACE="${ARC_NAMESPACE}" log_arc diff --git a/test/actions.github.com/dind-mode-setup-v2.test.sh b/test/actions.github.com/dind-mode-setup-v2.test.sh deleted file mode 100755 index 0e1a9ff6..00000000 --- a/test/actions.github.com/dind-mode-setup-v2.test.sh +++ /dev/null @@ -1,73 +0,0 @@ -#!/bin/bash - -set -euo pipefail - -DIR="$(realpath "$(dirname "${BASH_SOURCE[0]}")")" - -ROOT_DIR="$(realpath "${DIR}/../..")" - -source "${DIR}/helper.sh" - -export VERSION="$(chart_version "${ROOT_DIR}/charts/gha-runner-scale-set-controller-experimental/Chart.yaml")" - -SCALE_SET_NAME="default-$(date +'%M%S')$(((RANDOM + 100) % 100 + 1))" -SCALE_SET_NAMESPACE="arc-runners" -WORKFLOW_FILE="arc-test-dind-workflow.yaml" -ARC_NAME="arc" -ARC_NAMESPACE="arc-systems" - -function install_arc() { - echo "Installing ARC" - helm install "${ARC_NAME}" \ - --namespace "${ARC_NAMESPACE}" \ - --create-namespace \ - --set controller.manager.container.image="${IMAGE_NAME}:${IMAGE_TAG}" \ - "${ROOT_DIR}/charts/gha-runner-scale-set-controller-experimental" \ - --debug - - if ! NAME="${ARC_NAME}" NAMESPACE="${ARC_NAMESPACE}" wait_for_arc; then - NAMESPACE="${ARC_NAMESPACE}" log_arc - return 1 - fi -} - -function install_scale_set() { - echo "Installing scale set ${SCALE_SET_NAMESPACE}/${SCALE_SET_NAME}" - helm install "${SCALE_SET_NAME}" \ - --namespace "${SCALE_SET_NAMESPACE}" \ - --create-namespace \ - --set controllerServiceAccount.name="${ARC_NAME}-gha-rs-controller" \ - --set controllerServiceAccount.namespace="${ARC_NAMESPACE}" \ - --set auth.url="https://github.com/${TARGET_ORG}/${TARGET_REPO}" \ - --set auth.githubToken="${GITHUB_TOKEN}" \ - --set runner.mode="dind" \ - "${ROOT_DIR}/charts/gha-runner-scale-set-experimental" \ - --version="${VERSION}" - - if ! NAME="${SCALE_SET_NAME}" NAMESPACE="${ARC_NAMESPACE}" wait_for_scale_set; then - NAMESPACE="${ARC_NAMESPACE}" log_arc - return 1 - fi -} - -function main() { - local failed=() - - build_image - create_cluster - - install_arc - install_scale_set - - WORKFLOW_FILE="${WORKFLOW_FILE}" SCALE_SET_NAME="${SCALE_SET_NAME}" run_workflow || failed+=("run_workflow") - - INSTALLATION_NAME="${SCALE_SET_NAME}" NAMESPACE="${SCALE_SET_NAMESPACE}" cleanup_scale_set || failed+=("cleanup_scale_set") - - NAMESPACE="${ARC_NAMESPACE}" log_arc || failed+=("log_arc") - - delete_cluster - - print_results "${failed[@]}" -} - -main diff --git a/test/actions.github.com/dind-mode-setup.test.sh b/test/actions.github.com/dind-mode-setup.test.sh index deb9b75d..0e1a9ff6 100755 --- a/test/actions.github.com/dind-mode-setup.test.sh +++ b/test/actions.github.com/dind-mode-setup.test.sh @@ -8,7 +8,7 @@ ROOT_DIR="$(realpath "${DIR}/../..")" source "${DIR}/helper.sh" -export VERSION="$(chart_version "${ROOT_DIR}/charts/gha-runner-scale-set-controller/Chart.yaml")" +export VERSION="$(chart_version "${ROOT_DIR}/charts/gha-runner-scale-set-controller-experimental/Chart.yaml")" SCALE_SET_NAME="default-$(date +'%M%S')$(((RANDOM + 100) % 100 + 1))" SCALE_SET_NAMESPACE="arc-runners" @@ -21,9 +21,8 @@ function install_arc() { helm install "${ARC_NAME}" \ --namespace "${ARC_NAMESPACE}" \ --create-namespace \ - --set image.repository="${IMAGE_NAME}" \ - --set image.tag="${IMAGE_TAG}" \ - "${ROOT_DIR}/charts/gha-runner-scale-set-controller" \ + --set controller.manager.container.image="${IMAGE_NAME}:${IMAGE_TAG}" \ + "${ROOT_DIR}/charts/gha-runner-scale-set-controller-experimental" \ --debug if ! NAME="${ARC_NAME}" NAMESPACE="${ARC_NAMESPACE}" wait_for_arc; then @@ -37,12 +36,13 @@ function install_scale_set() { helm install "${SCALE_SET_NAME}" \ --namespace "${SCALE_SET_NAMESPACE}" \ --create-namespace \ - --set githubConfigUrl="https://github.com/${TARGET_ORG}/${TARGET_REPO}" \ - --set githubConfigSecret.github_token="${GITHUB_TOKEN}" \ - --set containerMode.type="dind" \ - "${ROOT_DIR}/charts/gha-runner-scale-set" \ - --version="${VERSION}" \ - --debug + --set controllerServiceAccount.name="${ARC_NAME}-gha-rs-controller" \ + --set controllerServiceAccount.namespace="${ARC_NAMESPACE}" \ + --set auth.url="https://github.com/${TARGET_ORG}/${TARGET_REPO}" \ + --set auth.githubToken="${GITHUB_TOKEN}" \ + --set runner.mode="dind" \ + "${ROOT_DIR}/charts/gha-runner-scale-set-experimental" \ + --version="${VERSION}" if ! NAME="${SCALE_SET_NAME}" NAMESPACE="${ARC_NAMESPACE}" wait_for_scale_set; then NAMESPACE="${ARC_NAMESPACE}" log_arc diff --git a/test/actions.github.com/init-with-min-runners-v2.test.sh b/test/actions.github.com/init-with-min-runners-v2.test.sh deleted file mode 100755 index c194ef2c..00000000 --- a/test/actions.github.com/init-with-min-runners-v2.test.sh +++ /dev/null @@ -1,96 +0,0 @@ -#!/bin/bash - -set -euo pipefail - -DIR="$(realpath "$(dirname "${BASH_SOURCE[0]}")")" - -ROOT_DIR="$(realpath "${DIR}/../..")" - -source "${DIR}/helper.sh" || { - echo "Failed to source helper.sh" - exit 1 -} - -export VERSION="$(chart_version "${ROOT_DIR}/charts/gha-runner-scale-set-controller-experimental/Chart.yaml")" - -SCALE_SET_NAME="init-min-runners-$(date +'%M%S')$(((RANDOM + 100) % 100 + 1))" -SCALE_SET_NAMESPACE="arc-runners" -WORKFLOW_FILE="arc-test-workflow.yaml" -ARC_NAME="arc" -ARC_NAMESPACE="arc-systems" - -function install_arc() { - echo "Installing ARC" - helm install arc \ - --namespace "arc-systems" \ - --create-namespace \ - --set controller.manager.container.image="${IMAGE_NAME}:${IMAGE_TAG}" \ - --set controller.manager.config.updateStrategy="eventual" \ - "${ROOT_DIR}/charts/gha-runner-scale-set-controller-experimental" \ - --debug - - if ! NAME="${ARC_NAME}" NAMESPACE="${ARC_NAMESPACE}" wait_for_arc; then - NAMESPACE="${ARC_NAMESPACE}" log_arc - return 1 - fi -} - -function install_scale_set() { - echo "Installing scale set ${SCALE_SET_NAMESPACE}/${SCALE_SET_NAME}" - helm install "${SCALE_SET_NAME}" \ - --namespace "${SCALE_SET_NAMESPACE}" \ - --create-namespace \ - --set controllerServiceAccount.name="${ARC_NAME}-gha-rs-controller" \ - --set controllerServiceAccount.namespace="${ARC_NAMESPACE}" \ - --set auth.url="https://github.com/${TARGET_ORG}/${TARGET_REPO}" \ - --set auth.githubToken="${GITHUB_TOKEN}" \ - --set scaleset.minRunners=5 \ - "${ROOT_DIR}/charts/gha-runner-scale-set-experimental" - - if ! NAME="${SCALE_SET_NAME}" NAMESPACE="${ARC_NAMESPACE}" wait_for_scale_set; then - NAMESPACE="${ARC_NAMESPACE}" log_arc - return 1 - fi -} - -function assert_5_runners() { - echo "[*] Asserting 5 runners are created" - local count=0 - while true; do - pod_count=$(kubectl get pods -n arc-runners --no-headers | wc -l) - - if [[ "${pod_count}" = 5 ]]; then - echo "[*] Found 5 runners as expected" - break - fi - - if [[ "$count" -ge 30 ]]; then - echo "Timeout waiting for 5 pods to be created" - exit 1 - fi - sleep 1 - count=$((count + 1)) - done -} - -function main() { - local failed=() - - build_image - create_cluster - - install_arc - install_scale_set - - assert_5_runners || failed+=("assert_5_runners") - - INSTALLATION_NAME="${SCALE_SET_NAME}" NAMESPACE="${SCALE_SET_NAMESPACE}" cleanup_scale_set || failed+=("cleanup_scale_set") - - NAMESPACE="${ARC_NAMESPACE}" log_arc || failed+=("log_arc") - - delete_cluster - - print_results "${failed[@]}" -} - -main diff --git a/test/actions.github.com/init-with-min-runners.test.sh b/test/actions.github.com/init-with-min-runners.test.sh index 7af68232..c194ef2c 100755 --- a/test/actions.github.com/init-with-min-runners.test.sh +++ b/test/actions.github.com/init-with-min-runners.test.sh @@ -11,7 +11,7 @@ source "${DIR}/helper.sh" || { exit 1 } -export VERSION="$(chart_version "${ROOT_DIR}/charts/gha-runner-scale-set-controller/Chart.yaml")" +export VERSION="$(chart_version "${ROOT_DIR}/charts/gha-runner-scale-set-controller-experimental/Chart.yaml")" SCALE_SET_NAME="init-min-runners-$(date +'%M%S')$(((RANDOM + 100) % 100 + 1))" SCALE_SET_NAMESPACE="arc-runners" @@ -24,10 +24,9 @@ function install_arc() { helm install arc \ --namespace "arc-systems" \ --create-namespace \ - --set image.repository="${IMAGE_NAME}" \ - --set image.tag="${IMAGE_TAG}" \ - --set flags.updateStrategy="eventual" \ - "${ROOT_DIR}/charts/gha-runner-scale-set-controller" \ + --set controller.manager.container.image="${IMAGE_NAME}:${IMAGE_TAG}" \ + --set controller.manager.config.updateStrategy="eventual" \ + "${ROOT_DIR}/charts/gha-runner-scale-set-controller-experimental" \ --debug if ! NAME="${ARC_NAME}" NAMESPACE="${ARC_NAMESPACE}" wait_for_arc; then @@ -41,11 +40,12 @@ function install_scale_set() { helm install "${SCALE_SET_NAME}" \ --namespace "${SCALE_SET_NAMESPACE}" \ --create-namespace \ - --set githubConfigUrl="https://github.com/${TARGET_ORG}/${TARGET_REPO}" \ - --set githubConfigSecret.github_token="${GITHUB_TOKEN}" \ - --set minRunners=5 \ - "${ROOT_DIR}/charts/gha-runner-scale-set" \ - --debug + --set controllerServiceAccount.name="${ARC_NAME}-gha-rs-controller" \ + --set controllerServiceAccount.namespace="${ARC_NAMESPACE}" \ + --set auth.url="https://github.com/${TARGET_ORG}/${TARGET_REPO}" \ + --set auth.githubToken="${GITHUB_TOKEN}" \ + --set scaleset.minRunners=5 \ + "${ROOT_DIR}/charts/gha-runner-scale-set-experimental" if ! NAME="${SCALE_SET_NAME}" NAMESPACE="${ARC_NAMESPACE}" wait_for_scale_set; then NAMESPACE="${ARC_NAMESPACE}" log_arc diff --git a/test/actions.github.com/kubernetes-mode-setup-v2.test.sh b/test/actions.github.com/kubernetes-mode-setup-v2.test.sh deleted file mode 100755 index 7a388296..00000000 --- a/test/actions.github.com/kubernetes-mode-setup-v2.test.sh +++ /dev/null @@ -1,80 +0,0 @@ -#!/bin/bash - -set -euo pipefail - -DIR="$(realpath "$(dirname "${BASH_SOURCE[0]}")")" - -ROOT_DIR="$(realpath "${DIR}/../..")" - -source "${DIR}/helper.sh" - -export VERSION="$(chart_version "${ROOT_DIR}/charts/gha-runner-scale-set-controller-experimental/Chart.yaml")" - -SCALE_SET_NAME="kubernetes-mode-$(date +'%M%S')$(((RANDOM + 100) % 100 + 1))" -SCALE_SET_NAMESPACE="arc-runners" -WORKFLOW_FILE="arc-test-kubernetes-workflow.yaml" -ARC_NAME="arc" -ARC_NAMESPACE="arc-systems" - -function install_arc() { - install_openebs || { - echo "OpenEBS installation failed" - return 1 - } - - echo "Installing ARC" - helm install "${ARC_NAME}" \ - --namespace "${ARC_NAMESPACE}" \ - --create-namespace \ - --set controller.manager.container.image="${IMAGE_NAME}:${IMAGE_TAG}" \ - "${ROOT_DIR}/charts/gha-runner-scale-set-controller-experimental" \ - --debug - - if ! NAME="${ARC_NAME}" NAMESPACE="${ARC_NAMESPACE}" wait_for_arc; then - NAMESPACE="${ARC_NAMESPACE}" log_arc - return 1 - fi -} - -function install_scale_set() { - echo "Installing scale set ${SCALE_SET_NAMESPACE}/${SCALE_SET_NAME}" - helm install "${SCALE_SET_NAME}" \ - --namespace "${SCALE_SET_NAMESPACE}" \ - --create-namespace \ - --set controllerServiceAccount.name="${ARC_NAME}-gha-rs-controller" \ - --set controllerServiceAccount.namespace="${ARC_NAMESPACE}" \ - --set auth.url="https://github.com/${TARGET_ORG}/${TARGET_REPO}" \ - --set auth.githubToken="${GITHUB_TOKEN}" \ - --set runner.mode="kubernetes" \ - --set runner.kubernetesMode.workVolumeClaim.accessModes={"ReadWriteOnce"} \ - --set runner.kubernetesMode.workVolumeClaim.storageClassName="openebs-hostpath" \ - --set runner.kubernetesMode.workVolumeClaim.resources.requests.storage="1Gi" \ - "${ROOT_DIR}/charts/gha-runner-scale-set-experimental" - - if ! NAME="${SCALE_SET_NAME}" NAMESPACE="${ARC_NAMESPACE}" wait_for_scale_set; then - NAMESPACE="${ARC_NAMESPACE}" log_arc - return 1 - fi -} - -function main() { - local failed=() - - build_image - create_cluster - - install_arc - install_scale_set - - WORKFLOW_FILE="${WORKFLOW_FILE}" SCALE_SET_NAME="${SCALE_SET_NAME}" run_workflow || failed+=("run_workflow") - - INSTALLATION_NAME="${SCALE_SET_NAME}" NAMESPACE="${SCALE_SET_NAMESPACE}" cleanup_scale_set || failed+=("cleanup_scale_set") - - NAMESPACE="${ARC_NAMESPACE}" log_arc || failed+=("log_arc") - - delete_cluster - - print_results "${failed[@]}" -} - -main diff --git a/test/actions.github.com/kubernetes-mode-setup.test.sh b/test/actions.github.com/kubernetes-mode-setup.test.sh index aa9b52b3..7a388296 100755 --- a/test/actions.github.com/kubernetes-mode-setup.test.sh +++ b/test/actions.github.com/kubernetes-mode-setup.test.sh @@ -8,7 +8,7 @@ ROOT_DIR="$(realpath "${DIR}/../..")" source "${DIR}/helper.sh" -export VERSION="$(chart_version "${ROOT_DIR}/charts/gha-runner-scale-set-controller/Chart.yaml")" +export VERSION="$(chart_version "${ROOT_DIR}/charts/gha-runner-scale-set-controller-experimental/Chart.yaml")" SCALE_SET_NAME="kubernetes-mode-$(date +'%M%S')$(((RANDOM + 100) % 100 + 1))" SCALE_SET_NAMESPACE="arc-runners" @@ -26,9 +26,8 @@ function install_arc() { helm install "${ARC_NAME}" \ --namespace "${ARC_NAMESPACE}" \ --create-namespace \ - --set image.repository="${IMAGE_NAME}" \ - --set image.tag="${IMAGE_TAG}" \ - "${ROOT_DIR}/charts/gha-runner-scale-set-controller" \ + --set controller.manager.container.image="${IMAGE_NAME}:${IMAGE_TAG}" \ + "${ROOT_DIR}/charts/gha-runner-scale-set-controller-experimental" \ --debug if ! NAME="${ARC_NAME}" NAMESPACE="${ARC_NAMESPACE}" wait_for_arc; then @@ -42,14 +41,15 @@ function install_scale_set() { helm install "${SCALE_SET_NAME}" \ --namespace "${SCALE_SET_NAMESPACE}" \ --create-namespace \ - --set githubConfigUrl="https://github.com/${TARGET_ORG}/${TARGET_REPO}" \ - --set githubConfigSecret.github_token="${GITHUB_TOKEN}" \ - --set containerMode.type="kubernetes" \ - --set containerMode.kubernetesModeWorkVolumeClaim.accessModes={"ReadWriteOnce"} \ - --set containerMode.kubernetesModeWorkVolumeClaim.storageClassName="openebs-hostpath" \ - --set containerMode.kubernetesModeWorkVolumeClaim.resources.requests.storage="1Gi" \ - "${ROOT_DIR}/charts/gha-runner-scale-set" \ - --debug + --set controllerServiceAccount.name="${ARC_NAME}-gha-rs-controller" \ + --set controllerServiceAccount.namespace="${ARC_NAMESPACE}" \ + --set auth.url="https://github.com/${TARGET_ORG}/${TARGET_REPO}" \ + --set auth.githubToken="${GITHUB_TOKEN}" \ + --set runner.mode="kubernetes" \ + --set runner.kubernetesMode.workVolumeClaim.accessModes={"ReadWriteOnce"} \ + --set runner.kubernetesMode.workVolumeClaim.storageClassName="openebs-hostpath" \ + --set runner.kubernetesMode.workVolumeClaim.resources.requests.storage="1Gi" \ + "${ROOT_DIR}/charts/gha-runner-scale-set-experimental" if ! NAME="${SCALE_SET_NAME}" NAMESPACE="${ARC_NAMESPACE}" wait_for_scale_set; then NAMESPACE="${ARC_NAMESPACE}" log_arc diff --git a/test/actions.github.com/self-signed-ca-setup-v2.test.sh b/test/actions.github.com/self-signed-ca-setup-v2.test.sh deleted file mode 100755 index 5600f868..00000000 --- a/test/actions.github.com/self-signed-ca-setup-v2.test.sh +++ /dev/null @@ -1,150 +0,0 @@ -#!/bin/bash - -set -euo pipefail - -DIR="$(realpath "$(dirname "${BASH_SOURCE[0]}")")" - -ROOT_DIR="$(realpath "${DIR}/../..")" - -source "${DIR}/helper.sh" || { - echo "Failed to source helper.sh" - exit 1 -} - -export VERSION="$(chart_version "${ROOT_DIR}/charts/gha-runner-scale-set-controller-experimental/Chart.yaml")" - -TEMP_DIR=$(mktemp -d) -LOCAL_CERT_PATH="${TEMP_DIR}/mitmproxy-ca-cert.crt" -MITM_CERT_PATH="/root/.mitmproxy/mitmproxy-ca-cert.pem" - -trap 'rm -rf "$TEMP_DIR"' EXIT - -SCALE_SET_NAME="self-signed-crt-$(date '+%M%S')$(((RANDOM + 100) % 100 + 1))" -SCALE_SET_NAMESPACE="arc-runners" -WORKFLOW_FILE="arc-test-workflow.yaml" -ARC_NAME="arc" -ARC_NAMESPACE="arc-systems" - -MITMPROXY_NAMESPACE="mitmproxy" -MITMPROXY_POD_NAME="mitmproxy" - -function install_arc() { - echo "Installing ARC" - helm install "${ARC_NAME}" \ - --namespace "${ARC_NAMESPACE}" \ - --create-namespace \ - --set controller.manager.container.image="${IMAGE_NAME}:${IMAGE_TAG}" \ - "${ROOT_DIR}/charts/gha-runner-scale-set-controller-experimental" \ - --debug - - if ! NAME="${ARC_NAME}" NAMESPACE="${ARC_NAMESPACE}" wait_for_arc; then - NAMESPACE="${ARC_NAMESPACE}" log_arc - return 1 - fi -} - -function install_scale_set() { - echo "Creating namespace ${SCALE_SET_NAMESPACE}" - kubectl create namespace "${SCALE_SET_NAMESPACE}" - - echo "Installing ca-cert config map" - kubectl -n "${SCALE_SET_NAMESPACE}" create configmap ca-cert \ - --from-file=mitmproxy-ca-cert.crt="${LOCAL_CERT_PATH}" - - echo "Installing scale set ${SCALE_SET_NAME}/${SCALE_SET_NAMESPACE}" - helm install "${SCALE_SET_NAME}" \ - --namespace "${SCALE_SET_NAMESPACE}" \ - --create-namespace \ - --set controllerServiceAccount.name="${ARC_NAME}-gha-rs-controller" \ - --set controllerServiceAccount.namespace="${ARC_NAMESPACE}" \ - --set auth.url="https://github.com/${TARGET_ORG}/${TARGET_REPO}" \ - --set auth.githubToken="${GITHUB_TOKEN}" \ - --set proxy.https.url="http://mitmproxy.mitmproxy.svc.cluster.local:8080" \ - --set "proxy.noProxy[0]=10.96.0.1:443" \ - --set "githubServerTLS.certificateFrom.configMapKeyRef.name=ca-cert" \ - --set "githubServerTLS.certificateFrom.configMapKeyRef.key=mitmproxy-ca-cert.crt" \ - --set "githubServerTLS.runnerMountPath=/usr/local/share/ca-certificates/" \ - "${ROOT_DIR}/charts/gha-runner-scale-set-experimental" - - if ! NAME="${SCALE_SET_NAME}" NAMESPACE="${ARC_NAMESPACE}" wait_for_scale_set; then - NAMESPACE="${ARC_NAMESPACE}" log_arc - return 1 - fi -} - -function wait_for_mitmproxy_ready() { - echo "Waiting for mitmproxy pod to be ready" - - # Wait for pod to be running - if ! kubectl wait --for=condition=ready pod -n "${MITMPROXY_NAMESPACE}" "${MITMPROXY_POD_NAME}" --timeout=60s; then - echo "Timeout waiting for mitmproxy pod" - kubectl get pods -n "${MITMPROXY_NAMESPACE}" || true - kubectl describe pod -n "${MITMPROXY_NAMESPACE}" "${MITMPROXY_POD_NAME}" || true - kubectl logs -n "${MITMPROXY_NAMESPACE}" "${MITMPROXY_POD_NAME}" || true - return 1 - fi - - echo "Mitmproxy pod is ready, trying to copy the certitficate..." - - # Verify certificate exists - retry 15 1 kubectl exec -n "${MITMPROXY_NAMESPACE}" "${MITMPROXY_POD_NAME}" -- test -f "${MITM_CERT_PATH}" - - echo "Getting mitmproxy CA certificate from pod" - if ! kubectl exec -n "${MITMPROXY_NAMESPACE}" "${MITMPROXY_POD_NAME}" -- cat "${MITM_CERT_PATH}" >"${LOCAL_CERT_PATH}"; then - echo "Failed to get mitmproxy CA certificate from pod" - return 1 - fi - echo "Mitmproxy certificate generated successfully and stored to ${LOCAL_CERT_PATH}" - return 0 -} - -function run_mitmproxy() { - echo "Deploying mitmproxy to Kubernetes" - - # Create namespace - kubectl create namespace "${MITMPROXY_NAMESPACE}" || true - - # Create mitmproxy pod and service - kubectl apply -f "${DIR}/self-signed-ca-setup.mitm.yaml" - - if ! wait_for_mitmproxy_ready; then - return 1 - fi - - echo "Mitmproxy is ready" -} - -function main() { - local failed=() - - build_image - create_cluster - install_arc - run_mitmproxy || { - echo "Failed to run mitmproxy" - echo "ARC logs:" - NAMESPACE="${ARC_NAMESPACE}" log_arc - echo "Deleting cluster..." - delete_cluster - exit 1 - } - install_scale_set || { - echo "Failed to run mitmproxy" - echo "ARC logs:" - NAMESPACE="${ARC_NAMESPACE}" log_arc - echo "Deleting cluster..." - delete_cluster - exit 1 - } - - WORKFLOW_FILE="${WORKFLOW_FILE}" SCALE_SET_NAME="${SCALE_SET_NAME}" run_workflow || failed+=("run_workflow") - INSTALLATION_NAME="${SCALE_SET_NAME}" NAMESPACE="${SCALE_SET_NAMESPACE}" cleanup_scale_set || failed+=("cleanup_scale_set") - - NAMESPACE="${ARC_NAMESPACE}" log_arc || failed+=("log_arc") - - delete_cluster - - print_results "${failed[@]}" -} - -main diff --git a/test/actions.github.com/self-signed-ca-setup.test.sh b/test/actions.github.com/self-signed-ca-setup.test.sh index 2db8cd53..5600f868 100755 --- a/test/actions.github.com/self-signed-ca-setup.test.sh +++ b/test/actions.github.com/self-signed-ca-setup.test.sh @@ -11,7 +11,7 @@ source "${DIR}/helper.sh" || { exit 1 } -export VERSION="$(chart_version "${ROOT_DIR}/charts/gha-runner-scale-set-controller/Chart.yaml")" +export VERSION="$(chart_version "${ROOT_DIR}/charts/gha-runner-scale-set-controller-experimental/Chart.yaml")" TEMP_DIR=$(mktemp -d) LOCAL_CERT_PATH="${TEMP_DIR}/mitmproxy-ca-cert.crt" @@ -33,9 +33,8 @@ function install_arc() { helm install "${ARC_NAME}" \ --namespace "${ARC_NAMESPACE}" \ --create-namespace \ - --set image.repository="${IMAGE_NAME}" \ - --set image.tag="${IMAGE_TAG}" \ - "${ROOT_DIR}/charts/gha-runner-scale-set-controller" \ + --set controller.manager.container.image="${IMAGE_NAME}:${IMAGE_TAG}" \ + "${ROOT_DIR}/charts/gha-runner-scale-set-controller-experimental" \ --debug if ! NAME="${ARC_NAME}" NAMESPACE="${ARC_NAMESPACE}" wait_for_arc; then @@ -56,15 +55,16 @@ function install_scale_set() { helm install "${SCALE_SET_NAME}" \ --namespace "${SCALE_SET_NAMESPACE}" \ --create-namespace \ - --set githubConfigUrl="https://github.com/${TARGET_ORG}/${TARGET_REPO}" \ - --set githubConfigSecret.github_token="${GITHUB_TOKEN}" \ + --set controllerServiceAccount.name="${ARC_NAME}-gha-rs-controller" \ + --set controllerServiceAccount.namespace="${ARC_NAMESPACE}" \ + --set auth.url="https://github.com/${TARGET_ORG}/${TARGET_REPO}" \ + --set auth.githubToken="${GITHUB_TOKEN}" \ --set proxy.https.url="http://mitmproxy.mitmproxy.svc.cluster.local:8080" \ --set "proxy.noProxy[0]=10.96.0.1:443" \ --set "githubServerTLS.certificateFrom.configMapKeyRef.name=ca-cert" \ --set "githubServerTLS.certificateFrom.configMapKeyRef.key=mitmproxy-ca-cert.crt" \ --set "githubServerTLS.runnerMountPath=/usr/local/share/ca-certificates/" \ - "${ROOT_DIR}/charts/gha-runner-scale-set" \ - --debug + "${ROOT_DIR}/charts/gha-runner-scale-set-experimental" if ! NAME="${SCALE_SET_NAME}" NAMESPACE="${ARC_NAMESPACE}" wait_for_scale_set; then NAMESPACE="${ARC_NAMESPACE}" log_arc diff --git a/test/actions.github.com/single-namespace-setup-v2.test.sh b/test/actions.github.com/single-namespace-setup-v2.test.sh deleted file mode 100755 index 382953bd..00000000 --- a/test/actions.github.com/single-namespace-setup-v2.test.sh +++ /dev/null @@ -1,73 +0,0 @@ -#!/bin/bash - -set -euo pipefail - -DIR="$(realpath "$(dirname "${BASH_SOURCE[0]}")")" - -ROOT_DIR="$(realpath "${DIR}/../..")" - -source "${DIR}/helper.sh" - -export VERSION="$(chart_version "${ROOT_DIR}/charts/gha-runner-scale-set-controller-experimental/Chart.yaml")" - -SCALE_SET_NAME="default-$(date +'%M%S')$(((RANDOM + 100) % 100 + 1))" -SCALE_SET_NAMESPACE="arc-runners" -WORKFLOW_FILE="arc-test-workflow.yaml" -ARC_NAME="arc" -ARC_NAMESPACE="${SCALE_SET_NAMESPACE}" - -function install_arc() { - echo "Installing ARC" - helm install "${ARC_NAME}" \ - --namespace "${ARC_NAMESPACE}" \ - --create-namespace \ - --set controller.manager.container.image="${IMAGE_NAME}:${IMAGE_TAG}" \ - --set controller.manager.config.watchSingleNamespace="${ARC_NAMESPACE}" \ - "${ROOT_DIR}/charts/gha-runner-scale-set-controller-experimental" \ - --debug - - if ! NAME="${ARC_NAME}" NAMESPACE="${ARC_NAMESPACE}" wait_for_arc; then - NAMESPACE="${ARC_NAMESPACE}" log_arc - return 1 - fi -} - -function install_scale_set() { - echo "Installing scale set ${SCALE_SET_NAMESPACE}/${SCALE_SET_NAME}" - helm install "${SCALE_SET_NAME}" \ - --namespace "${SCALE_SET_NAMESPACE}" \ - --create-namespace \ - --set controllerServiceAccount.name="${ARC_NAME}-gha-rs-controller" \ - --set controllerServiceAccount.namespace="${ARC_NAMESPACE}" \ - --set auth.url="https://github.com/${TARGET_ORG}/${TARGET_REPO}" \ - --set auth.githubToken="${GITHUB_TOKEN}" \ - "${ROOT_DIR}/charts/gha-runner-scale-set-experimental" \ - --version="${VERSION}" - - if ! NAME="${SCALE_SET_NAME}" NAMESPACE="${ARC_NAMESPACE}" wait_for_scale_set; then - NAMESPACE="${ARC_NAMESPACE}" log_arc - return 1 - fi -} - -function main() { - local failed=() - - build_image - create_cluster - - install_arc - install_scale_set - - WORKFLOW_FILE="${WORKFLOW_FILE}" SCALE_SET_NAME="${SCALE_SET_NAME}" run_workflow || failed+=("run_workflow") - - INSTALLATION_NAME="${SCALE_SET_NAME}" NAMESPACE="${SCALE_SET_NAMESPACE}" cleanup_scale_set || failed+=("cleanup_scale_set") - - NAMESPACE="${ARC_NAMESPACE}" log_arc || failed+=("log_arc") - - delete_cluster - - print_results "${failed[@]}" -} - -main diff --git a/test/actions.github.com/single-namespace-setup.test.sh b/test/actions.github.com/single-namespace-setup.test.sh index 836dfe74..382953bd 100755 --- a/test/actions.github.com/single-namespace-setup.test.sh +++ b/test/actions.github.com/single-namespace-setup.test.sh @@ -8,7 +8,7 @@ ROOT_DIR="$(realpath "${DIR}/../..")" source "${DIR}/helper.sh" -export VERSION="$(chart_version "${ROOT_DIR}/charts/gha-runner-scale-set-controller/Chart.yaml")" +export VERSION="$(chart_version "${ROOT_DIR}/charts/gha-runner-scale-set-controller-experimental/Chart.yaml")" SCALE_SET_NAME="default-$(date +'%M%S')$(((RANDOM + 100) % 100 + 1))" SCALE_SET_NAMESPACE="arc-runners" @@ -21,10 +21,9 @@ function install_arc() { helm install "${ARC_NAME}" \ --namespace "${ARC_NAMESPACE}" \ --create-namespace \ - --set image.repository="${IMAGE_NAME}" \ - --set image.tag="${IMAGE_TAG}" \ - --set flags.watchSingleNamespace="${ARC_NAMESPACE}" \ - "${ROOT_DIR}/charts/gha-runner-scale-set-controller" \ + --set controller.manager.container.image="${IMAGE_NAME}:${IMAGE_TAG}" \ + --set controller.manager.config.watchSingleNamespace="${ARC_NAMESPACE}" \ + "${ROOT_DIR}/charts/gha-runner-scale-set-controller-experimental" \ --debug if ! NAME="${ARC_NAME}" NAMESPACE="${ARC_NAMESPACE}" wait_for_arc; then @@ -38,11 +37,12 @@ function install_scale_set() { helm install "${SCALE_SET_NAME}" \ --namespace "${SCALE_SET_NAMESPACE}" \ --create-namespace \ - --set githubConfigUrl="https://github.com/${TARGET_ORG}/${TARGET_REPO}" \ - --set githubConfigSecret.github_token="${GITHUB_TOKEN}" \ - "${ROOT_DIR}/charts/gha-runner-scale-set" \ - --version="${VERSION}" \ - --debug + --set controllerServiceAccount.name="${ARC_NAME}-gha-rs-controller" \ + --set controllerServiceAccount.namespace="${ARC_NAMESPACE}" \ + --set auth.url="https://github.com/${TARGET_ORG}/${TARGET_REPO}" \ + --set auth.githubToken="${GITHUB_TOKEN}" \ + "${ROOT_DIR}/charts/gha-runner-scale-set-experimental" \ + --version="${VERSION}" if ! NAME="${SCALE_SET_NAME}" NAMESPACE="${ARC_NAMESPACE}" wait_for_scale_set; then NAMESPACE="${ARC_NAMESPACE}" log_arc diff --git a/test/actions.github.com/update-gha-runner-scale-set-v2.test.sh b/test/actions.github.com/update-gha-runner-scale-set-v2.test.sh deleted file mode 100755 index 74776dc1..00000000 --- a/test/actions.github.com/update-gha-runner-scale-set-v2.test.sh +++ /dev/null @@ -1,141 +0,0 @@ -#!/bin/bash - -set -euo pipefail - -DIR="$(realpath "$(dirname "${BASH_SOURCE[0]}")")" - -ROOT_DIR="$(realpath "${DIR}/../..")" - -source "${DIR}/helper.sh" || { - echo "Failed to source helper.sh" - exit 1 -} - -export VERSION="$(chart_version "${ROOT_DIR}/charts/gha-runner-scale-set-controller-experimental/Chart.yaml")" - -SCALE_SET_NAME="update-strategy-$(date '+%M%S')$(((RANDOM + 100) % 100 + 1))" -SCALE_SET_NAMESPACE="arc-runners" -WORKFLOW_FILE="arc-test-sleepy-matrix.yaml" -ARC_NAME="arc" -ARC_NAMESPACE="arc-systems" - -UPGRADE_MARKER="e2e-upgrade-${SCALE_SET_NAME}-$(date +%s)" - -function install_arc() { - echo "Installing ARC" - helm install "${ARC_NAME}" \ - --namespace "${ARC_NAMESPACE}" \ - --create-namespace \ - --set controller.manager.container.image="${IMAGE_NAME}:${IMAGE_TAG}" \ - "${ROOT_DIR}/charts/gha-runner-scale-set-controller-experimental" \ - --debug - - if ! NAME="${ARC_NAME}" NAMESPACE="${ARC_NAMESPACE}" wait_for_arc; then - NAMESPACE="${ARC_NAMESPACE}" log_arc - return 1 - fi -} - -function install_scale_set() { - echo "Installing scale set ${SCALE_SET_NAME}/${SCALE_SET_NAMESPACE}" - helm install "${SCALE_SET_NAME}" \ - --namespace "${SCALE_SET_NAMESPACE}" \ - --create-namespace \ - --set controllerServiceAccount.name="${ARC_NAME}-gha-rs-controller" \ - --set controllerServiceAccount.namespace="${ARC_NAMESPACE}" \ - --set auth.url="https://github.com/${TARGET_ORG}/${TARGET_REPO}" \ - --set auth.githubToken="${GITHUB_TOKEN}" \ - --set scaleset.name="${SCALE_SET_NAME}" \ - --set scaleset.minRunners=5 \ - "${ROOT_DIR}/charts/gha-runner-scale-set-experimental" \ - --version="${VERSION}" \ - --debug - - if ! NAME="${SCALE_SET_NAME}" NAMESPACE="${ARC_NAMESPACE}" wait_for_scale_set; then - NAMESPACE="${ARC_NAMESPACE}" log_arc - return 1 - fi -} - -function upgrade_scale_set() { - echo "Upgrading scale set ${SCALE_SET_NAME}/${SCALE_SET_NAMESPACE}" - - echo "Generated upgrade marker: ${UPGRADE_MARKER}" - - helm upgrade "${SCALE_SET_NAME}" \ - --namespace "${SCALE_SET_NAMESPACE}" \ - --set controllerServiceAccount.name="${ARC_NAME}-gha-rs-controller" \ - --set controllerServiceAccount.namespace="${ARC_NAMESPACE}" \ - --set auth.url="https://github.com/${TARGET_ORG}/${TARGET_REPO}" \ - --set auth.githubToken="${GITHUB_TOKEN}" \ - --set scaleset.name="${SCALE_SET_NAME}" \ - --set runner.container.image="ghcr.io/actions/actions-runner:latest" \ - --set runner.container.command={"/home/runner/run.sh"} \ - --set runner.container.env[0].name="TEST" \ - --set runner.container.env[0].value="E2E TESTS" \ - --set "runner.pod.metadata.labels.e2e\.arc/upgrade-marker=${UPGRADE_MARKER}" \ - "${ROOT_DIR}/charts/gha-runner-scale-set-experimental" \ - --version="${VERSION}" \ - --debug - -} - -function assert_idle_pod_recreated() { - echo "Waiting for idle pod recreation" - local count=0 - - while true; do - local pods - if ! pods=$(kubectl get pods -n "${SCALE_SET_NAMESPACE}" -l "actions.github.com/scale-set-name=${SCALE_SET_NAME},e2e.arc/upgrade-marker=${UPGRADE_MARKER}" -o jsonpath='{.items[*].metadata.name}'); then - echo "Failed to get pods: $pods" - return 1 - fi - - if [[ -n "$pods" ]]; then - echo "Found idle pod with upgrade marker: $pods" - return 0 - fi - - if ((count >= 30)); then - echo "Timeout waiting for idle pod recreation after upgrade" - return 1 - fi - - echo "No idle pod with upgrade marker found yet, retrying... ($((count + 1))/30)" - sleep 10 - ((count++)) - done - -} - -function main() { - local failed=() - local run_id="" - - build_image - create_cluster - install_arc - install_scale_set - - upgrade_scale_set || failed+=("upgrade_scale_set") - - if ! run_id=$(WORKFLOW_FILE="${WORKFLOW_FILE}" SCALE_SET_NAME="${SCALE_SET_NAME}" start_workflow); then - failed+=("run_workflow") - fi - - assert_idle_pod_recreated || failed+=("assert_idle_pod_recreated") - - if [[ -n "${run_id}" ]]; then - wait_for_run_completion "${run_id}" || failed+=("wait_for_run_completion") - fi - - INSTALLATION_NAME="${SCALE_SET_NAME}" NAMESPACE="${SCALE_SET_NAMESPACE}" cleanup_scale_set || failed+=("cleanup_scale_set") - - NAMESPACE="${ARC_NAMESPACE}" log_arc || failed+=("log_arc") - - delete_cluster - - print_results "${failed[@]}" -} - -main diff --git a/test/actions.github.com/update-gha-runner-scale-set.test.sh b/test/actions.github.com/update-gha-runner-scale-set.test.sh index aaa74656..74776dc1 100755 --- a/test/actions.github.com/update-gha-runner-scale-set.test.sh +++ b/test/actions.github.com/update-gha-runner-scale-set.test.sh @@ -11,7 +11,7 @@ source "${DIR}/helper.sh" || { exit 1 } -export VERSION="$(chart_version "${ROOT_DIR}/charts/gha-runner-scale-set-controller/Chart.yaml")" +export VERSION="$(chart_version "${ROOT_DIR}/charts/gha-runner-scale-set-controller-experimental/Chart.yaml")" SCALE_SET_NAME="update-strategy-$(date '+%M%S')$(((RANDOM + 100) % 100 + 1))" SCALE_SET_NAMESPACE="arc-runners" @@ -26,9 +26,8 @@ function install_arc() { helm install "${ARC_NAME}" \ --namespace "${ARC_NAMESPACE}" \ --create-namespace \ - --set image.repository="${IMAGE_NAME}" \ - --set image.tag="${IMAGE_TAG}" \ - "${ROOT_DIR}/charts/gha-runner-scale-set-controller" \ + --set controller.manager.container.image="${IMAGE_NAME}:${IMAGE_TAG}" \ + "${ROOT_DIR}/charts/gha-runner-scale-set-controller-experimental" \ --debug if ! NAME="${ARC_NAME}" NAMESPACE="${ARC_NAMESPACE}" wait_for_arc; then @@ -42,10 +41,14 @@ function install_scale_set() { helm install "${SCALE_SET_NAME}" \ --namespace "${SCALE_SET_NAMESPACE}" \ --create-namespace \ - --set githubConfigUrl="https://github.com/${TARGET_ORG}/${TARGET_REPO}" \ - --set githubConfigSecret.github_token="${GITHUB_TOKEN}" \ - --set minRunners=1 \ - "${ROOT_DIR}/charts/gha-runner-scale-set" \ + --set controllerServiceAccount.name="${ARC_NAME}-gha-rs-controller" \ + --set controllerServiceAccount.namespace="${ARC_NAMESPACE}" \ + --set auth.url="https://github.com/${TARGET_ORG}/${TARGET_REPO}" \ + --set auth.githubToken="${GITHUB_TOKEN}" \ + --set scaleset.name="${SCALE_SET_NAME}" \ + --set scaleset.minRunners=5 \ + "${ROOT_DIR}/charts/gha-runner-scale-set-experimental" \ + --version="${VERSION}" \ --debug if ! NAME="${SCALE_SET_NAME}" NAMESPACE="${ARC_NAMESPACE}" wait_for_scale_set; then @@ -59,21 +62,19 @@ function upgrade_scale_set() { echo "Generated upgrade marker: ${UPGRADE_MARKER}" - PATCH_APPLIED_TIME=$(date -u +"%Y-%m-%dT%H:%M:%SZ") - echo "Captured PATCH_APPLIED_TIME: ${PATCH_APPLIED_TIME}" - helm upgrade "${SCALE_SET_NAME}" \ --namespace "${SCALE_SET_NAMESPACE}" \ - --set githubConfigUrl="https://github.com/${TARGET_ORG}/${TARGET_REPO}" \ - --set githubConfigSecret.github_token="${GITHUB_TOKEN}" \ - --set minRunners=1 \ - --set template.spec.containers[0].name="runner" \ - --set template.spec.containers[0].image="ghcr.io/actions/actions-runner:latest" \ - --set template.spec.containers[0].command={"/home/runner/run.sh"} \ - --set template.spec.containers[0].env[0].name="TEST" \ - --set template.spec.containers[0].env[0].value="E2E TESTS" \ - --set "template.metadata.labels.e2e\.arc/upgrade-marker=${UPGRADE_MARKER}" \ - "${ROOT_DIR}/charts/gha-runner-scale-set" \ + --set controllerServiceAccount.name="${ARC_NAME}-gha-rs-controller" \ + --set controllerServiceAccount.namespace="${ARC_NAMESPACE}" \ + --set auth.url="https://github.com/${TARGET_ORG}/${TARGET_REPO}" \ + --set auth.githubToken="${GITHUB_TOKEN}" \ + --set scaleset.name="${SCALE_SET_NAME}" \ + --set runner.container.image="ghcr.io/actions/actions-runner:latest" \ + --set runner.container.command={"/home/runner/run.sh"} \ + --set runner.container.env[0].name="TEST" \ + --set runner.container.env[0].value="E2E TESTS" \ + --set "runner.pod.metadata.labels.e2e\.arc/upgrade-marker=${UPGRADE_MARKER}" \ + "${ROOT_DIR}/charts/gha-runner-scale-set-experimental" \ --version="${VERSION}" \ --debug