HAProxy Data Plane API v2.7.0
Release Notes
HAProxy Data Plane API v2.7.0 97c2e28
Build from: [email protected]:haproxytech/dataplaneapi.git
Build date: 2022-12-01T09:53:57Z
Major changes:
- Added support for
program
section as a/v2/services/haproxy/configuration/programs
resource - Added support for
fcgi-app
section as a/v2/services/haproxy/configuration/fcgi_apps
resource - Added support for
mailers
section as a/v2/services/haproxy/configuration/mailers_section
resource - Added support for
http-errors
section as a/v2/services/haproxy/configuration/http_errors_sections
resource - Full support for all configuration keywords in
defaults
,frontend
andbackend
sections - Full support for all configuration keywords in
peers
andrings
- Added support for multiple
defaults
sections distinguished by name:- All defaults sections without a name will now get a default name
unnamed_defaults_<idx>
as this newname
field is mandatory onv2/services/haproxy/configuration/named_defaults
- Added support for
from
keyword ondefaults
,frontend
andbackend
sections. From HAProxy 2.4 you can specify which defaults section do you want to use in your section by specifing something likefrontend <name> from <defaults_name
. - If you are running HAProxy 2.4 or later, this will be added by default to your
frontend
,backend
anddefaults
sections even if you don't specify it. Default will point to the latest defaults section in the configuration file as this is implicitly done by HAProxy. - For more info read: http://docs.haproxy.org/dev/configuration.html#4
- All defaults sections without a name will now get a default name
- Added support for add server and del server on
v2/services/haproxy/runtime/servers
as POST and DELETE methods - Added reload_strategy
- Now you can set in your dataplaneapi .yaml or .hcl configuration files a reload strategy you want to use
- Currently supported reload strategies are: s6, systemd and custom
- With s6 and systemd you can set the
service_name
to override default service name and no need to setreload_cmd
,restart_cmd
,status_cmd
,start_cmd
andstop_cmd
- Your existing configurations will migrate to a custom strategy with all the commands set as before
- If you are using HAProxy 2.7 and have
master-worker
set with master stats socket, the Data Plane API will by default use thereload
command in the stats socket as this is the most reliable way to determine whether reload passed or failed synchronously
- Multiple dependency upgrades
- Bug fixes
Read more information in the blog post.
Changelog
- 97c2e28 DOC/MINOR: configuration: fix configuration examples for reload strategy
- 20626b6 MINOR: go: Use net.JoinHostPort() instead of generic fmt.Sprintf()
- 92ec833 MINOR: go: Remove unnecessary nil err checks on return
- 6cc5f9a BUILD/MINOR: github: run the CI only on PRs
- 88aad5e MINOR: go: Use errors.Is() and fs.ErrNotExist instead of os.IsNotExist()
- bd8065e BUILD/MINOR: go: upgrade go version in our CIs
- 11a52f2 BUILD/MINOR: goreleaser: fix github action arguments
- d89cb68 BUILD/MINOR: goreleaser: add goreleaser github action to ci
- 7b8ebaf BUILD/MINOR: deps: update dependencies
- e267b5e BUG/MEDIUM: tcp: fix wrong types for tcp_request_rules
- d996702 BUG/MINOR: version: make config version middleware to write after request
- 04f7b83 BUG/MINOR: userlists: fix error handling for users and groups
- af0b4f3 BUILD/MEDIUM: go: update go version
- 706def3 BUG/MEDIUM: version: fix config version header adapter
- 402e88e BUILD/MEDIUM: dependencies: upgrade depencencies
- 2bf1786 MINOR: add backwards-compatible bootstrap key expiry check
- 338f5ec MEDIUM: users: in cluster mode allow only cluster users
- bb01c28 MEDIUM: client-native: upgrade client-native and spec
- 5aaf99b MAJOR: Use the master socket to reload configuration and add reload strategies
- 1af5edb TEST/MEDIUM: defaults: add tests for defaults
- ddad862 TEST/MINOR: e2e: fetch hapropxy version from env variable, more reliable
- 26101b1 MAJOR: named_defaults: add support for named defaults
- 44eb2b5 MINOR: Update to latest client-native
- 11d678c BUG/MINOR: handlers: fix reload agent with interface
- dfa052f TEST/MINOR: transactions: fix flaky transaction tests
- 0c0c4ef TEST/MINOR: server: remove now omitted arrays from tests
- 0cf8eec MINOR: add support for http-errors section
- 158b80d MINOR: runtime: support for setting a server's healthcheck address
- b8575bb BUG/MINOR: runtime: return 404 when a server or backend is not found
- 7751e0c MINOR: process manager for programs handling
- cc21335 FEATURE/MINOR: add support for http-error keyword
- 99d7254 MINOR: runtime: fix the POST request to create a sever
- 9534882 MINOR: peers: add missing peers options
- 6c89800 BUG/MINOR: reload: don't revert backup file when not valid
- e61378b BUG/MINOR: runtime: fix avoiding reloads with server_params
- e28583a BUG/MINOR: transactions: return code 404 when transaction not found
- e7a3a04 TEST/MINOR: fcgi-app: e2e coverage for CRUD operations
- d64a0fc MINOR: fcgi-app: implementing CRUD handlers
- 23690dc MINOR: spec: support for FCGI application
- 626f736 MEDIUM: add and delete servers using the runtime API
- e50c242 BUG/MINOR: consul: use allow/deny list instead of white/black list when initiating instance
- 79a83a3 MINOR: configuration: use hostname as a default name in the config
- 2a95517 MEDIUM: spec: add template to skip validating readOnly
- 90bb488 MINOR: client-native: update client native, add errorfiles
- ba6a73d BUILD/MINOR: swagger: generate using latest client-native and go-swagger
- 10d3288 MEDIUM: add mailers section support
- ab0b626 TEST/MEDIUM: e2e: bump the default HAProxy version to 2.6
- 0c33f73 BUG/MEDIUM: reload_agent: create backups dir if it does not exist