diff --git a/src/tests/ofc25/descriptors/topology_e2e.json b/src/tests/ofc25/descriptors/topology_e2e.json index 8c3c1fd40365b6847ecd5752bc36bd8f6b9dbff6..16a4ead244709efdfe8af30e6d727fa5b4812391 100644 --- a/src/tests/ofc25/descriptors/topology_e2e.json +++ b/src/tests/ofc25/descriptors/topology_e2e.json @@ -30,56 +30,56 @@ } ], "links": [ - {"link_id": {"link_uuid": {"uuid": "CSGW1-TP1.1"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "CSGW1"}}, "endpoint_uuid": {"uuid": "PORT-xe1"}}, + {"link_id": {"link_uuid": {"uuid": "IP1-TP1.1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "IP1"}}, "endpoint_uuid": {"uuid": "PORT-xe1"}}, {"device_id": {"device_uuid": {"uuid": "TP1.1"}}, "endpoint_uuid": {"uuid": "CLIENT" }} ]}, - {"link_id": {"link_uuid": {"uuid": "CSGW1-TP1.2"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "CSGW1"}}, "endpoint_uuid": {"uuid": "PORT-xe2"}}, + {"link_id": {"link_uuid": {"uuid": "IP1-TP1.2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "IP1"}}, "endpoint_uuid": {"uuid": "PORT-xe2"}}, {"device_id": {"device_uuid": {"uuid": "TP1.2"}}, "endpoint_uuid": {"uuid": "CLIENT" }} ]}, - {"link_id": {"link_uuid": {"uuid": "CSGW1-TP1.3"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "CSGW1"}}, "endpoint_uuid": {"uuid": "PORT-xe3"}}, + {"link_id": {"link_uuid": {"uuid": "IP1-TP1.3"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "IP1"}}, "endpoint_uuid": {"uuid": "PORT-xe3"}}, {"device_id": {"device_uuid": {"uuid": "TP1.3"}}, "endpoint_uuid": {"uuid": "CLIENT" }} ]}, - {"link_id": {"link_uuid": {"uuid": "CSGW2-TP2.1"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "CSGW2"}}, "endpoint_uuid": {"uuid": "PORT-xe1"}}, + {"link_id": {"link_uuid": {"uuid": "IP2-TP2.1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "IP2"}}, "endpoint_uuid": {"uuid": "PORT-xe1"}}, {"device_id": {"device_uuid": {"uuid": "TP2.1"}}, "endpoint_uuid": {"uuid": "CLIENT" }} ]}, - {"link_id": {"link_uuid": {"uuid": "CSGW2-TP2.2"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "CSGW2"}}, "endpoint_uuid": {"uuid": "PORT-xe2"}}, + {"link_id": {"link_uuid": {"uuid": "IP2-TP2.2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "IP2"}}, "endpoint_uuid": {"uuid": "PORT-xe2"}}, {"device_id": {"device_uuid": {"uuid": "TP2.2"}}, "endpoint_uuid": {"uuid": "CLIENT" }} ]}, - {"link_id": {"link_uuid": {"uuid": "CSGW2-TP2.3"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "CSGW2"}}, "endpoint_uuid": {"uuid": "PORT-xe3"}}, + {"link_id": {"link_uuid": {"uuid": "IP2-TP2.3"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "IP2"}}, "endpoint_uuid": {"uuid": "PORT-xe3"}}, {"device_id": {"device_uuid": {"uuid": "TP2.3"}}, "endpoint_uuid": {"uuid": "CLIENT" }} ]}, - {"link_id": {"link_uuid": {"uuid": "TP1.1-CSGW1"}}, "link_endpoint_ids": [ + {"link_id": {"link_uuid": {"uuid": "TP1.1-IP1"}}, "link_endpoint_ids": [ {"device_id": {"device_uuid": {"uuid": "TP1.1"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, - {"device_id": {"device_uuid": {"uuid": "CSGW1"}}, "endpoint_uuid": {"uuid": "PORT-xe1"}} + {"device_id": {"device_uuid": {"uuid": "IP1"}}, "endpoint_uuid": {"uuid": "PORT-xe1"}} ]}, - {"link_id": {"link_uuid": {"uuid": "TP1.2-CSGW1"}}, "link_endpoint_ids": [ + {"link_id": {"link_uuid": {"uuid": "TP1.2-IP1"}}, "link_endpoint_ids": [ {"device_id": {"device_uuid": {"uuid": "TP1.2"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, - {"device_id": {"device_uuid": {"uuid": "CSGW1"}}, "endpoint_uuid": {"uuid": "PORT-xe2"}} + {"device_id": {"device_uuid": {"uuid": "IP1"}}, "endpoint_uuid": {"uuid": "PORT-xe2"}} ]}, - {"link_id": {"link_uuid": {"uuid": "TP1.3-CSGW1"}}, "link_endpoint_ids": [ + {"link_id": {"link_uuid": {"uuid": "TP1.3-IP1"}}, "link_endpoint_ids": [ {"device_id": {"device_uuid": {"uuid": "TP1.3"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, - {"device_id": {"device_uuid": {"uuid": "CSGW1"}}, "endpoint_uuid": {"uuid": "PORT-xe3"}} + {"device_id": {"device_uuid": {"uuid": "IP1"}}, "endpoint_uuid": {"uuid": "PORT-xe3"}} ]}, - {"link_id": {"link_uuid": {"uuid": "TP2.1-CSGW2"}}, "link_endpoint_ids": [ + {"link_id": {"link_uuid": {"uuid": "TP2.1-IP2"}}, "link_endpoint_ids": [ {"device_id": {"device_uuid": {"uuid": "TP2.1"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, - {"device_id": {"device_uuid": {"uuid": "CSGW2"}}, "endpoint_uuid": {"uuid": "PORT-xe1"}} + {"device_id": {"device_uuid": {"uuid": "IP2"}}, "endpoint_uuid": {"uuid": "PORT-xe1"}} ]}, - {"link_id": {"link_uuid": {"uuid": "TP2.2-CSGW2"}}, "link_endpoint_ids": [ + {"link_id": {"link_uuid": {"uuid": "TP2.2-IP2"}}, "link_endpoint_ids": [ {"device_id": {"device_uuid": {"uuid": "TP2.2"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, - {"device_id": {"device_uuid": {"uuid": "CSGW2"}}, "endpoint_uuid": {"uuid": "PORT-xe2"}} + {"device_id": {"device_uuid": {"uuid": "IP2"}}, "endpoint_uuid": {"uuid": "PORT-xe2"}} ]}, - {"link_id": {"link_uuid": {"uuid": "TP2.3-CSGW2"}}, "link_endpoint_ids": [ + {"link_id": {"link_uuid": {"uuid": "TP2.3-IP2"}}, "link_endpoint_ids": [ {"device_id": {"device_uuid": {"uuid": "TP2.3"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, - {"device_id": {"device_uuid": {"uuid": "CSGW2"}}, "endpoint_uuid": {"uuid": "PORT-xe3"}} + {"device_id": {"device_uuid": {"uuid": "IP2"}}, "endpoint_uuid": {"uuid": "PORT-xe3"}} ]} ] } diff --git a/src/tests/ofc25/tfs-ingress-e2e.yaml b/src/tests/ofc25/tfs-ingress-e2e.yaml index c75a22cb3e7ed630c7616f6670d76b221e2b57d9..c2f4a5a6016a9c24d1ee007c6ae1b56e5847dcf6 100644 --- a/src/tests/ofc25/tfs-ingress-e2e.yaml +++ b/src/tests/ofc25/tfs-ingress-e2e.yaml @@ -17,7 +17,28 @@ kind: Ingress metadata: name: tfs-ingress-e2e annotations: - nginx.ingress.kubernetes.io/rewrite-target: /$2 + nginx.ingress.kubernetes.io/rewrite-target: "/$2" + + # Enable websocket services and configure sticky cookies (seems not to work) + #nginx.org/websocket-services: "nbiservice" + #nginx.org/sticky-cookie-services: "serviceName=nbiservice tfs-nbi-session expires=1h path=/socket.io" + + # Enable sticky sessions (use same backend for all connections + # originated by a specific client, identified through its cookie) + nginx.ingress.kubernetes.io/affinity: "cookie" + nginx.ingress.kubernetes.io/affinity-mode: "persistent" + nginx.ingress.kubernetes.io/session-cookie-name: "tfs-nbi-session" + nginx.ingress.kubernetes.io/session-cookie-path: "/socket.io" + nginx.ingress.kubernetes.io/session-cookie-expires: "3600" + nginx.ingress.kubernetes.io/session-cookie-change-on-failure: "true" + + nginx.ingress.kubernetes.io/limit-rps: "50" # max requests per second per source IP + nginx.ingress.kubernetes.io/limit-connections: "50" # max concurrent connections per source IP + nginx.ingress.kubernetes.io/proxy-connect-timeout: "60" # max timeout for connecting to server + + # Enable long-lived connections, required for websocket/socket.io streams + nginx.ingress.kubernetes.io/proxy-send-timeout: "3600" # max timeout between two successive read operations + nginx.ingress.kubernetes.io/proxy-read-timeout: "3600" # max timeout between two successive write operations spec: ingressClassName: tfs-ingress-class-e2e rules: @@ -44,6 +65,13 @@ spec: name: nbiservice port: number: 8080 + - path: /()(socket.io/.*) + pathType: Prefix + backend: + service: + name: nbiservice + port: + number: 8080 - path: /()(tfs-api/.*) pathType: Prefix backend: diff --git a/src/tests/ofc25/tfs-ingress-ip.yaml b/src/tests/ofc25/tfs-ingress-ip.yaml index aefcfcffede6fd6faa9540fac9ba3dc66d582681..43bc52b4a3cb4794aa7be37ddcf03d492f894084 100644 --- a/src/tests/ofc25/tfs-ingress-ip.yaml +++ b/src/tests/ofc25/tfs-ingress-ip.yaml @@ -17,7 +17,28 @@ kind: Ingress metadata: name: tfs-ingress-ip annotations: - nginx.ingress.kubernetes.io/rewrite-target: /$2 + nginx.ingress.kubernetes.io/rewrite-target: "/$2" + + # Enable websocket services and configure sticky cookies (seems not to work) + #nginx.org/websocket-services: "nbiservice" + #nginx.org/sticky-cookie-services: "serviceName=nbiservice tfs-nbi-session expires=1h path=/socket.io" + + # Enable sticky sessions (use same backend for all connections + # originated by a specific client, identified through its cookie) + nginx.ingress.kubernetes.io/affinity: "cookie" + nginx.ingress.kubernetes.io/affinity-mode: "persistent" + nginx.ingress.kubernetes.io/session-cookie-name: "tfs-nbi-session" + nginx.ingress.kubernetes.io/session-cookie-path: "/socket.io" + nginx.ingress.kubernetes.io/session-cookie-expires: "3600" + nginx.ingress.kubernetes.io/session-cookie-change-on-failure: "true" + + nginx.ingress.kubernetes.io/limit-rps: "50" # max requests per second per source IP + nginx.ingress.kubernetes.io/limit-connections: "50" # max concurrent connections per source IP + nginx.ingress.kubernetes.io/proxy-connect-timeout: "60" # max timeout for connecting to server + + # Enable long-lived connections, required for websocket/socket.io streams + nginx.ingress.kubernetes.io/proxy-send-timeout: "3600" # max timeout between two successive read operations + nginx.ingress.kubernetes.io/proxy-read-timeout: "3600" # max timeout between two successive write operations spec: ingressClassName: tfs-ingress-class-ip rules: @@ -44,6 +65,13 @@ spec: name: nbiservice port: number: 8080 + - path: /()(socket.io/.*) + pathType: Prefix + backend: + service: + name: nbiservice + port: + number: 8080 - path: /()(tfs-api/.*) pathType: Prefix backend: diff --git a/src/tests/ofc25/tfs-ingress-opt.yaml b/src/tests/ofc25/tfs-ingress-opt.yaml index 57e1f9141608c659366f028eb99800bddd870f2c..87fc29de522552488f451e5ff0e3f4f54475d267 100644 --- a/src/tests/ofc25/tfs-ingress-opt.yaml +++ b/src/tests/ofc25/tfs-ingress-opt.yaml @@ -17,7 +17,28 @@ kind: Ingress metadata: name: tfs-ingress-opt annotations: - nginx.ingress.kubernetes.io/rewrite-target: /$2 + nginx.ingress.kubernetes.io/rewrite-target: "/$2" + + # Enable websocket services and configure sticky cookies (seems not to work) + #nginx.org/websocket-services: "nbiservice" + #nginx.org/sticky-cookie-services: "serviceName=nbiservice tfs-nbi-session expires=1h path=/socket.io" + + # Enable sticky sessions (use same backend for all connections + # originated by a specific client, identified through its cookie) + nginx.ingress.kubernetes.io/affinity: "cookie" + nginx.ingress.kubernetes.io/affinity-mode: "persistent" + nginx.ingress.kubernetes.io/session-cookie-name: "tfs-nbi-session" + nginx.ingress.kubernetes.io/session-cookie-path: "/socket.io" + nginx.ingress.kubernetes.io/session-cookie-expires: "3600" + nginx.ingress.kubernetes.io/session-cookie-change-on-failure: "true" + + nginx.ingress.kubernetes.io/limit-rps: "50" # max requests per second per source IP + nginx.ingress.kubernetes.io/limit-connections: "50" # max concurrent connections per source IP + nginx.ingress.kubernetes.io/proxy-connect-timeout: "60" # max timeout for connecting to server + + # Enable long-lived connections, required for websocket/socket.io streams + nginx.ingress.kubernetes.io/proxy-send-timeout: "3600" # max timeout between two successive read operations + nginx.ingress.kubernetes.io/proxy-read-timeout: "3600" # max timeout between two successive write operations spec: ingressClassName: tfs-ingress-class-opt rules: @@ -44,6 +65,13 @@ spec: name: nbiservice port: number: 8080 + - path: /()(socket.io/.*) + pathType: Prefix + backend: + service: + name: nbiservice + port: + number: 8080 - path: /()(tfs-api/.*) pathType: Prefix backend: