Skip to content

Conversation

@jcmoraisjr
Copy link
Owner

@jcmoraisjr jcmoraisjr commented Aug 24, 2025

Adds the ability to configure the HTTP/s frontends with more than one HTTP port, allowing to multiplex distinct groups of hostnames without colliding each other. This is a pre-requisite to improve Gateway API support.

Several places of HAProxy Ingress code uses the dual and plain HTTP/s model as a premise, so this is a non trivial refactor. Starting the refactor from the top of the internal HAProxy model representation.

Minimum HAProxy version changed from 2.4 to 2.6 -- added set-var-fmt() action.

TODO list includes:

  • Move Hosts and Frontend types under a new Frontends type
  • Improve PathLink type to support distinct Frontends
  • Move Bind configurations specific to frontends under the Frontend type
  • Split the single HTTP/s frontend representation into two separated HTTP and HTTPs entries
  • Reimplement ssl passthrough on Gateway and Ingress API
  • Add frontends support into Ingress API
  • Add listener.Port support into Gateway API
  • Support a list of HTTP/s frontends
  • documentation

@jcmoraisjr
Copy link
Owner Author

#369
#774

Adds the ability to configure the HTTP/s frontends with more than one
HTTP port, allowing to multiplex distinct groups of hostnames without
colliding each other. This is a pre-requisite to improve Gateway API
support.

Several places of HAProxy Ingress code uses the dual and plain HTTP/s
model as a premise, so this is a non trivial refactor. Starting the
refactor from the top of the internal HAProxy model representation.

TODO list includes:

* [x] Move Hosts and Frontend types under a new Frontends type
* [x] Improve PathLink type to support distinct Frontends
* [ ] Move Bind configurations specific to frontends under the Frontend type
* [ ] Split the single HTTP/s frontend representation into two separated HTTP and HTTPs entries
* [ ] Support a list of HTTP/s frontends
* [ ] Add frontends support into Ingress API
* [ ] Add listener.Port support into Gateway API
HAProxy model is defined with a single frontend entity, and a single
list of hostnames representing both http and https entries. From this
update, a list of frontends is supported, each of them being either
http or https, and their hostnames represent only one of those
protocols. So, a single ingress resource that uses to represent both
http and https, now should add its hostname both http and https scoped
frontends.
@jcmoraisjr jcmoraisjr merged commit f4a471f into master Oct 20, 2025
7 checks passed
@jcmoraisjr jcmoraisjr deleted the jm-frontends branch October 20, 2025 21:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants