diff options
Diffstat (limited to 'routing-generator/src/test/resources')
11 files changed, 256 insertions, 0 deletions
diff --git a/routing-generator/src/test/resources/lbservices-config b/routing-generator/src/test/resources/lbservices-config new file mode 100644 index 00000000000..d19fc5ee4ae --- /dev/null +++ b/routing-generator/src/test/resources/lbservices-config @@ -0,0 +1,52 @@ +tenants.vespa.applications.music:prod:us-north-1:default.activeRotation true +tenants.vespa.applications.music:prod:us-north-1:default.endpoints[0].hosts[0] "host1-default" +tenants.vespa.applications.music:prod:us-north-1:default.endpoints[0].hosts[1] "host2-default" +tenants.vespa.applications.music:prod:us-north-1:default.endpoints[0].dnsName "music.vespa.us-north-1.vespa.oath.cloud" +tenants.vespa.applications.music:prod:us-north-1:default.endpoints[0].clusterId "default" +tenants.vespa.applications.music:prod:us-north-1:default.endpoints[0].scope "zone" +tenants.vespa.applications.music:prod:us-north-1:default.endpoints[0].routingMethod "sharedLayer4" +tenants.vespa.applications.music:prod:us-north-1:default.endpoints[0].weight 1 +tenants.vespa.applications.music:prod:us-north-1:default.endpoints[1].hosts[0] "host1-default" +tenants.vespa.applications.music:prod:us-north-1:default.endpoints[1].hosts[1] "host2-default" +tenants.vespa.applications.music:prod:us-north-1:default.endpoints[1].dnsName "music.vespa.global.vespa.oath.cloud" +tenants.vespa.applications.music:prod:us-north-1:default.endpoints[1].clusterId "default" +tenants.vespa.applications.music:prod:us-north-1:default.endpoints[1].scope "global" +tenants.vespa.applications.music:prod:us-north-1:default.endpoints[1].routingMethod "sharedLayer4" +tenants.vespa.applications.music:prod:us-north-1:default.endpoints[1].weight 1 +tenants.vespa.applications.music:prod:us-north-1:default.endpoints[2].hosts[0] "host1-default" +tenants.vespa.applications.music:prod:us-north-1:default.endpoints[2].hosts[1] "host2-default" +tenants.vespa.applications.music:prod:us-north-1:default.endpoints[2].dnsName "rotation-02.vespa.global.routing" +tenants.vespa.applications.music:prod:us-north-1:default.endpoints[2].clusterId "default" +tenants.vespa.applications.music:prod:us-north-1:default.endpoints[2].scope "global" +tenants.vespa.applications.music:prod:us-north-1:default.endpoints[2].routingMethod "sharedLayer4" +tenants.vespa.applications.music:prod:us-north-1:default.endpoints[2].weight 1 +tenants.vespa.applications.music:prod:us-north-1:default.endpoints[3].hosts[0] "host1-default" +tenants.vespa.applications.music:prod:us-north-1:default.endpoints[3].hosts[1] "host2-default" +tenants.vespa.applications.music:prod:us-north-1:default.endpoints[3].dnsName "use-weighted.music.vespa.us-north-1-r.vespa.oath.cloud" +tenants.vespa.applications.music:prod:us-north-1:default.endpoints[3].clusterId "default" +tenants.vespa.applications.music:prod:us-north-1:default.endpoints[3].scope "application" +tenants.vespa.applications.music:prod:us-north-1:default.endpoints[3].routingMethod "sharedLayer4" +tenants.vespa.applications.music:prod:us-north-1:default.endpoints[3].weight 0 +tenants.vespa.applications.music:prod:us-north-1:beta.activeRotation true +tenants.vespa.applications.music:prod:us-north-1:beta.endpoints[0].hosts[0] "host3-beta" +tenants.vespa.applications.music:prod:us-north-1:beta.endpoints[0].hosts[1] "host4-beta" +tenants.vespa.applications.music:prod:us-north-1:beta.endpoints[0].dnsName "beta.music.vespa.us-north-1.vespa.oath.cloud" +tenants.vespa.applications.music:prod:us-north-1:beta.endpoints[0].clusterId "default" +tenants.vespa.applications.music:prod:us-north-1:beta.endpoints[0].scope "zone" +tenants.vespa.applications.music:prod:us-north-1:beta.endpoints[0].routingMethod "sharedLayer4" +tenants.vespa.applications.music:prod:us-north-1:beta.endpoints[0].weight 1 +tenants.vespa.applications.music:prod:us-north-1:beta.endpoints[1].hosts[0] "host3-beta" +tenants.vespa.applications.music:prod:us-north-1:beta.endpoints[1].hosts[1] "host4-beta" +tenants.vespa.applications.music:prod:us-north-1:beta.endpoints[1].dnsName "use-weighted.music.vespa.us-north-1-r.vespa.oath.cloud" +tenants.vespa.applications.music:prod:us-north-1:beta.endpoints[1].clusterId "default" +tenants.vespa.applications.music:prod:us-north-1:beta.endpoints[1].scope "application" +tenants.vespa.applications.music:prod:us-north-1:beta.endpoints[1].routingMethod "sharedLayer4" +tenants.vespa.applications.music:prod:us-north-1:beta.endpoints[1].weight 1 +tenants.hosted-vespa.applications.routing:prod:cd-us-west-1:default.activeRotation true +tenants.hosted-vespa.applications.routing:prod:cd-us-west-1:default.endpoints[0].hosts[0] "routing-host1" +tenants.hosted-vespa.applications.routing:prod:cd-us-west-1:default.endpoints[0].hosts[1] "routing-host2" +tenants.hosted-vespa.applications.routing:prod:cd-us-west-1:default.endpoints[0].dnsName "routing.hosted-vespa.cd-us-west-1.hosted-vespa.oath.cloud" +tenants.hosted-vespa.applications.routing:prod:cd-us-west-1:default.endpoints[0].clusterId "default" +tenants.hosted-vespa.applications.routing:prod:cd-us-west-1:default.endpoints[0].scope "zone" +tenants.hosted-vespa.applications.routing:prod:cd-us-west-1:default.endpoints[0].routingMethod "sharedLayer4" +tenants.hosted-vespa.applications.routing:prod:cd-us-west-1:default.endpoints[0].weight 1 diff --git a/routing-generator/src/test/resources/nginx-health-multiple-tenants-application-metrics.json b/routing-generator/src/test/resources/nginx-health-multiple-tenants-application-metrics.json new file mode 100644 index 00000000000..4f537336849 --- /dev/null +++ b/routing-generator/src/test/resources/nginx-health-multiple-tenants-application-metrics.json @@ -0,0 +1,18 @@ + +{"servers": { + "total": 9, + "generation": 1, + "server": [ + {"index": 0, "upstream": "gateway.prod.music.vespa.us-east-2.prod", "name": "10.78.114.166:4080", "status": "up", "rise": 0, "fall": 1, "type": "http", "port": 0}, + {"index": 1, "upstream": "gateway.prod.music.vespa.us-east-2.prod", "name": "10.78.115.68:4080", "status": "up", "rise": 2, "fall": 0, "type": "http", "port": 0}, + {"index": 2, "upstream": "qrs.prod.music.vespa.us-east-2.prod", "name": "10.78.114.166:4080", "status": "up", "rise": 0, "fall": 1, "type": "http", "port": 0}, + {"index": 3, "upstream": "qrs.prod.music.vespa.us-east-2.prod", "name": "10.78.115.68:4080", "status": "up", "rise": 2, "fall": 0, "type": "http", "port": 0}, + {"index": 4, "upstream": "qrs.prod.music.vespa.us-east-2.prod", "name": "10.78.114.166:4080", "status": "down", "rise": 0, "fall": 1, "type": "http", "port": 0}, + {"index": 5, "upstream": "qrs.prod.music.vespa.us-east-2.prod", "name": "10.78.115.68:4080", "status": "down", "rise": 2, "fall": 0, "type": "http", "port": 0}, + {"index": 6, "upstream": "qrs.prod.music.vespa.us-east-2.prod", "name": "10.78.114.166:4080", "status": "down", "rise": 0, "fall": 1, "type": "http", "port": 0}, + {"index": 7, "upstream": "qrs.prod.music.vespa.us-east-2.prod", "name": "10.78.115.68:4080", "status": "down", "rise": 2, "fall": 0, "type": "http", "port": 0}, + {"index": 8, "upstream": "donbot.vespa.us-east-2.prod", "name": "10.201.8.47:4080", "status": "up", "rise": 50604, "fall": 0, "type": "http", "port": 0}, + {"index": 9, "upstream": "donbot.vespa.us-east-2.prod", "name": "10.201.14.46:4080", "status": "down", "rise": 50834, "fall": 0, "type": "http", "port": 0}, + {"index": 10, "upstream": "appearing-in-routing.not.us-east-2.prod", "name": "10.201.14.50:4080", "status": "down", "rise": 50834, "fall": 0, "type": "http", "port": 0} + ] +}} diff --git a/routing-generator/src/test/resources/nginx-health-output-all-down.json b/routing-generator/src/test/resources/nginx-health-output-all-down.json new file mode 100644 index 00000000000..634bcf33148 --- /dev/null +++ b/routing-generator/src/test/resources/nginx-health-output-all-down.json @@ -0,0 +1,11 @@ + +{"servers": { + "total": 4, + "generation": 1, + "server": [ + {"index": 0, "upstream": "gateway.prod.music.vespa.us-east-2.prod", "name": "10.78.114.166:4080", "status": "down", "rise": 0, "fall": 1, "type": "http", "port": 0}, + {"index": 1, "upstream": "gateway.prod.music.vespa.us-east-2.prod", "name": "10.78.115.68:4080", "status": "down", "rise": 2, "fall": 0, "type": "http", "port": 0}, + {"index": 2, "upstream": "gateway.prod.music.vespa.us-east-2.prod-feed", "name": "10.78.114.166:4080", "status": "down", "rise": 0, "fall": 1, "type": "http", "port": 0}, + {"index": 3, "upstream": "gateway.prod.music.vespa.us-east-2.prod-feed", "name": "10.78.115.68:4080", "status": "down", "rise": 1, "fall": 0, "type": "http", "port": 0} + ] +}} diff --git a/routing-generator/src/test/resources/nginx-health-output-all-up-but-other-down.json b/routing-generator/src/test/resources/nginx-health-output-all-up-but-other-down.json new file mode 100644 index 00000000000..c8e15bffb25 --- /dev/null +++ b/routing-generator/src/test/resources/nginx-health-output-all-up-but-other-down.json @@ -0,0 +1,15 @@ + +{"servers": { + "total": 2, + "generation": 1, + "server": [ + {"index": 0, "upstream": "gateway.prod.music.vespa.us-east-2.prod", "name": "10.78.114.166:4080", "status": "up", "rise": 0, "fall": 1, "type": "http", "port": 0}, + {"index": 1, "upstream": "gateway.prod.music.vespa.us-east-2.prod", "name": "10.78.115.68:4080", "status": "up", "rise": 2, "fall": 0, "type": "http", "port": 0}, + {"index": 0, "upstream": "frog.prod.music.vespa.us-east-2.prod", "name": "10.78.114.166:4080", "status": "down", "rise": 0, "fall": 1, "type": "http", "port": 0}, + {"index": 1, "upstream": "frog.prod.music.vespa.us-east-2.prod", "name": "10.78.115.68:4080", "status": "down", "rise": 2, "fall": 0, "type": "http", "port": 0}, + {"index": 2, "upstream": "frog.prod.music.vespa.us-east-2.prod", "name": "10.78.114.166:4080", "status": "down", "rise": 0, "fall": 1, "type": "http", "port": 0}, + {"index": 3, "upstream": "frog.prod.music.vespa.us-east-2.prod", "name": "10.78.115.68:4080", "status": "down", "rise": 2, "fall": 0, "type": "http", "port": 0}, + {"index": 4, "upstream": "frog.prod.music.vespa.us-east-2.prod", "name": "10.78.114.166:4080", "status": "down", "rise": 0, "fall": 1, "type": "http", "port": 0}, + {"index": 5, "upstream": "frog.prod.music.vespa.us-east-2.prod", "name": "10.78.115.68:4080", "status": "down", "rise": 2, "fall": 0, "type": "http", "port": 0} + ] +}} diff --git a/routing-generator/src/test/resources/nginx-health-output-all-up.json b/routing-generator/src/test/resources/nginx-health-output-all-up.json new file mode 100644 index 00000000000..a7a635d9ae3 --- /dev/null +++ b/routing-generator/src/test/resources/nginx-health-output-all-up.json @@ -0,0 +1,9 @@ + +{"servers": { + "total": 2, + "generation": 1, + "server": [ + {"index": 0, "upstream": "gateway.prod.music.vespa.us-east-2.prod", "name": "10.78.114.166:4080", "status": "up", "rise": 0, "fall": 1, "type": "http", "port": 0}, + {"index": 1, "upstream": "gateway.prod.music.vespa.us-east-2.prod", "name": "10.78.115.68:4080", "status": "up", "rise": 2, "fall": 0, "type": "http", "port": 0} + ] +}} diff --git a/routing-generator/src/test/resources/nginx-health-output-policy-down.json b/routing-generator/src/test/resources/nginx-health-output-policy-down.json new file mode 100644 index 00000000000..347042b034a --- /dev/null +++ b/routing-generator/src/test/resources/nginx-health-output-policy-down.json @@ -0,0 +1,12 @@ + +{"servers": { + "total": 5, + "generation": 1, + "server": [ + {"index": 0, "upstream": "gateway.prod.music.vespa.us-east-2.prod", "name": "10.78.114.166:4080", "status": "up", "rise": 0, "fall": 1, "type": "http", "port": 0}, + {"index": 1, "upstream": "gateway.prod.music.vespa.us-east-2.prod", "name": "10.78.115.68:4080", "status": "down", "rise": 2, "fall": 0, "type": "http", "port": 0}, + {"index": 2, "upstream": "gateway.prod.music.vespa.us-east-2.prod", "name": "10.78.114.166:4080", "status": "down", "rise": 0, "fall": 1, "type": "http", "port": 0}, + {"index": 3, "upstream": "gateway.prod.music.vespa.us-east-2.prod", "name": "10.78.115.68:4080", "status": "down", "rise": 2, "fall": 0, "type": "http", "port": 0}, + {"index": 4, "upstream": "gateway.prod.music.vespa.us-east-2.prod", "name": "10.78.115.68:4080", "status": "down", "rise": 2, "fall": 0, "type": "http", "port": 0} + ] +}} diff --git a/routing-generator/src/test/resources/nginx-health-output-policy-up.json b/routing-generator/src/test/resources/nginx-health-output-policy-up.json new file mode 100644 index 00000000000..7dd015a7667 --- /dev/null +++ b/routing-generator/src/test/resources/nginx-health-output-policy-up.json @@ -0,0 +1,12 @@ + +{"servers": { + "total": 5, + "generation": 1, + "server": [ + {"index": 0, "upstream": "gateway.prod.music.vespa.us-east-2.prod", "name": "10.78.114.166:4080", "status": "up", "rise": 0, "fall": 1, "type": "http", "port": 0}, + {"index": 1, "upstream": "gateway.prod.music.vespa.us-east-2.prod", "name": "10.78.115.68:4080", "status": "up", "rise": 2, "fall": 0, "type": "http", "port": 0}, + {"index": 2, "upstream": "gateway.prod.music.vespa.us-east-2.prod", "name": "10.78.114.166:4080", "status": "down", "rise": 0, "fall": 1, "type": "http", "port": 0}, + {"index": 3, "upstream": "gateway.prod.music.vespa.us-east-2.prod", "name": "10.78.115.68:4080", "status": "down", "rise": 2, "fall": 0, "type": "http", "port": 0}, + {"index": 4, "upstream": "gateway.prod.music.vespa.us-east-2.prod", "name": "10.78.115.68:4080", "status": "down", "rise": 2, "fall": 0, "type": "http", "port": 0} + ] +}} diff --git a/routing-generator/src/test/resources/nginx-health-output-stream.json b/routing-generator/src/test/resources/nginx-health-output-stream.json new file mode 100644 index 00000000000..9439e3f1ac4 --- /dev/null +++ b/routing-generator/src/test/resources/nginx-health-output-stream.json @@ -0,0 +1,12 @@ + +{"servers": { + "total": 4, + "generation": 1, + "http": [], + "stream": [ + {"index": 0, "upstream": "gateway.prod.music.vespa.us-east-2.prod", "name": "10.78.114.166:4080", "status": "down", "rise": 0, "fall": 1, "type": "http", "port": 0}, + {"index": 1, "upstream": "gateway.prod.music.vespa.us-east-2.prod", "name": "10.78.115.68:4080", "status": "up", "rise": 2, "fall": 0, "type": "http", "port": 0}, + {"index": 2, "upstream": "gateway.prod.music.vespa.us-east-2.prod-feed", "name": "10.78.114.166:4080", "status": "down", "rise": 0, "fall": 1, "type": "http", "port": 0}, + {"index": 3, "upstream": "gateway.prod.music.vespa.us-east-2.prod-feed", "name": "10.78.115.68:4080", "status": "down", "rise": 1, "fall": 0, "type": "http", "port": 0} + ] +}} diff --git a/routing-generator/src/test/resources/nginx-health-output.json b/routing-generator/src/test/resources/nginx-health-output.json new file mode 100644 index 00000000000..9c27a906a68 --- /dev/null +++ b/routing-generator/src/test/resources/nginx-health-output.json @@ -0,0 +1,11 @@ + +{"servers": { + "total": 4, + "generation": 1, + "server": [ + {"index": 0, "upstream": "gateway.prod.music.vespa.us-east-2.prod", "name": "10.78.114.166:4080", "status": "down", "rise": 0, "fall": 1, "type": "http", "port": 0}, + {"index": 1, "upstream": "gateway.prod.music.vespa.us-east-2.prod", "name": "10.78.115.68:4080", "status": "up", "rise": 2, "fall": 0, "type": "http", "port": 0}, + {"index": 2, "upstream": "gateway.prod.music.vespa.us-east-2.prod-feed", "name": "10.78.114.166:4080", "status": "down", "rise": 0, "fall": 1, "type": "http", "port": 0}, + {"index": 3, "upstream": "gateway.prod.music.vespa.us-east-2.prod-feed", "name": "10.78.115.68:4080", "status": "down", "rise": 1, "fall": 0, "type": "http", "port": 0} + ] +}} diff --git a/routing-generator/src/test/resources/nginx-updated.conf b/routing-generator/src/test/resources/nginx-updated.conf new file mode 100644 index 00000000000..5c90226cdb2 --- /dev/null +++ b/routing-generator/src/test/resources/nginx-updated.conf @@ -0,0 +1,56 @@ +map $ssl_preread_server_name $name { + beta.music.vespa.us-north-1.vespa.oath.cloud beta.music.vespa.us-north-1.prod; + endpoint1 i1.a1.t1.us-north-1.prod; + music.vespa.global.vespa.oath.cloud music.vespa.us-north-1.prod; + music.vespa.us-north-1.vespa.oath.cloud music.vespa.us-north-1.prod; + rotation-02.vespa.global.routing music.vespa.us-north-1.prod; + use-weighted.music.vespa.us-north-1-r.vespa.oath.cloud application-b53398a37399e67cf8c12017e0db764d145f9660.music.vespa; + '' default; +} + +upstream application-b53398a37399e67cf8c12017e0db764d145f9660.music.vespa { + server host1-default:4443 backup; + server host2-default:4443 backup; + server host3-beta:4443 weight=1; + server host4-beta:4443 weight=1; + check interval=2000 fall=5 rise=2 timeout=3000 default_down=true type=http port=4082; + check_http_send "GET /status.html HTTP/1.0\r\nHost: application-b53398a37399e67cf8c12017e0db764d145f9660.music.vespa\r\n\r\n"; + random two; +} + +upstream beta.music.vespa.us-north-1.prod { + server host3-beta:4443; + server host4-beta:4443; + check interval=2000 fall=5 rise=2 timeout=3000 default_down=true type=http port=4082; + check_http_send "GET /status.html HTTP/1.0\r\nHost: beta.music.vespa.us-north-1.prod\r\n\r\n"; + random two; +} + +upstream i1.a1.t1.us-north-1.prod { + server host42:4443; + check interval=2000 fall=5 rise=2 timeout=3000 default_down=true type=http port=4082; + check_http_send "GET /status.html HTTP/1.0\r\nHost: i1.a1.t1.us-north-1.prod\r\n\r\n"; + random two; +} + +upstream music.vespa.us-north-1.prod { + server host1-default:4443; + server host2-default:4443; + check interval=2000 fall=5 rise=2 timeout=3000 default_down=true type=http port=4082; + check_http_send "GET /status.html HTTP/1.0\r\nHost: music.vespa.us-north-1.prod\r\n\r\n"; + random two; +} + +upstream default { + server localhost:4445; + check interval=2000 fall=5 rise=2 timeout=3000 default_down=true type=http port=4080; + check_http_send "GET /status.html HTTP/1.0\r\nHost: localhost\r\n\r\n"; +} + +server { + listen 443 reuseport; + listen [::]:443 reuseport; + proxy_pass $name; + ssl_preread on; + proxy_protocol on; +} diff --git a/routing-generator/src/test/resources/nginx.conf b/routing-generator/src/test/resources/nginx.conf new file mode 100644 index 00000000000..3064bde480a --- /dev/null +++ b/routing-generator/src/test/resources/nginx.conf @@ -0,0 +1,48 @@ +map $ssl_preread_server_name $name { + beta.music.vespa.us-north-1.vespa.oath.cloud beta.music.vespa.us-north-1.prod; + music.vespa.global.vespa.oath.cloud music.vespa.us-north-1.prod; + music.vespa.us-north-1.vespa.oath.cloud music.vespa.us-north-1.prod; + rotation-02.vespa.global.routing music.vespa.us-north-1.prod; + use-weighted.music.vespa.us-north-1-r.vespa.oath.cloud application-b53398a37399e67cf8c12017e0db764d145f9660.music.vespa; + '' default; +} + +upstream application-b53398a37399e67cf8c12017e0db764d145f9660.music.vespa { + server host1-default:4443 backup; + server host2-default:4443 backup; + server host3-beta:4443 weight=1; + server host4-beta:4443 weight=1; + check interval=2000 fall=5 rise=2 timeout=3000 default_down=true type=http port=4082; + check_http_send "GET /status.html HTTP/1.0\r\nHost: application-b53398a37399e67cf8c12017e0db764d145f9660.music.vespa\r\n\r\n"; + random two; +} + +upstream beta.music.vespa.us-north-1.prod { + server host3-beta:4443; + server host4-beta:4443; + check interval=2000 fall=5 rise=2 timeout=3000 default_down=true type=http port=4082; + check_http_send "GET /status.html HTTP/1.0\r\nHost: beta.music.vespa.us-north-1.prod\r\n\r\n"; + random two; +} + +upstream music.vespa.us-north-1.prod { + server host1-default:4443; + server host2-default:4443; + check interval=2000 fall=5 rise=2 timeout=3000 default_down=true type=http port=4082; + check_http_send "GET /status.html HTTP/1.0\r\nHost: music.vespa.us-north-1.prod\r\n\r\n"; + random two; +} + +upstream default { + server localhost:4445; + check interval=2000 fall=5 rise=2 timeout=3000 default_down=true type=http port=4080; + check_http_send "GET /status.html HTTP/1.0\r\nHost: localhost\r\n\r\n"; +} + +server { + listen 443 reuseport; + listen [::]:443 reuseport; + proxy_pass $name; + ssl_preread on; + proxy_protocol on; +} |