haproxy/reg-tests/connection/reverse_connect_full.vtc
Amaury Denoyelle 86e5c607d1 MINOR: rhttp: mark reverse HTTP as experimental
Mark the reverse HTTP feature as experimental. This will allow to adjust
if needed the configuration mechanism with future developments without
maintaining retro-compatibility.

Concretely, each config directives linked to it now requires to specify
first global expose-experimental-directives before. This is the case for
the following directives :
- rhttp@ prefix uses in bind and server lines
- nbconn bind keyword
- attach-srv tcp rule

Each documentation section refering to these keywords are updated to
highlight this new requirement.

Note that this commit has duplicated on several places the code from the
global function check_kw_experimental(). This is because the latter only
work with cfg_keyword type. This is not adapted with bind_kw or
action_kw types. This should be improve in a future patch.
2023-11-30 15:04:27 +01:00

71 lines
1.2 KiB
Plaintext

varnishtest "Reverse connect full test"
feature ignore_unknown_macro
#REQUIRE_VERSION=2.9
server s1 {
rxreq
txresp
} -start
haproxy h_edge -conf {
global
expose-experimental-directives
defaults
log global
timeout connect "${HAPROXY_TEST_TIMEOUT-5s}"
timeout client "${HAPROXY_TEST_TIMEOUT-5s}"
timeout server "${HAPROXY_TEST_TIMEOUT-5s}"
mode http
frontend pub
bind "fd@${pub}"
use_backend be-reverse
backend be-reverse
server dev rhttp@
frontend priv
bind "fd@${priv}" proto h2
tcp-request session attach-srv be-reverse/dev
} -start
haproxy h_dev -conf {
global
expose-experimental-directives
defaults
log global
timeout connect "${HAPROXY_TEST_TIMEOUT-5s}"
timeout client "${HAPROXY_TEST_TIMEOUT-5s}"
timeout server "${HAPROXY_TEST_TIMEOUT-5s}"
mode http
frontend fe
bind "rhttp@be-pre-connect/srv"
use_backend be
backend be-pre-connect
server srv ${h_edge_priv_addr}:${h_edge_priv_port} proto h2
backend be
server srv ${s1_addr}:${s1_port}
}
client c1 -connect ${h_edge_pub_sock} {
txreq -url "/"
rxresp
expect resp.status == 503
} -run
haproxy h_dev -start
# TODO replace delay by a proper wait
delay 3
client c1 -connect ${h_edge_pub_sock} {
txreq -url "/"
rxresp
expect resp.status == 200
} -run