Skip to content

HAProxy Data Plane API v2.2.0

Compare
Choose a tag to compare
@aiharos aiharos released this 15 Jan 13:56
· 664 commits to master since this release

Release notes

HAProxy Data Plane API v2.2.0 68bd22b

Build from: [email protected]:haproxytech/dataplaneapi.git
Build date: 2021-01-15T13:48Z

Features:

Consul:

  • added Consul integration with a new endpoint /service_discovery/consul

SSL certificate storage:

  • added storage resource /services/haproxy/storage/ssl_certificates for manipulating SSL certificate files in the managed SSL certificate file directory (/etc/haproxy/ssl by default) regardless of current use in configuration

Maps storage:

  • added storage resource /services/haproxy/storage/maps for manipulating map files in the managed map file directory (/etc/haproxy/maps by default) regardless of current use in configuration

Spoe:

  • added support for configuring SPOE Agents with new resources under /services/haproxy/spoe/: spoe_agents, spoe_files, spoe_groups, spoe_messages, spoe_scopes, spoe_transactions,

General configuration:

  • added a new endpoint /services/haproxy/configuration/version to report internal configuration version for the managed haproxy configuration file
  • added HTTP redirect codes 307 and 308 to redir_code parameter in resource /services/haproxy/configuration/global
  • added log-send-hostname global option support
  • added monitor-uri and monitor_fail to /services/haproxy/configuration/frontends endpoint
  • added option to only_validate raw configuration file without applying
  • added tunnel_timeout parameter to endpoints /services/haproxy/configuration/backends and /services/haproxy/configuration/defaults
  • added option to limit max number of open transactions
  • added support for all remaining settings to server, bind and default-server
  • added tunnel timeout to defaults and backend
  • added ssl_mode_assync support
  • added port-range support for bind
  • added use-service support in http_request_rule

Runtime:

  • added force_reload query parameter to relevant maps endpoints to initiate HAProxy reload immediately
  • added storage_name attribute to maps resource, to reference map in the maps storage resource

Breaking API Changes:

Runtime Maps:

  • moved upload (POST) of full map files from /services/haproxy/runtime/maps to the new map storage endpoint /services/haproxy/storage/maps
  • fetching (GET) a single map file will now return the map file contents
  • fetching (GET) a list of runtime map files will now return only the map files loaded into HAProxy

Changelog

