mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-05 22:56:57 +02:00
MEDIUM: server: remove experimental-mode for dynamic servers
Dynamic servers feature is now judged to be stable enough. Remove the experimental-mode requirement for "add/del server" commands. This should facilitate dynamic servers adoption.
This commit is contained in:
parent
3881e1775d
commit
76e8b70e43
@ -1541,9 +1541,7 @@ add map [@<ver>] <map> <payload>
|
||||
>
|
||||
|
||||
add server <backend>/<server> [args]*
|
||||
Instantiate a new server attached to the backend <backend>. Only supported on
|
||||
a CLI connection running in experimental mode (see "experimental-mode on").
|
||||
This method is still in development and may change in the future.
|
||||
Instantiate a new server attached to the backend <backend>.
|
||||
|
||||
The <server> name must not be already used in the backend. A special
|
||||
restriction is put on the backend which must used a dynamic load-balancing
|
||||
@ -2014,8 +2012,8 @@ experimental-mode [on|off]
|
||||
set the mode for any worker when connecting to its CLI.
|
||||
|
||||
Example:
|
||||
echo "@1; experimental-mode on; del server be1/s2" | socat /var/run/haproxy.master -
|
||||
echo "experimental-mode on; @1 del server be1/s2" | socat /var/run/haproxy.master -
|
||||
echo "@1; experimental-mode on; <experimental_cmd>..." | socat /var/run/haproxy.master -
|
||||
echo "experimental-mode on; @1 <experimental_cmd>..." | socat /var/run/haproxy.master -
|
||||
|
||||
expert-mode [on|off]
|
||||
This command is similar to experimental-mode but is used to toggle the
|
||||
|
@ -79,7 +79,7 @@ haproxy h1 -conf {
|
||||
|
||||
# check on a functional server
|
||||
haproxy h1 -cli {
|
||||
send "experimental-mode on; add server be1/s1 ${s1_addr}:${s1_port} check inter 200ms rise 1 fall 1"
|
||||
send "add server be1/s1 ${s1_addr}:${s1_port} check inter 200ms rise 1 fall 1"
|
||||
expect ~ "New server registered."
|
||||
|
||||
send "enable server be1/s1"
|
||||
@ -92,7 +92,7 @@ haproxy h1 -cli {
|
||||
send "disable server be1/s1"
|
||||
expect ~ ".*"
|
||||
|
||||
send "experimental-mode on; del server be1/s1"
|
||||
send "del server be1/s1"
|
||||
expect ~ "Server deleted."
|
||||
}
|
||||
|
||||
@ -100,7 +100,7 @@ server s2 -break
|
||||
|
||||
# check on a disabled server
|
||||
haproxy h1 -cli {
|
||||
send "experimental-mode on; add server be1/s2 ${s2_addr}:${s2_port} check inter 200ms rise 1 fall 1"
|
||||
send "add server be1/s2 ${s2_addr}:${s2_port} check inter 200ms rise 1 fall 1"
|
||||
expect ~ "New server registered."
|
||||
|
||||
send "enable server be1/s2"
|
||||
@ -113,13 +113,13 @@ haproxy h1 -cli {
|
||||
send "disable server be1/s2"
|
||||
expect ~ ".*"
|
||||
|
||||
send "experimental-mode on; del server be1/s2"
|
||||
send "del server be1/s2"
|
||||
expect ~ "Server deleted."
|
||||
}
|
||||
|
||||
# agent check
|
||||
haproxy h1 -cli {
|
||||
send "experimental-mode on; add server be1/s3 ${s1_addr}:${s1_port} agent-check agent-addr ${s3_addr} agent-port ${s3_port} agent-send 'hello' agent-inter 200ms rise 1 fall 1"
|
||||
send "add server be1/s3 ${s1_addr}:${s1_port} agent-check agent-addr ${s3_addr} agent-port ${s3_port} agent-send 'hello' agent-inter 200ms rise 1 fall 1"
|
||||
expect ~ "New server registered."
|
||||
|
||||
send "enable agent be1/s3"
|
||||
@ -130,7 +130,7 @@ haproxy h1 -cli {
|
||||
send "disable agent be1/s3; disable server be1/s3"
|
||||
expect ~ ".*"
|
||||
|
||||
send "experimental-mode on; del server be1/s3"
|
||||
send "del server be1/s3"
|
||||
expect ~ "Server deleted."
|
||||
}
|
||||
|
||||
|
@ -38,37 +38,33 @@ client c1 -connect ${h1_feS_sock} {
|
||||
} -run
|
||||
|
||||
haproxy h1 -cli {
|
||||
# experimental mode disabled
|
||||
send "add server foo/s1 ${s1_addr}:${s1_port}"
|
||||
expect ~ "This command is restricted to experimental mode only."
|
||||
|
||||
# non existent backend
|
||||
send "experimental-mode on; add server foo/s1 ${s1_addr}:${s1_port}"
|
||||
send "add server foo/s1 ${s1_addr}:${s1_port}"
|
||||
expect ~ "No such backend."
|
||||
|
||||
# missing address
|
||||
send "experimental-mode on; add server test/s1"
|
||||
send "add server test/s1"
|
||||
expect ~ "'server' expects <name> and <addr>\\[:<port>\\] as arguments."
|
||||
|
||||
# invalid load-balancing algo
|
||||
send "experimental-mode on; add server other/s1 ${s1_addr}:${s1_port}"
|
||||
send "add server other/s1 ${s1_addr}:${s1_port}"
|
||||
expect ~ "Backend must use a dynamic load balancing to support dynamic servers."
|
||||
|
||||
# invalid mux proto
|
||||
send "experimental-mode on; add server other2/s1 ${s1_addr}:${s1_port} proto h2"
|
||||
send "add server other2/s1 ${s1_addr}:${s1_port} proto h2"
|
||||
expect ~ "MUX protocol is not usable for server."
|
||||
|
||||
# valid command
|
||||
send "experimental-mode on; add server test/s1 ${s1_addr}:${s1_port}"
|
||||
send "add server test/s1 ${s1_addr}:${s1_port}"
|
||||
expect ~ "New server registered."
|
||||
|
||||
# duplicate server
|
||||
send "experimental-mode on; add server test/s1 ${s1_addr}:${s1_port}"
|
||||
send "add server test/s1 ${s1_addr}:${s1_port}"
|
||||
expect ~ "Already exists a server with the same name in backend."
|
||||
|
||||
# valid command
|
||||
# specify the proto, it should be accepted for this backend
|
||||
send "experimental-mode on; add server test/s2 ${s1_addr}:${s1_port} proto h2"
|
||||
send "add server test/s2 ${s1_addr}:${s1_port} proto h2"
|
||||
expect ~ "New server registered."
|
||||
}
|
||||
|
||||
|
@ -70,7 +70,7 @@ haproxy h1 -cli {
|
||||
|
||||
haproxy h1 -cli {
|
||||
# non existent backend
|
||||
send "experimental-mode on; add server li-ssl/s1 ${h1_feSslTerm_addr}:${h1_feSslTerm_port} ssl ca-file common.pem verify none"
|
||||
send "add server li-ssl/s1 ${h1_feSslTerm_addr}:${h1_feSslTerm_port} ssl ca-file common.pem verify none"
|
||||
expect ~ "New server registered."
|
||||
|
||||
send "enable server li-ssl/s1"
|
||||
|
@ -117,15 +117,15 @@ haproxy h1 -conf {
|
||||
###
|
||||
haproxy h1 -cli {
|
||||
# invalid command: track on a non-checked server
|
||||
send "experimental-mode on; add server be_check/s1 ${s1_addr}:${s1_port} track be_check/srv_no_check"
|
||||
send "add server be_check/s1 ${s1_addr}:${s1_port} track be_check/srv_no_check"
|
||||
expect ~ "unable to use be_check/srv_no_check for tracking as it does not have any check nor agent enabled."
|
||||
|
||||
# valid track usage
|
||||
send "experimental-mode on; add server be_check/s1 ${s1_addr}:${s1_port} track be_check/srv_check"
|
||||
send "add server be_check/s1 ${s1_addr}:${s1_port} track be_check/srv_check"
|
||||
expect ~ "New server registered."
|
||||
|
||||
# invalid command: track on a dynamic server
|
||||
send "experimental-mode on; add server be_check/s3 ${s1_addr}:${s1_port} track be_check/s1"
|
||||
send "add server be_check/s3 ${s1_addr}:${s1_port} track be_check/s1"
|
||||
expect ~ "unable to use be_check/s1 for tracking as it is a dynamic server."
|
||||
}
|
||||
|
||||
@ -137,17 +137,17 @@ haproxy h1 -cli {
|
||||
# Delete the first dynamic server, enable be1/srv, S1 should report s1 and s3 UP
|
||||
####
|
||||
haproxy h1 -cli {
|
||||
send "experimental-mode on; add server be1/s1 ${s1_addr}:${s1_port} track be1/srv"
|
||||
send "add server be1/s1 ${s1_addr}:${s1_port} track be1/srv"
|
||||
expect ~ "New server registered."
|
||||
send "enable server be1/s1"
|
||||
expect ~ ".*"
|
||||
|
||||
send "experimental-mode on; add server be1/s2 ${s1_addr}:${s1_port} track be1/srv"
|
||||
send "add server be1/s2 ${s1_addr}:${s1_port} track be1/srv"
|
||||
expect ~ "New server registered."
|
||||
send "enable server be1/s2"
|
||||
expect ~ ".*"
|
||||
|
||||
send "experimental-mode on; add server be1/s3 ${s1_addr}:${s1_port} track be1/srv"
|
||||
send "add server be1/s3 ${s1_addr}:${s1_port} track be1/srv"
|
||||
expect ~ "New server registered."
|
||||
send "enable server be1/s3"
|
||||
expect ~ ".*"
|
||||
@ -155,7 +155,7 @@ haproxy h1 -cli {
|
||||
send "disable server be1/srv"
|
||||
expect ~ ".*"
|
||||
|
||||
send "experimental-mode on; del server be1/s1"
|
||||
send "del server be1/s1"
|
||||
expect ~ "Server deleted."
|
||||
|
||||
send "enable server be1/srv"
|
||||
@ -170,17 +170,17 @@ haproxy h1 -cli {
|
||||
# Delete the second dynamic server, enable be2/srv, S2 should report s2 and s3 UP
|
||||
####
|
||||
haproxy h1 -cli {
|
||||
send "experimental-mode on; add server be2/s1 ${s1_addr}:${s1_port} track be2/srv"
|
||||
send "add server be2/s1 ${s1_addr}:${s1_port} track be2/srv"
|
||||
expect ~ "New server registered."
|
||||
send "enable server be2/s1"
|
||||
expect ~ ".*"
|
||||
|
||||
send "experimental-mode on; add server be2/s2 ${s1_addr}:${s1_port} track be2/srv"
|
||||
send "add server be2/s2 ${s1_addr}:${s1_port} track be2/srv"
|
||||
expect ~ "New server registered."
|
||||
send "enable server be2/s2"
|
||||
expect ~ ".*"
|
||||
|
||||
send "experimental-mode on; add server be2/s3 ${s1_addr}:${s1_port} track be2/srv"
|
||||
send "add server be2/s3 ${s1_addr}:${s1_port} track be2/srv"
|
||||
expect ~ "New server registered."
|
||||
send "enable server be2/s3"
|
||||
expect ~ ".*"
|
||||
@ -188,7 +188,7 @@ haproxy h1 -cli {
|
||||
send "disable server be2/srv"
|
||||
expect ~ ".*"
|
||||
|
||||
send "experimental-mode on; del server be2/s2"
|
||||
send "del server be2/s2"
|
||||
expect ~ "Server deleted."
|
||||
|
||||
send "enable server be2/srv"
|
||||
@ -204,29 +204,29 @@ haproxy h1 -cli {
|
||||
####
|
||||
haproxy h1 -cli {
|
||||
# create server 1, track on be3/srv
|
||||
send "experimental-mode on; add server be3/s1 ${s1_addr}:${s1_port} track be3/srv"
|
||||
send "add server be3/s1 ${s1_addr}:${s1_port} track be3/srv"
|
||||
expect ~ "New server registered."
|
||||
send "enable server be3/s1"
|
||||
expect ~ ".*"
|
||||
|
||||
# create server 2, track on be3/srv
|
||||
send "experimental-mode on; add server be3/s2 ${s1_addr}:${s1_port} track be3/srv"
|
||||
send "add server be3/s2 ${s1_addr}:${s1_port} track be3/srv"
|
||||
expect ~ "New server registered."
|
||||
send "enable server be3/s2"
|
||||
expect ~ ".*"
|
||||
|
||||
# create server 3, track on be3/srv
|
||||
send "experimental-mode on; add server be3/s3 ${s1_addr}:${s1_port} track be3/srv"
|
||||
send "add server be3/s3 ${s1_addr}:${s1_port} track be3/srv"
|
||||
expect ~ "New server registered."
|
||||
send "enable server be3/s3"
|
||||
expect ~ ".*"
|
||||
|
||||
# delete all dynamic servers
|
||||
send "experimental-mode on; disable server be3/s1; del server be3/s1"
|
||||
send "disable server be3/s1; del server be3/s1"
|
||||
expect ~ "Server deleted."
|
||||
send "experimental-mode on; disable server be3/s3; del server be3/s3"
|
||||
send "disable server be3/s3; del server be3/s3"
|
||||
expect ~ "Server deleted."
|
||||
send "experimental-mode on; disable server be3/s2; del server be3/s2"
|
||||
send "disable server be3/s2; del server be3/s2"
|
||||
expect ~ "Server deleted."
|
||||
|
||||
# disable / enable the static server
|
||||
|
@ -39,7 +39,7 @@ haproxy h1 -conf {
|
||||
# add a new dynamic server to be able to delete it then
|
||||
haproxy h1 -cli {
|
||||
# add a dynamic server and enable it
|
||||
send "experimental-mode on; add server test/s2 ${s2_addr}:${s2_port}"
|
||||
send "add server test/s2 ${s2_addr}:${s2_port}"
|
||||
expect ~ "New server registered."
|
||||
|
||||
send "enable server test/s2"
|
||||
@ -47,16 +47,12 @@ haproxy h1 -cli {
|
||||
}
|
||||
|
||||
haproxy h1 -cli {
|
||||
# experimental mode disabled
|
||||
send "del server test/s1"
|
||||
expect ~ "This command is restricted to experimental mode only."
|
||||
|
||||
# non existent backend
|
||||
send "experimental-mode on; del server foo/s1"
|
||||
send "del server foo/s1"
|
||||
expect ~ "No such backend."
|
||||
|
||||
# non existent server
|
||||
send "experimental-mode on; del server test/other"
|
||||
send "del server test/other"
|
||||
expect ~ "No such server."
|
||||
}
|
||||
|
||||
@ -74,14 +70,14 @@ client c1 -connect ${h1_feS_sock} {
|
||||
# delete the dynamic server
|
||||
haproxy h1 -cli {
|
||||
# server not in maintenance mode
|
||||
send "experimental-mode on; del server test/s2"
|
||||
send "del server test/s2"
|
||||
expect ~ "Only servers in maintenance mode can be deleted."
|
||||
|
||||
send "disable server test/s2"
|
||||
expect ~ ".*"
|
||||
|
||||
# valid command
|
||||
send "experimental-mode on; del server test/s2"
|
||||
send "del server test/s2"
|
||||
expect ~ "Server deleted."
|
||||
}
|
||||
|
||||
|
@ -27,38 +27,34 @@ haproxy h1 -conf {
|
||||
} -start
|
||||
|
||||
haproxy h1 -cli {
|
||||
# experimental mode disabled
|
||||
send "del server test/s1"
|
||||
expect ~ "This command is restricted to experimental mode only."
|
||||
|
||||
# non existent backend
|
||||
send "experimental-mode on; del server foo/s1"
|
||||
send "del server foo/s1"
|
||||
expect ~ "No such backend."
|
||||
|
||||
# non existent server
|
||||
send "experimental-mode on; del server test/other"
|
||||
send "del server test/other"
|
||||
expect ~ "No such server."
|
||||
|
||||
# server referenced in ACL
|
||||
send "experimental-mode on; del server test/s1"
|
||||
send "del server test/s1"
|
||||
expect ~ "This server cannot be removed at runtime due to other configuration elements pointing to it."
|
||||
|
||||
# tracked server
|
||||
send "experimental-mode on; del server test/s2"
|
||||
send "del server test/s2"
|
||||
expect ~ "This server cannot be removed at runtime due to other configuration elements pointing to it."
|
||||
|
||||
# tracked server
|
||||
send "experimental-mode on; del server test/s3"
|
||||
send "del server test/s3"
|
||||
expect ~ "This server cannot be removed at runtime due to other configuration elements pointing to it."
|
||||
|
||||
# server in running mode
|
||||
send "experimental-mode on; del server test/s4"
|
||||
send "del server test/s4"
|
||||
expect ~ "Only servers in maintenance mode can be deleted."
|
||||
|
||||
send "disable server test/s4"
|
||||
expect ~ ".*"
|
||||
|
||||
# valid command
|
||||
send "experimental-mode on; del server test/s4"
|
||||
send "del server test/s4"
|
||||
expect ~ "Server deleted."
|
||||
}
|
||||
|
@ -70,11 +70,11 @@ haproxy h1 -cli {
|
||||
expect ~ ".*"
|
||||
|
||||
# valid command
|
||||
send "experimental-mode on; del server test/s1"
|
||||
send "del server test/s1"
|
||||
expect ~ "Server deleted."
|
||||
send "experimental-mode on; del server test/s2"
|
||||
send "del server test/s2"
|
||||
expect ~ "Server deleted."
|
||||
send "experimental-mode on; del server test/s3"
|
||||
send "del server test/s3"
|
||||
expect ~ "Server deleted."
|
||||
}
|
||||
|
||||
@ -95,7 +95,7 @@ haproxy h1 -cli {
|
||||
}
|
||||
|
||||
haproxy h1 -cli {
|
||||
send "experimental-mode on; add server test/s1 ${tmpdir}/ssl.sock ssl verify none crt ${testdir}/client1.pem"
|
||||
send "add server test/s1 ${tmpdir}/ssl.sock ssl verify none crt ${testdir}/client1.pem"
|
||||
expect ~ "New server registered."
|
||||
send "enable server test/s1"
|
||||
expect ~ ".*"
|
||||
|
@ -5034,8 +5034,8 @@ static struct cli_kw_list cli_kws = {{ },{
|
||||
{ { "set", "server", NULL }, "set server <bk>/<srv> [opts] : change a server's state, weight, address or ssl", cli_parse_set_server },
|
||||
{ { "get", "weight", NULL }, "get weight <bk>/<srv> : report a server's current weight", cli_parse_get_weight },
|
||||
{ { "set", "weight", NULL }, "set weight <bk>/<srv> (DEPRECATED) : change a server's weight (use 'set server' instead)", cli_parse_set_weight },
|
||||
{ { "add", "server", NULL }, "add server <bk>/<srv> : create a new server (EXPERIMENTAL)", cli_parse_add_server, NULL, NULL, NULL, ACCESS_EXPERIMENTAL },
|
||||
{ { "del", "server", NULL }, "del server <bk>/<srv> : remove a dynamically added server (EXPERIMENTAL)", cli_parse_delete_server, NULL, NULL, NULL, ACCESS_EXPERIMENTAL },
|
||||
{ { "add", "server", NULL }, "add server <bk>/<srv> : create a new server", cli_parse_add_server, NULL },
|
||||
{ { "del", "server", NULL }, "del server <bk>/<srv> : remove a dynamically added server", cli_parse_delete_server, NULL },
|
||||
{{},}
|
||||
}};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user