Upgrade

Upgrade HAProxy Enterprise on BSD

You can upgrade HAProxy Enterprise to version 3.1r1 on the following operating systems:

HAProxy Enterprise version Release date End of life Supported OS (architecture)
3.1r1 Feb 2025 Feb 2026
  • FreeBSD 13.4 (amd64)

Upgrade to HAProxy Enterprise 3.1r1 Jump to heading

The following upgrade procedure installs a new major version of HAProxy Enterprise.

  1. Issues with the HAProxy Enterprise configuration can cause the load balancer to fail after an upgrade. Even if the service is performing as desired before the upgrade, the upgrade could introduce changes that cause a failure afterward.

    Validate the HAProxy Enterprise configuration file before proceeding with the upgrade. Example: validate the configuration for version 2.9:

    nix
    sudo /opt/hapee-2.9/sbin/hapee-lb -c -f /etc/hapee-2.9/hapee-lb.cfg -V
    nix
    sudo /opt/hapee-2.9/sbin/hapee-lb -c -f /etc/hapee-2.9/hapee-lb.cfg -V
    nix
    sudo docker exec hapee /opt/hapee-2.9/sbin/hapee-lb -c -f /etc/hapee-2.9/hapee-lb.cfg -V
    nix
    sudo docker exec hapee /opt/hapee-2.9/sbin/hapee-lb -c -f /etc/hapee-2.9/hapee-lb.cfg -V

    About the configuration validation command

    • In version 2.8 and earlier, the command indicates a valid configuration by printing Configuration file is valid in addition to setting the zero return status.
    • In version 2.9 and later, the command sets the zero return status for a valid configuration but does not display a message. To display the message, include the -V option on the command line.

    Multiple configuration files

    If you have multiple configuration files in your application, be sure to check them all in the correct order.

    Alerts and warnings that appear in the console output explain the errors encountered. An alert is a fatal condition and prohibits the service from starting. A warning indicates a condition that is not fatal now but may become fatal in the target release. Address all the errors until you receive the successful output: Configuration file is valid.

  2. If the HAProxy Enterprise server is part of a high-availability cluster, take it out of the cluster:

    • If using Active/Active clustering, update your network to stop sending traffic to the load balancer. For example, if using DNS roundrobin, remove the load balancer from DNS.
    • If using Active/Standby clustering, then on the active load balancer edit /etc/hapee-extras/hapee-vrrp.cfg. Lower the priority value to less than the standby load balancer’s priority. This will put the active load balancer into the standby state and simultaneously activate the standby load balancer. Then restart the hapee-extras-vrrp service.
  3. Install HAProxy Enterprise 3.1r1 by running the following command and replacing <HAProxy Enterprise Key> with your HAProxy Enterprise license key:

    nix
    wget https://www.haproxy.com/static/install_haproxy_enterprise.sh
    sudo bash ./install_haproxy_enterprise.sh \
    --version 3.1r1 \
    --key <HAProxy Enterprise key>
    nix
    wget https://www.haproxy.com/static/install_haproxy_enterprise.sh
    sudo bash ./install_haproxy_enterprise.sh \
    --version 3.1r1 \
    --key <HAProxy Enterprise key>
  4. Update additional modules. You may be running additional modules with HAProxy Enterprise, which you must also reinstall when you upgrade to a new release. Install a package using its name, for example, upgrade the lb-update package:

    nix
    sudo pkg install hapee-3.1r1-lb-update
    nix
    sudo pkg install hapee-3.1r1-lb-update
  5. Copy /etc/hapee-<PREVIOUS VERSION>/hapee-lb.cfg over to /etc/hapee-3.1/hapee-lb.cfg and any associated files (maps, certificates, etc).

  6. Optionally, you might want to validate your configuration against the new load balancer before disabling the old load balancer. Use the -c option to check the configuration.

    nix
    sudo /opt/hapee-3.1/sbin/hapee-lb -c -f /etc/hapee-3.1/hapee-lb.cfg -V
    nix
    sudo /opt/hapee-3.1/sbin/hapee-lb -c -f /etc/hapee-3.1/hapee-lb.cfg -V

    About the configuration validation command

    • In version 2.8 and earlier, the command indicates a valid configuration by printing Configuration file is valid in addition to setting the zero return status.
    • In version 2.9 and later, the command sets the zero return status for a valid configuration but does not display a message. To display the message, include the -V option on the command line.

    Multiple configuration files

    If you have multiple configuration files in your application, be sure to check them all in the correct order.

    Alerts and warnings that appear in the console output explain the errors encountered. Address all the errors until you receive the successful output: Configuration file is valid.

  7. Stop the old HAProxy Enterprise daemon and start the new daemon:

    nix
    sudo service hapee_<PREVIOUS VERSION>_lb onestop
    sudo service hapee_31_lb onestart
    nix
    sudo service hapee_<PREVIOUS VERSION>_lb onestop
    sudo service hapee_31_lb onestart
  8. Run tail -f /var/log/messages (or distribution equivalent) to check for warnings or errors.

  9. Run curl localhost to ensure that HAProxy Enterprise is responding. Adjust address/port as needed, and use a local address that is currently active on the box and not a VRRP IP.

  10. Put the upgraded server back into the cluster.

  11. Repeat this procedure on secondary servers.

Post-upgrade Jump to heading

After you upgrade, see the section on enterprise modules on how to enable and configure each one.

After the new HAProxy Enterprise version has been running for a while, you can uninstall the old HAProxy Enterprise version. To uninstall a package:

nix
sudo pkg delete hapee-<PREVIOUS VERSION>-lb
nix
sudo pkg delete hapee-<PREVIOUS VERSION>-lb

Update HAProxy Enterprise Jump to heading

The update procedure installs the latest build for your current HAProxy Enterprise version in order to benefit from the latest bug fixes.

nix
sudo pkg update
sudo pkg upgrade
nix
sudo pkg update
sudo pkg upgrade

Do you have any suggestions on how we can improve the content of this page?