b0cda9c BUG/MAJOR: runtime admin state: correct returning state
1db22e9 BUG/MAJOR: runtime-maps: return map object on file upload
1c1b3ce BUG/MAJOR: runtime: fix comparision for runtimes server states
46006cb BUG/MAJOR: service-discovery: Use Consul Node.Address when Service.Address is empty
0f3e495 BUG/MEDIUM: add support for spaces within the hrd_format
a18e0a6 BUG/MEDIUM: bind: fix ssl-min-ver serialization
8f38732 BUG/MEDIUM: using http-checks v2 on backends retrieval
0de0054 BUG/MINOR: Service Discovery: Reload config only if changes have been made
93e4cf8 BUG/MINOR: add force-reload parameter to storage map replace (PUT)
83f2c6b BUG/MINOR: adv_check: add missing params and move httpchk to adv_check
92e15ed BUG/MINOR: client-native: bumping up to avoid panic on version retrieval
b311da4 BUG/MINOR: consul: fix service whitelist
7337db5 BUG/MINOR: enforce ssl storage dir exists and is usable
224a588 BUG/MINOR: fix HAPROXY_CFGFILES env override of config file location
0265851 BUG/MINOR: fix description of backend endpoint
9eadbc1 BUG/MINOR: fix processing master-worker mode options
78c3e90 BUG/MINOR: log: move up logging initialization
e6a6f96 BUG/MINOR: runtime-maps: enable immediate syncing
9f0f1d8 BUG/MINOR: runtime: return 404 when resource doesn't exists when handling maps
2b158f7 BUG/MINOR: terminate if ConfigFile is missing from HAPROXY_CFGFILES
b385aad BUG/MINOR: try to build app in correct folder
d88e01a BUG/MINOR: typo on runtime servers' settings endpoint summary
a9e47aa BUG/MINOR: transactions: allow only one commit processing at a time
70ad1cf BUILD/MAJOR: CI: move to private repository for pulling images
539f2f3 BUILD/MEDIUM: add check-commit action to CI
68bd22b BUILD/MEDIUM: update versions for release
5baee89 BUILD/MINOR: github: adding e2e jobs on several HAProxy versions
52ee5e2 BUILD/MINOR: gitlab: adding e2e stages
33a92d3 BUILD/MINOR: go mod tidy
24622b1 BUILD/MINOR: making build recipe idempotent
3fdd42b BUILD/MINOR: remove gcflags when building dataplane
7420492 BUILD: add latest spec changes
3cae7be BUILD: add latest spec changes
541d976 BUILD: update config-parser to v3 version
d6c2ad6 BUILD: update go.mod and go sum
a9b8d69 CLEANUP/MINOR: doc: remove duplicated ServiceDiscovery tag
dde2151 CLEANUP/MINOR: improve message clarity when exiting due to missing ConfigFile from HAPROXY_CFGFILES
b4a0a90 CLEANUP/MINOR: remove duplicated error check
8f2c052 CLEANUP: user: move user related functions to user.go
707f485 DOC/MINOR: grammar typo on README.md
5c16b26 DOC/MINOR: transaction: documenting new flag --max-open-transactions
dd04eb1 DOC: update README.md
f469a53 DOCS/MINOR: missing tag for ServiceDiscovery group
1a6e960 FEATURE/MEDIUM: Add service discovery endpoint and consul service deiscovery
8b35239 FEATURE/MEDIUM: config: add configuration version endpoint
f07fedd FEATURE/MEDIUM: ssl-certs: added handlers for SSL cert CRUD operations
c9e353b FEATURE/MEDIUM: transaction: rate limiting on max amount of open transactions
f28c57f FEATURE/MINOR: configuration: validate configuration without applying
dc0afd1 FEATURE/MINOR: global: add log-send-hostname support
33636b2 MEDIUM: cluster: adjust params to support multicluster mode
1e25780 MEDIUM: get storage map file returns file contents
66859fe MEDIUM: protect from deleting map files still in use
7be50be MEDIUM: protect from deleting ssl certs still in use
62e41d9 MEDIUM: runtime maps list only managed files by default
70e0dd2 MEDIUM: spoe: add CRUD handlers with transaction support
383bc6e MEDIUM: ssl-certs: add models and use them
d5576be MEDIUM: storage: endpoints to manipulate map files on disk added
8ff04bc MEDIUM: use MapsDir cli option for maps storage, ensure it exists, provide default
a1a56c0 MINOR: CI: add reload override so tests can be run faster
5bf5ee1 MINOR: Configuration: added tunnel timeout to defaults and backend
76f74d3 MINOR: adc_check: update embeded spec
c039c1e MINOR: add file (full path) attribute to SSL certificate model
cfd7146 MINOR: add force_reload query parameter to SSL certificate resource paths
51a6765 MINOR: auth: skipping basic authentication in case of mTLS
04964ca MINOR: doc: add managed notice to configuration file
382bf43 MINOR: errors: return 200 for GET on container endpoints if parent not found
3bbb250 MINOR: extend test runner with env. variables for different scenarios
8a855ed MINOR: http-request: add missing redirect codes
b74c1c4 MINOR: implementing monitor-uri and monitor fail
8942521 MINOR: logging: implementing request ID middleware
4025d3e MINOR: runtime-maps: add force reload parameter for file upload
e629591 MINOR: spec-conversion: added unit test for conversion from v2 to v3
cd9994c MINOR: ssl: adding async support
310ca70 MINOR: typo on log message
98856f5 MINOR: update embedded spec: redir_code: add 307, 308 as possible return codes
ee82651 MINOR: update embedded specification for acl_file and acl_file_entries
f4f80db MINOR: use force_sync query parameter instead of forceSync
1a392f5 MINOR: yaml: use single tag instead of multiple tags
0fc088c Merge pull request #137 from bmcustodio/bmcustodio-update-spec
7a7428e REORG/MEDIUM: maps: move map file upload path from runtime to map storage endpoint
c327520 REORG/MEDIUM: use storage_name and switch map upload to MapStorage
e11db5b REORG/MINOR: license: adding license to missing files
b2ea2f8 REORG/MINOR: arguments: rename storage-ssl-certs-dir to ssl-certs-dir
be7fc0b TEST/BUG: using nc is unreliable in confirming dataplane startup
db5acaf TEST/MAJOR: introduce bats-assert and rework dpa functions to use it
8d4e605 TEST/MEDIUM: add aditional helper functions
6c1efe7 TEST/MEDIUM: bug: dockerfile datplane cannot find haproxy binary
06c7224 TEST/MEDIUM: introduce docker command helpers and use them
58cd1a3 TEST/MEDIUM: replace curl in test setup with docker commands
57096bc TEST/MINOR: add regression tests for runtime and config issue
e48bc52 TEST/MINOR: add ssl storage e2e tests
b9e732d TEST/MINOR: add storage map e2e tests
5673988 TEST/MINOR: backend: add tests for backend switching rules
9abff03 TEST/MINOR: backend: add tests for backends
1340bfb TEST/MINOR: bats: add storage testing helper functions
c8943be TEST/MINOR: binds: add tests for binds
eedbde5 TEST/MINOR: cleanup assert invocations
1e4d5dc TEST/MINOR: e2e: scaffolding and documenting the e2e suite
adfab66 TEST/MINOR: frontend: add tests for frontends
fcbcc7e TEST/MINOR: http: add tests for HTTP request rules
af69bfd TEST/MINOR: http: add tests for HTTP response rules
ee560a5 TEST/MINOR: server: add tests for servers
45e56df TEST/MINOR: set curl max-time
0823a5a TEST/MINOR: set timeout on waiting for dataplaneapi to start
4ec948a TEST/MINOR: site: add tests for sites
2c1d0b6 TEST/MINOR: tcp: add tests for TCP request rules
f37b543 TEST/MINOR: tcp: add tests for TCP response rules
e05ca0e TEST/REFACTOR: rename dataplaneapi helper functions to dpa_