diff --git a/test/e2e-linkerd-tests.sh b/test/e2e-linkerd-tests.sh index 301c97d9..5fe18f9a 100755 --- a/test/e2e-linkerd-tests.sh +++ b/test/e2e-linkerd-tests.sh @@ -31,7 +31,9 @@ spec: name: podinfo progressDeadlineSeconds: 60 service: - port: 9898 + port: 80 + targertPort: http + portDiscovery: true canaryAnalysis: interval: 15s threshold: 15 @@ -45,12 +47,26 @@ spec: threshold: 500 interval: 30s webhooks: + - name: http-acceptance-test + type: pre-rollout + url: http://flagger-loadtester.test/ + timeout: 30s + metadata: + type: bash + cmd: "curl -sd 'test' http://podinfo-canary/token | grep token" + - name: grpc-acceptance-test + type: pre-rollout + url: http://flagger-loadtester.test/ + timeout: 5s + metadata: + type: bash + cmd: "grpc_health_probe -connect-timeout=1s -addr=podinfo-canary:9999" - name: load-test url: http://flagger-loadtester.test/ timeout: 5s metadata: type: cmd - cmd: "hey -z 10m -q 10 -c 2 http://podinfo.test:9898/" + cmd: "hey -z 10m -q 10 -c 2 http://podinfo.test/" logCmdOutput: "true" EOF @@ -90,6 +106,21 @@ until ${ok}; do fi done +echo '>>> Waiting for canary finalization' +retries=50 +count=0 +ok=false +until ${ok}; do + kubectl -n test get canary/podinfo | grep 'Succeeded' && ok=true || ok=false + sleep 5 + count=$(($count + 1)) + if [[ ${count} -eq ${retries} ]]; then + kubectl -n linkerd logs deployment/flagger + echo "No more retries left" + exit 1 + fi +done + echo '✔ Canary promotion test passed' cat <