The set
command (when not setting options) sets the positional parameters eg
$ set a b c
$ echo $1
a
$ echo $2
b
$ echo $3
c
The --
is the standard "don't treat anything following this as an option"
The "$@"
are all the existing position paramters.
So the sequence
set -- haproxy "$@"
Will put the word haproxy
in front of $1
$2
etc.
eg
$ echo $1,$2,$3
a,b,c
$ set -- haproxy "$@"
$ echo $1,$2,$3,$4
haproxy,a,b,c