Highlights of this version:
- HAProxy upgrade from 1.9 to 2.0
- Metrics:
- HAProxy's internal Prometheus exporter, see the doc
- HAProxy Ingress exporter for Prometheus
- HAProxy Ingress dashboard for Grafana, see the metrics example
v0.10-snapshot.1
- Update to haproxy 2.0.11 #414
- Remove v0.7 controller #483
- Add frontend to the internal prometheus exporter #486
- Defaults to not create prometheus listener #491
- Metric collector and exporter #487 - doc
- Command-line options:
--healthz-port
--profiling
--stats-collect-processing-period
- Command-line options:
v0.10-snapshot.2
v0.10-snapshot.3
- Sort tcp services by name and port #506
- Add backend-server-naming key #507 - doc
- Configuration keys:
backend-server-naming
- Configuration keys:
- Add ssl-redirect-code global config key #511 - doc
- Configuration keys:
ssl-redirect-code
- Configuration keys:
- Add modsecurity timeout connect/server #512 - doc
- Configuration keys:
modsecurity-timeout-connect
modsecurity-timeout-server
- Configuration keys:
- Add ssl-fingerprint-lower config key #515 - doc
- Configuration keys:
ssl-fingerprint-lower
- Configuration keys:
- Remove haproxy warning filter #514
- Create frontends even without ingress #516
- Add auth-tls-strict configuration key #513 - doc
- Configuration keys:
auth-tls-strict
- Configuration keys:
- Update to haproxy 2.0.12 #518
Breaking backward compatibility from v0.8:
- TLS 1.0 and 1.1 was dropped in the default configuration. Several cipher suites was dropped as well, mostly non ephemeral key exchange algorithms. This might break old http clients. See the v0.8 default values in the SSL cipher suite and SSL options docs and adjust the configuration if needed.
- Some default configurations was changed to improve performance of a vanilla deployment, this might cause unexpected behaviour:
- Default
dynamic-scaling
configuration key was changed fromfalse
totrue
- Default
nbthread
configuration key was changed from1
to2
- Default
--reload-strategy
command-line option was changed fromnative
toreusesocket
- Default
Highlights of this version:
- HAProxy upgrade from 1.8 to 1.9
- HTTP/2 support in the backend side
- TLS 1.3 support
- Certificate update using ACME-v2 protocol
- Hability to run as non-root, see the security doc
New features:
- Use one bind per frontend #382
- Update to haproxy 1.9.10 #381
- Add h2 backend proto and use-htx global option #387
- Make sni optional if a certificate is optional and is not provided #392
- Add custom-frontend snippet to http:80 frontend #395
- Join samples using concat #393
- Use 421 response if sni and headers does not match #394
- Add syslog-length configmap option #396 - doc
- Configuration keys:
ingress.kubernetes.io/syslog-length
- Configuration keys:
- Add CRL Support in the TLS Secret for Client Authentication #328
- Add CRL support in the new controller #399
- Add per request deployment group selection - blue/green deployment #402 - doc
- Configuration keys:
ingress.kubernetes.io/blue-green-cookie
ingress.kubernetes.io/blue-green-header
- Configuration keys:
- Sort ingress using creation timestamp #405
- Update default TLS versions and ciphers for client and server connections #403 - doc
- Configuration keys:
ssl-cipher-suites
ssl-cipher-suites-backend
ssl-ciphers-backend
- Configuration keys:
- Update to haproxy 1.9.11 #406
- Add session-cookie-shared #419
- Add dynamic-scaling false option #420
- Improve sorting of internal state #423
- Tuning default thread number and reload strategy #424
- Add leader election #431
- Add work queue #430
- Add forwardfor option - update #437 - doc
- Configuration keys:
ingress.kubernetes.io/forwardfor
- new optionupdate
- Configuration keys:
- Add support for Mod Security DetectionOnly Mode #443 - doc
- Configuration keys:
ingress.kubernetes.io/waf-mode
- Configuration keys:
- Add initial-weight config key #444
- Improve fronting proxy config #434
- Update Go version and use Go mod #439
- Update to haproxy 1.9.12 #446
- Initialize leader election only if needed #447
- Add ip+port bind support for http/https/fronting-proxy #452
- Add failure rate limit on work queue #457
- Customizeable goarch #472
- dumb-init added from alpine repo #471
- Add acme v02 support #391
- Configuration keys - doc:
acme-emails
acme-endpoint
acme-expiring
acme-shared
acme-terms-agreed
ingress.kubernetes.io/cert-signer
- Command-line options - doc:
--acme-check-period
--acme-election-id
--acme-fail-initial-duration
--acme-fail-max-duration
--acme-secret-key-name
--acme-server
--acme-token-configmap-name
--acme-track-tls-annotation
- Configuration keys - doc:
- Update to haproxy 1.9.13 #475
- Update dependencies to k8s 1.16.3 #474
- Add 4xx error pages and CORS Preflight as Lua services #481
- Check acme account before retrieving #479
- Improve equality comparison with acme changes #478
- Add security options #484 - doc
- Configuration keys:
use-chroot
use-haproxy-user
- Configuration keys:
Fixes:
- Fix case on requests from 80/http #425
- Fix case on per-path backend requests #427
- Fix cross-namespace command-line option #433
- Fix host match with a port number #436
- Fix hostname match of domains with client cert auth #453
- Fix panic reading empty targetRef from ep #455
- Fix txn.namespace on http requests #463
- Do ssl-redirect only if tls declares the hostname #465
- Fix case on per-path backend maps #466
- Use the found match pattern #468
- Improve response error on sni mismatch #470
- Fix haproxy.cfg permissions #476
Docs:
- docs: update deployment and DaemonSet APIs to apps/v1 #415
- docs: starting version #417
- docs: update deploy and ds api to apps/v1 #422
- docs: defaults for cors-allow-methods and -headers #445
Fixes and improvements since v0.9-beta.1:
- Change unix sockets user to haproxy #504
- Sort tcp services by name and port #506
- Add backend-server-naming key #507 - doc
- Configuration keys:
backend-server-naming
- Configuration keys:
- Add auth-tls-strict configuration key #513 - doc
- Configuration keys:
auth-tls-strict
- Configuration keys:
- Remove haproxy warning filter #514
- Create frontends even without ingress #516
Fixes and improvements since v0.8:
- Sort tcp services by name and port #506
- Add backend-server-naming key #507 - doc
- Configuration keys:
backend-server-naming
- Configuration keys:
- Add auth-tls-strict configuration key #513 - doc
- Configuration keys:
auth-tls-strict
- Configuration keys:
- Remove haproxy warning filter #514
- Create frontends even without ingress #516
Breaking backward compatibility from v0.7:
Note: A new configuration parser and HAProxy config builder is in place. Despite declared incompatibility changes listed below, all configuration options and behavior should be preserved. Please file an issue if something changed in the v0.8 controller which is not listed here.
- HAProxy's backend naming convention used for services changed from
<namespace>-<svcname>-<port>
to<namespace>_<svcname>_<port>
in order to avoid ambiguity. This should impact as least logging filters and metrics dashboards. - All the other HAProxy's proxy names changed as well - check your logging filters and metrics dasboards.
nbproc-ssl
global configmap option wasn't reimplemented in v0.8, consider usenbthread
instead.strict-host
global configmap option changed the default value fromtrue
tofalse
. Seestrict-host
doc.dynamic-scaling
configuration key changed the default value fromfalse
totrue
nbthread
configuration key changed the default value from1
to2
reload-strategy
command-line option changed the default value fromnative
toreusesocket
The --v07-controller=true
command-line option can be used to revert to the old controller and behavior. Note that in this case the *-v07.tmpl
templates will be used instead. This option will be removed on v0.10.
Improvements on the new internal representation and converters:
- Main issue #274
- Pull requests part1, part2, part3, part4, part5, part6
- About 80% of the controller was rewritten from scratch. The new code base has more consistent behavior, it's more decoupled, easier to understand, test and evolve, and ready to ingress v2 without breaking compatibility with ingress v1. The new configuration is also a lot faster - the bigger the cluster, the faster the config generated by the v0.8 controller.
- Configmap and annotations: declare annotations with prefix (defaults to
ingress.kubernetes.io
) on services or ingress objects, declare without prefix as a global configmap option. The configmap declaration act as a default value, and service takes precedence in the case of conflict with ingress. - The
mode tcp
frontend will be used only if needed:- Authentication with client certificate is used - this will not be a limitation on v0.9 controller and HAProxy 1.9.x
ssl-passthrough
is used- Conflicting
timeout client
declared as annotations
- Fix HAProxy config parsing of a very long list of whitelist CIDRs or a very long list of overlaping /paths in the same domain
Fixes and improvements since v0.7:
- Fix duplication of ConfigFrontend snippets for DefaultBackend #352
- Fix port retrieval for terminatingPod with named targetPort #331
- Disable HTTP Basic Auth on CORS pre-flight OPTIONS request #356
- Configure annotation prefix - doc
- Command-line options:
--annotations-prefix
- Command-line options:
- Agent check #287 - doc
- Annotations or configmap options (without prefix):
ingress.kubernetes.io/agent-check-port
ingress.kubernetes.io/agent-check-addr
ingress.kubernetes.io/agent-check-interval
ingress.kubernetes.io/agent-check-send
- Annotations or configmap options (without prefix):
- Health check #287 - doc
- Annotations or configmap options (without prefix):
ingress.kubernetes.io/health-check-uri
ingress.kubernetes.io/health-check-addr
ingress.kubernetes.io/health-check-port
ingress.kubernetes.io/health-check-interval
ingress.kubernetes.io/health-check-rise-count
ingress.kubernetes.io/health-check-fall-count
- Annotations or configmap options (without prefix):
- Configure the minimum number of free/empty servers per backend - doc
- Annotations or configmap options (without prefix):
ingress.kubernetes.io/slots-min-free
- Annotations or configmap options (without prefix):
- Add CORS Expose Headers option #268 - doc
- Annotations or configmap options (without prefix):
ingress.kubernetes.io/cors-expose-headers
- Annotations or configmap options (without prefix):
- Add SSL Engine options #269 - doc
- Configmap options:
ssl-engine
ssl-mode-async
- Configmap options:
- Add log customizations
- Add TLS ALPN option #307 - doc
- Configmap options:
tls-alpn
- Configmap options:
- Allow hostname/pod name to be used as the cookie value #286 - doc
- Annotations or configmap options (without prefix):
ingress.kubernetes.io/session-cookie-dynamic
- Annotations or configmap options (without prefix):
- Allow redispatch when drain-support is enabled #334 - doc
- Configmap options:
drain-support-redispatch
- Configmap options:
- Add snippet for defaults section #335 - doc
- Configmap options:
config-defaults
- Configmap options:
- Add option to wait defined time when SIGTERM received #363 - doc
- Command-line options:
--wait-before-shutdown
- Command-line options:
- Declare a HAProxy var with the k8s namespace #378 - doc
- Annotation or configmap options (without prefix):
ingress.kubernetes.io/var-namespace
- Annotation or configmap options (without prefix):
Fixes and improvements since v0.8-beta.1:
- Fix service port lookup #385
- Change dynamic update default values #388
- Fix port number lookup of terminating pods #389
Fixes and improvements since v0.8-beta.2:
- Make sni optional if a certificate is optional and is not provided #392
- Add custom-frontend to snippet to http:80 frontend #395
Fixes and improvements since v0.8-beta.3:
- Sort ingress using creation timestamp #405
- Add session-cookie-shared #419
- Configuration keys:
session-cookie-shared
- doc
- Configuration keys:
- Add dynamic-scaling false option #420
- Improve sorting of internal state #423
- Tuning default thread number and reload strategy #424
- Fix case on requests from 80/http #425
Fixes and improvements since v0.8-beta.4:
- Update HAProxy from 1.8.20 to 1.8.22
- Fix case on per-path backend requests #427
- Fix implementation of cross-namespace command-line option #433
- Improve fronting proxy config #434
- Configuration keys:
fronting-proxy-port
- doc
- Configuration keys:
- Fix host match with a port number #436
- Add initial-weight config key #444
- Configuration keys:
initial-weight
- doc
- Configuration keys:
- Add ip+port bind support for http/https/fronting-proxy #452
- Fix panic reading empty targetRef from ep #455
Fixes and improvements since v0.8-beta.5:
- Update HAProxy from 1.8.22 to 1.8.23
- Fix txn.namespace on http requests #463
- Do ssl-redirect only if tls declares the hostname #465
- Fix case on per-path backend maps #466
- Fix haproxy.cfg permissions #476
Fixes and improvements since v0.7.4:
- Update HAProxy from 1.8.22 to 1.8.23
Fixes and improvements since v0.7.3:
- Update HAProxy from 1.8.21 to 1.8.22, which fixes a segmentation fault when using a spoe filter (ModSecurity)
Fixes and improvements since v0.7.2:
- Update HAProxy from 1.8.20 to 1.8.21
- Fix duplication of ConfigFrontend snippets for DefaultBackend #352
- Disable HTTP Basic Auth on CORS pre-flight OPTIONS request #356
Fixes and improvements since v0.7.1:
- Update HAProxy from 1.8.19 to 1.8.20
- Fix port retrieval for terminatingPod with named targetPort #331
Fixes and improvements since v0.7:
- Update libssl and libcrypto #318
Breaking backward compatibility from v0.6:
- Default blue/green deployment mode changed from
pod
todeploy
. Useingress.kubernetes.io/blue-green-mode
annotation to change to the v0.6 behavior. See also the blue/green deployment doc. - Changed default maximum ephemeral DH key size from 1024 to 2048, which might break old TLS clients. Use
ssl-dh-default-max-size
configmap option to change back to 1024 if needed. - Behavior of
ingress.kubernetes.io/server-alias
annotation was changed to mimic hostname syntax. Useingress.kubernetes.io/server-alias-regex
instead if need to use regex. See also the server-alias doc
Fixes and improvements since v0.6:
- Add SSL config on TCP services #192 - doc
- Disable health check of backends #195
- Fix endless loop if SSL/TLS secret does not exist #191
- DNS discovery of backend servers #154 - doc
- Annotations:
ingress.kubernetes.io/use-resolver
- Configmap options:
dns-accepted-payload-size
dns-cluster-domain
dns-hold-obsolete
dns-hold-valid
dns-resolvers
dns-timeout-retry
- Annotations:
- ModSecurity web application firewall #166 and #248
- Multi process and multi thread support #172
- Balance mode of blue/green deployment #201 - doc
- Annotations:
ingress.kubernetes.io/blue-green-balance
ingress.kubernetes.io/blue-green-mode
- Annotations:
- Add configuration snippet options #194 and #252 - doc
- Configmap options:
config-frontend
config-global
- Configmap options:
- Add OAuth2 support #239 - doc
- Add support to ingress/spec/backend #212
- Add SSL config on stats endpoint #193 - doc
- Configmap options:
stats-ssl-cert
- Configmap options:
- Add custom http and https port numbers #190
- Configmap options:
http-port
https-port
- Configmap options:
- Add client cert auth for backend #222 - doc
- Annotations:
ingress.kubernetes.io/secure-crt-secret
- Annotations:
- Add publish-service doc #211 - doc
- Command-line options:
--publish-service
- Command-line options:
- Add option to match URL path on wildcard hostnames #213 - doc
- Configmap options:
strict-host
- Configmap options:
- Add HSTS on default backend #214
- Add Sprig template functions #224 - Sprig doc
- Add watch-namespace command-line option #227 - doc
- Command-line options:
--watch-namespace
- Command-line options:
- Add http-port on ssl-passthrough #228 - doc
- Annotations:
ingress.kubernetes.io/ssl-passthrough-http-port
- Annotations:
- Add proxy-protocol annotation #236 - doc
- Annotations:
ingress.kubernetes.io/proxy-protocol
- Annotations:
- Add server-alias-regex annotation #250 - doc
- Annotations:
ingress.kubernetes.io/server-alias-regex
- Annotations:
- Optimize reading of default backend #234
- Add annotation and configmap validations #237
- Fix sort-backends behavior #247
Fixes and improvements since v0.7-beta.1:
- Fix ssl-passthrought (only v0.7) #258
Fixes and improvements since v0.7-beta.2:
- Fix panic if an invalid path is used on ssl-passthrough (only v0.7) #260
- Add ssl-passthrough-http-port validations #261
Fixes and improvements since v0.7-beta.3:
- Update HAProxy from 1.8.14 to 1.8.16 - fix some DNS issues
- Improve optional client cert auth #275
Fixes and improvements since v0.7-beta.4:
- Update HAProxy from 1.8.16 to 1.8.17 - fix CVE-2018-20615 (release notes)
Fixes and improvements since v0.7-beta.5:
- Fix validation of mod security conf #282
Fixes and improvements since v0.7-beta.6:
- Use SRV records on dns resolver if backend port isn’t a valid number #285
- Fix permission of frontend certs dir #293
Fixes and improvements since v0.7-beta.7:
- Update to HAProxy 1.8.19, which fixes some connection aborts on HTTP/2
- Add TLS ALPN extension advertisement #307
- Fix overlapping configs on shared frontend #308
Fixes and improvements since v0.6.3:
- Update HAProxy from 1.8.19 to 1.8.20
- Fix port retrieval for terminatingPod with named targetPort #331
Fixes and improvements since v0.6.2:
- Update libssl and libcrypto #318
Fixes and improvements since v0.6.1:
- Update HAProxy from 1.8.17 to 1.8.19, which fixes some connection aborts on HTTP/2
Fixes and improvements since v0.6:
- Update HAProxy from 1.8.14 to 1.8.17
- Fix some DNS issues
- Fix CVE-2018-20615 (release notes)
Breaking backward compatibility from v0.5:
- Usage of header
Host
to match https requests instead of using just sni extension, deprecatinguse-host-on-https
- #130 - Multibinder is deprecated, use
reusesocket
reload strategy instead - #139 - Dynamic scaling do not reload HAProxy if the number of servers of a backend could be reduced
- Broken CIDR lists -
whitelist-source-range
andlimit-whitelist
annotations - will add at least the valid CIDRs found in the list - #163 - Added
timeout-queue
configmap option which defaults to5s
.timeout-queue
didn't exist before v0.6 and its value inherits from thetimeout-connect
configuration. Starting on v0.6, changingtimeout-connect
will not changetimeout-queue
default value.
Fixes and improvements since v0.5:
- HAProxy 1.8
- Dynamic cookies on cookie based server affinity
- HTTP/2 support - #129
- Share http/s connections on the same frontend/socket - #130
- Add clear userlist on misconfigured basic auth - #71
- Fix copy endpoints to fullslots - #84
- Equality improvement on dynamic scaling - #138 and #140
- Fix precedence of hosts without wildcard and alias without regex - #149
- Add v1 as a PROXY protocol option on tcp-services - #156
- Fix Lets Encrypt certificate generation - #161
- Add valid CIDRs on whitelists #163
- New annotations:
- Cookie persistence strategy #89 - doc
ingress.kubernetes.io/session-cookie-strategy
- Blue/green deployment #125 - doc
ingress.kubernetes.io/blue-green-deploy
- Load balancing algorithm #144
ingress.kubernetes.io/balance-algorithm
- Connection limits and timeout #148 - doc
ingress.kubernetes.io/maxconn-server
ingress.kubernetes.io/maxqueue-server
ingress.kubernetes.io/timeout-queue
- CORS #151 - doc
ingress.kubernetes.io/cors-allow-origin
ingress.kubernetes.io/cors-allow-methods
ingress.kubernetes.io/cors-allow-headers
ingress.kubernetes.io/cors-allow-credentials
ingress.kubernetes.io/cors-enable
ingress.kubernetes.io/cors-max-age
- Configuration snippet #155 - doc
ingress.kubernetes.io/config-backend
- Backend servers slot increment #164 - doc
ingress.kubernetes.io/slots-increment
- Cookie persistence strategy #89 - doc
- New configmap options:
- Drain support for NotReady pods on cookie affinity backends #95 - doc
drain-support
- Timeout queue #148 - doc
timeout-queue
- Time to wait for long lived connections to finish before hard-stop a HAProxy process #150 - doc
timeout-stop
- Add option to bypass SSL/TLS redirect #161 - doc
no-tls-redirect-locations
- Add configmap options to listening IP address #162
bind-ip-addr-tcp
bind-ip-addr-http
bind-ip-addr-healthz
bind-ip-addr-stats
- Drain support for NotReady pods on cookie affinity backends #95 - doc
- New command-line options:
Fixes and improvements since v0.6-beta.1:
- Fix redirect https if path changed with rewrite-target - #179
- Fix ssl-passthrough annotation - #183 and #187
Fixes and improvements since v0.6-beta.2:
- Fix host match of rate limit on shared frontend - #202
Fixes and improvements since v0.6-beta.3:
- Fix permission denied to mkdir on OpenShift - #205
- Fix usage of custom DH params (only v0.6) - #215
- Fix redirect of non TLS hosts (only v0.6) - #231
Fixes and improvements since v0.6-beta.4:
- Fix health check of dynamic reload - #232
- Fix stop/terminate signal of the controller process - #233
Fixes and improvements since v0.6-beta.5:
- Fix SSL redirect if no TLS config is used (only v0.6) - #235
Fixes and improvements since v0.6-beta.6:
- Restrict access of sticky session cookie by client Javascript code - #251
Fixes and improvements since v0.4
- v0.5-beta.1 changelog
- v0.5-beta.2 changelog
- v0.5-beta.3 changelog
Fixes and improvements since v0.5-beta.2
- Fix sync of excluded secrets - #102
- Fix config with long fqdn - #112
- Fix non ssl redirect on default backend - #120
Fixes and improvements since v0.5-beta.1
- Fix reading of txn.path on http-request keywords - #102
Breaking backward compatibility from v0.4
- TLS certificate validation using only SAN extension - common Name (CN) isn't used anymore. Add
--verify-hostname=false
command-line option to bypass hostname verification ingress.kubernetes.io/auth-tls-secret
annotation cannot reference another namespace without--allow-cross-namespace
command-line optiontcp-log-format
configmap option now customizes log of TCP proxies, usehttps-log-format
instead to configure log of SNI inspection (https/tcp frontend)
Fixes and improvements since v0.4
- Change from Go 1.8.1 to 1.9.2
- Implement full config of default backend - #73
- Fix removal of TLS if failing to read the secretName - #78
- New annotations:
- Rewrite path support - doc
ingress.kubernetes.io/rewrite-target
- Rate limit support - doc
ingress.kubernetes.io/limit-connections
ingress.kubernetes.io/limit-rps
ingress.kubernetes.io/limit-whitelist
- Option to include the X509 certificate on requests with client certificate - doc
ingress.kubernetes.io/auth-tls-cert-header
- HSTS support per host and location - doc
ingress.kubernetes.io/hsts
ingress.kubernetes.io/hsts-include-subdomains
ingress.kubernetes.io/hsts-max-age
ingress.kubernetes.io/hsts-preload
- Rewrite path support - doc
- New configmap options:
- Option to add and customize log of SNI inspection - https/tcp frontend - doc
https-log-format
- Option to load the server state between HAProxy reloads - doc
load-server-state
- Custom prefix of client certificate headers - doc
ssl-headers-prefix
- Support of
Host
header on TLS requests without SNI extension - docuse-host-on-https
- Option to add and customize log of SNI inspection - https/tcp frontend - doc
- New command-line options:
Fixes and improvements since v0.3
- v0.4-beta.1 changelog
- v0.4-beta.2 changelog
Fixes and improvements since v0.4-beta.1
- Fix global
maxconn
configuration - Add
X-Forwarded-Proto: https
header on ssl/tls connections
Fixes and improvements since v0.3
- Add dynamic scaling - doc
- Add monitoring URI - doc
- Add PROXY protocol configmap options - doc
UseProxyProtocol
StatsProxyProtocol
- Add log format configmap options - doc
HTTPLogFormat
TCPLogFormat
- Add stick session ingress annotations - doc
ingress.kubernetes.io/affinity
ingress.kubernetes.io/session-cookie-name
- Support for wildcard hostnames
- Better and faster synchronization after resource updates
- Support
k
,m
andg
suffix onproxy-body-size
annotation and configmap option - doc - HTTP 495 and 496 error pages on auth TLS errors
- Add TLS error page ingress annotation
ingress.kubernetes.io/auth-tls-error-page
- Add support to SSL/TLS offload outside HAProxy on a configmap option - doc
https-to-http-port
- Add support to host alias on ingress annotation - doc
ingress.kubernetes.io/server-alias
- Fix multibinder goes zombie #51 updating to multibinder 0.0.5
- Add
X-SSL
headers on client authentication with TLSX-SSL-Client-SHA1
X-SSL-Client-DN
X-SSL-Client-CN
Fixes and improvements since v0.2.1
- v0.3-beta.1 changelog - see notes about backward compatibility
- v0.3-beta.2 changelog
Fixes and improvements since v0.3-beta.1
- Add
haproxy
as the default value of--ingress-class
parameter - Fix create/remove ingress based on ingress-class annotation
Fixes and improvements since v0.2.1
Breaking backward compatibility:
- Move template to
/etc/haproxy/template/haproxy.tmpl
- Now
ingress.kubernetes.io/app-root
only applies on ingress with root path/
Other changes and improvements:
- Reload strategy with
native
andmultibinder
options - Ingress Controller check for update every 2 seconds (was every 10 seconds)
- New ingress resource annotations
ingress.kubernetes.io/proxy-body-size
ingress.kubernetes.io/secure-backends
ingress.kubernetes.io/secure-verify-ca-secret
ingress.kubernetes.io/ssl-passthrough
- New configmap options
balance-algorithm
backend-check-interval
forwardfor
hsts
hsts-include-subdomains
hsts-max-age
hsts-preload
max-connections
proxy-body-size
ssl-ciphers
ssl-dh-default-max-size
ssl-dh-param
ssl-options
stats-auth
stats-port
timeout-client
timeout-client-fin
timeout-connect
timeout-http-request
timeout-keep-alive
timeout-server
timeout-server-fin
timeout-tunnel
Fixes and improvements since v0.2
- Fixes #14 (Incorrect
X-Forwarded-For
handling)
Fixes and improvements since v0.1
- White list source IP range
- Optionally force TLS connection
- Basic (user/passwd) authentication
- Client certificate authentication
- Root context redirect
Initial version with basic functionality
- rules.hosts with paths from Ingress resource
- default and per host certificate
- 302 redirect from http to https if TLS (default or per host) is provided
- syslog-endpoint from configmap