mirror of
https://github.com/actions/actions-runner-controller.git
synced 2025-12-11 03:57:01 +00:00
Use Argo Tunnel for exposing the autoscaler's webhook server (#1595)
I've been manually setting up Argo Tunnel to expose the webhook server while running E2E tests so that I can cover the webhook-based autoscaling. This automates the setup process so that we can automatiaclly bring up and down cloudflared before/after the test run, so that it can be a part of our upcoming automated E2E test.
This commit is contained in:
@@ -126,6 +126,7 @@ func TestE2E(t *testing.T) {
|
||||
skipRunnerCleanUp := os.Getenv("ARC_E2E_SKIP_RUNNER_CLEANUP") != ""
|
||||
retainCluster := os.Getenv("ARC_E2E_RETAIN_CLUSTER") != ""
|
||||
skipTestIDCleanUp := os.Getenv("ARC_E2E_SKIP_TEST_ID_CLEANUP") != ""
|
||||
skipArgoTunnelCleanUp := os.Getenv("ARC_E2E_SKIP_ARGO_TUNNEL_CLEAN_UP") != ""
|
||||
|
||||
env := initTestEnv(t, k8sMinorVer)
|
||||
|
||||
@@ -160,6 +161,16 @@ func TestE2E(t *testing.T) {
|
||||
env.installActionsRunnerController(t, "summerwind/actions-runner-controller", "v0.24.1", testID)
|
||||
})
|
||||
|
||||
t.Run("install argo-tunnel", func(t *testing.T) {
|
||||
env.installArgoTunnel(t)
|
||||
})
|
||||
|
||||
if !skipArgoTunnelCleanUp {
|
||||
t.Cleanup(func() {
|
||||
env.uninstallArgoTunnel(t)
|
||||
})
|
||||
}
|
||||
|
||||
t.Run("deploy runners", func(t *testing.T) {
|
||||
env.deploy(t, RunnerSets, testID)
|
||||
})
|
||||
@@ -210,6 +221,16 @@ func TestE2E(t *testing.T) {
|
||||
env.installActionsRunnerController(t, "summerwind/actions-runner-controller", "v0.24.1", testID)
|
||||
})
|
||||
|
||||
t.Run("install argo-tunnel", func(t *testing.T) {
|
||||
env.installArgoTunnel(t)
|
||||
})
|
||||
|
||||
if !skipArgoTunnelCleanUp {
|
||||
t.Cleanup(func() {
|
||||
env.uninstallArgoTunnel(t)
|
||||
})
|
||||
}
|
||||
|
||||
t.Run("deploy runners", func(t *testing.T) {
|
||||
env.deploy(t, RunnerDeployments, testID)
|
||||
})
|
||||
@@ -425,6 +446,28 @@ func (e *env) do(t *testing.T, op string, kind DeployKind, testID string) {
|
||||
e.RunScript(t, "../../acceptance/deploy_runners.sh", testing.ScriptConfig{Dir: "../..", Env: scriptEnv})
|
||||
}
|
||||
|
||||
func (e *env) installArgoTunnel(t *testing.T) {
|
||||
e.doArgoTunnel(t, "apply")
|
||||
}
|
||||
|
||||
func (e *env) uninstallArgoTunnel(t *testing.T) {
|
||||
e.doArgoTunnel(t, "delete")
|
||||
}
|
||||
|
||||
func (e *env) doArgoTunnel(t *testing.T, op string) {
|
||||
t.Helper()
|
||||
|
||||
scriptEnv := []string{
|
||||
"KUBECONFIG=" + e.Kubeconfig(),
|
||||
"OP=" + op,
|
||||
"TUNNEL_ID=" + os.Getenv("TUNNEL_ID"),
|
||||
"TUNNE_NAME=" + os.Getenv("TUNNEL_NAME"),
|
||||
"TUNNEL_HOSTNAME=" + os.Getenv("TUNNEL_HOSTNAME"),
|
||||
}
|
||||
|
||||
e.RunScript(t, "../../acceptance/argotunnel.sh", testing.ScriptConfig{Dir: "../..", Env: scriptEnv})
|
||||
}
|
||||
|
||||
func (e *env) runnerLabel(testID string) string {
|
||||
return "test-" + testID
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user