Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove frontend group #553

Merged
merged 5 commits into from
Apr 12, 2020
Merged

Remove frontend group #553

merged 5 commits into from
Apr 12, 2020

Conversation

jcmoraisjr
Copy link
Owner

Frontend group was used to group all frontends, binds and their related map files into a single entity. The need of a list of frontends doesn't exist anymore, so all inner entities and funcs are being moved on behalf of simplicity and cohesion, which will simplify future improvements. Further details in the message of the commits. There are no functionality changes.

A frontend+bind list were historically used to separate distinct client timeouts, distinct `ca-file` if auth-tls is used, and also distinct hostnames in pre-historical versions. Client timeout was just moved to global scope, which allows to use a single frontend and a single bind config despite the ingress and controller configuration.

This update doesn't have any functional change - it is merely removing the legacy code used to build a list of frontends with a list of binds. Such simplifications will speedup the development of performance tunings.

A L6 frontend is still needed and only configured if at least one hostname uses ssl-passthrough.

TCP services wasn't changed and will continue to be configured as usual.
@jcmoraisjr jcmoraisjr force-pushed the jm-rm-fgroup branch 2 times, most recently from f91e0a9 to bc03215 Compare April 12, 2020 02:41
Frontend group was used to group all frontends, binds and their related map files into a single entity. The need of a list of frontends doesn't exist anymore, so all inner entities and funcs are being moved.

This change creates a frontend entity in the root haproxy config and implement some funcs being removed from the frontendGroup.
Another step on behalf of remove responsibility from the frontendGroup: create a new entity responsible for manage all hostnames, either ssl-passthrough and HTTP/L7.
Frontend group building used to make a lot of stuff, including changes to the model state. Moving only the state changing calls improves cohesion, which will also improve maintainability.
Frontend group was converted to a link of maps after the last changes. This update renames the func and the old frontend group entity, and also moves the maps link to the frontend entity. The new `Write(Frontend|Backend)Maps()` funcs doesn't change the model state and should continue like this.
@jcmoraisjr jcmoraisjr changed the title WIP: Remove frontendGroup Remove frontend group Apr 12, 2020
@jcmoraisjr jcmoraisjr merged commit de39b1c into master Apr 12, 2020
@jcmoraisjr jcmoraisjr deleted the jm-rm-fgroup branch April 12, 2020 23:17
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.

1 participant