diff --git a/functions/supplier/websocket-supplier/pom.xml b/functions/supplier/websocket-supplier/pom.xml
index 8b39aaf0..05618974 100644
--- a/functions/supplier/websocket-supplier/pom.xml
+++ b/functions/supplier/websocket-supplier/pom.xml
@@ -28,6 +28,12 @@
spring-boot-starter-security
test
+
+ org.springframework.cloud.fn
+ function-test-support
+ ${project.version}
+ test
+
diff --git a/scripts/deploy-gh-runners.sh b/scripts/deploy-gh-runners.sh
index f82b093c..bfc8d741 100755
--- a/scripts/deploy-gh-runners.sh
+++ b/scripts/deploy-gh-runners.sh
@@ -101,5 +101,6 @@ else
kubectl create --save-config --namespace $NS -f https://github.com/actions-runner-controller/actions-runner-controller/releases/download/$ARC_VER/actions-runner-controller.yaml
$SCDIR/wait-deployment.sh $SVC $NS
fi
+$SCDIR/large-runners.sh 1
SCALE_MIN=$($SCDIR/determine-default.sh $CLUSTER_NAME "scale_down")
$SCDIR/limit-runners.sh $SCALE_MIN
diff --git a/scripts/large-runners.sh b/scripts/large-runners.sh
new file mode 100755
index 00000000..16520e6c
--- /dev/null
+++ b/scripts/large-runners.sh
@@ -0,0 +1,64 @@
+#!/bin/bash
+SCDIR=$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")
+SCDIR=$(realpath $SCDIR)
+PARENT=$(realpath $SCDIR/..)
+
+function max_replicas() {
+ kubectl get horizontalrunnerautoscalers --output=json | jq '.items | map(select(.spec.scaleTargetRef.name == "runners-stream-ci-large")) | .[] | .spec.maxReplicas'
+}
+
+function count_runners() {
+ kubectl get rdeploy | grep -F "runners-stream-ci-large" | awk '{print $2}'
+}
+function count_running() {
+ kubectl get rdeploy | grep -F "runners-stream-ci-large" | awk '{print $4}'
+}
+TARGET=$1
+if [ "$1" = "" ]; then
+ TARGET=1
+fi
+CURRENT=$(count_runners)
+echo "Connecting to stream-apps-gh-runners. $CURRENT runners"
+MAX_RUNNERS=$2
+if [ "$MAX_RUNNERS" != "" ]; then
+ if ((MAX_RUNNERS < TARGET)); then
+ TARGET=$MAX_RUNNERS
+ echo "Runners. Target reduced to $TARGET"
+ fi
+fi
+if ((TARGET < 0)); then
+ TARGET=1
+fi
+OS=$(uname)
+OS="${OS//./L&}"
+ARCH=$(uname -i)
+case $ARCH in
+"x86_64")
+ ARCH=amd64
+ ;;
+*)
+ echo "Architecture:$ARCH may not be supported by summerwind/actions-runner"
+ ;;
+esac
+
+SCALING=$($SCDIR/determine-default.sh stream_apps_gh_runners runner_scaling)
+cp $SCDIR/k8s/runners-stream-ci-large-template.yaml runners-stream-ci.yaml
+ARC_RUNNER_VER=$($SCDIR/determine-default.sh stream-apps-gh-runners "actions_runner_version")
+if [ "$ARC_RUNNER_VER" == "" ]; then
+ ARC_RUNNER_VER=latest
+fi
+sed -i 's/tag-placeholder/'"$ARC_RUNNER_VER"'/g' runners-stream-ci.yaml
+if [ "$SCALING" == "auto" ]; then
+ if [ "$MAX_RUNNERS" == "" ]; then
+ MAX_RUNNERS=$(max_replicas)
+ fi
+ echo "Runners: Max runners to $MAX_RUNNERS"
+ echo "Runners: changing scaling min: $TARGET, max: $MAX_RUNNERS"
+ sed -i 's/max-replicas-placeholder/'"$MAX_RUNNERS"'/g' runners-stream-ci.yaml
+ sed -i 's/min-replicas-placeholder/'"$TARGET"'/g' runners-stream-ci.yaml
+else
+ echo "Runners:$CURRENT change to $TARGET"
+ sed -i 's/replicas-placeholder/'"$TARGET"'/g' runners-stream-ci.yaml
+fi
+rm -f runners-stream-ci.yaml
+$SCDIR/check-runners.sh