Traefik-passthrough doc file#48556
Conversation
Closes keycloak#48128 Signed-off-by: Ruchika <[email protected]>
Closes keycloak#48128 Signed-off-by: Ruchika <[email protected]>
Closes keycloak#48128 Signed-off-by: Ruchika <[email protected]>
|
The PR looks good to me. Once Pedro's comments are addressed, this should be good for merging. The experiment on what happens to open TCP connections once Traefik detects a backend is down could be handled as a follow-up if we want to get this merged earlier. |
Closes keycloak#48128 Signed-off-by: Ruchika <[email protected]>
All the comments above have been addressed . Thank you @pruivo @ahus1 |
| <2> Ensures this router takes precedence over any other TCP routers that may be defined. | ||
| <3> Instructs Traefik to forward the raw TLS stream without terminating it. | ||
| {project_name} handles TLS termination directly. | ||
| <4> Enables link:https://doc.traefik.io/traefik/routing/services/#proxy-protocol[PROXY protocol v2] on all backend connections. |
There was a problem hiding this comment.
Link points to an incorrect page
| <4> Enables link:https://doc.traefik.io/traefik/routing/services/#proxy-protocol[PROXY protocol v2] on all backend connections. | |
| <4> Enables link:https://doc.traefik.io/traefik/reference/routing-configuration/tcp/serverstransport/#proxyprotocolversion[PROXY protocol v2] on all backend connections. |
| This allows {project_name} to read the real client IP address from the PROXY protocol header added by Traefik. | ||
| This requires {project_name} to be configured with `--proxy-protocol-enabled=true` (see <<keycloak-configuration>>). | ||
| <5> Links the load balancer to the named transport above, activating PROXY protocol v2 for all connections to the backend servers. | ||
| <6> Configures a link:https://doc.traefik.io/traefik/routing/services/#health-check_1[TCP-level health check] against {project_name}'s management port (`9000`). |
There was a problem hiding this comment.
incorrect link
| <6> Configures a link:https://doc.traefik.io/traefik/routing/services/#health-check_1[TCP-level health check] against {project_name}'s management port (`9000`). | |
| <6> Configures a link:https://doc.traefik.io/traefik/reference/routing-configuration/tcp/service/#health-check[TCP-level health check] against {project_name}'s management port (`9000`). |
| It would not detect split-brain, database connectivity failures, or an overloaded node. | ||
| Native HTTP health checks for TCP services are not yet supported in Traefik; track upstream progress at link:https://github.com/traefik/traefik/pull/12606[traefik/traefik#12606]. | ||
|
|
||
| <7> Defines the two {project_name} backend servers. |
| Configures the management port (`9000`) to use plain HTTP instead of HTTPS. | ||
| Traefik cannot perform an HTTPS health check on a TCP passthrough service, so the management port must use plain HTTP. | ||
| This is safe because the management port is only reachable on the internal backend network and is not exposed to clients. |
There was a problem hiding this comment.
Let me know if this sounds clearer @ruchikajha95 @ahus1
| Configures the management port (`9000`) to use plain HTTP instead of HTTPS. | |
| Traefik cannot perform an HTTPS health check on a TCP passthrough service, so the management port must use plain HTTP. | |
| This is safe because the management port is only reachable on the internal backend network and is not exposed to clients. | |
| Configures the management port (`9000`) to use plain HTTP instead of HTTPS. | |
| Traefik does not support native HTTP health checks for TCP services; it can only send and match raw bytes over a plain TCP connection. | |
| Disabling TLS on the management port allows the raw `send`/`expect` health check (see the health check configuration above) to communicate with {project_name} in plain HTTP. | |
| This is safe because the management port is only reachable on the internal backend network and is not exposed to clients. |
|
|
||
| <1> Matches all TLS connections regardless of the SNI hostname. | ||
| This is suitable when Traefik is dedicated to {project_name} only. | ||
| If Traefik handles multiple backend services, use a specific hostname instead of a wildcard (for example, `HostSNI(`keycloak.example.com`)`) to avoid routing unintended traffic to {project_name}. |
There was a problem hiding this comment.
The rendering is broken.
The suggestion below seems to fix it
| If Traefik handles multiple backend services, use a specific hostname instead of a wildcard (for example, `HostSNI(`keycloak.example.com`)`) to avoid routing unintended traffic to {project_name}. | |
| If Traefik handles multiple backend services, use a specific hostname instead of a wildcard (for example, ``HostSNI(`keycloak.example.com`)``) to avoid routing unintended traffic to {project_name}. |
Closes keycloak#48128 Signed-off-by: Ruchika <[email protected]>
Replicated the adoc file for Traefik using Haproxy as a reference.
Closes #48128