You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Added tls termination at a pod level for qtodo (#149)
* Added tls termination at a pod level for qtodo
Signed-off-by: Andrew Block <andy.block@gmail.com>
* Add qtodo e2e documentation
Signed-off-by: Manuel Lorenzo <mlorenzofr@redhat.com>
---------
Signed-off-by: Andrew Block <andy.block@gmail.com>
Signed-off-by: Manuel Lorenzo <mlorenzofr@redhat.com>
Co-authored-by: Manuel Lorenzo <mlorenzofr@redhat.com>
Copy file name to clipboardExpand all lines: docs/multi-tier.md
+37Lines changed: 37 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -45,3 +45,40 @@ Switch back to the qtodo application and enter the username and password on the
45
45
Once you have authenticated to RHBK, you will be instructed to change the temporary password and set a more permanent password. Once complete, you will be redirected to the qtodo application verifying the OIDC based authentication functions properly.
46
46
47
47
Feel free to add new items to the list of todos. By being able to add and remove items from the page, the integration between the Quarkus application and the backend PostgreSQL database using credentials sourced from HashiCorp Vault was successful.
48
+
49
+
## TLS Termination Options
50
+
51
+
The qtodo application uses `reencrypt` TLS termination on the OpenShift Route by default, ensuring that traffic is encrypted end-to-end from the client to the pod. Ingress TLS communication is terminated at the OpenShift Router and reencrypted with a certificate generated using the [Service Serving Certificate feature](https://docs.redhat.com/en/documentation/openshift_container_platform/4.21/html/security_and_compliance/configuring-certificates#add-service-serving).
52
+
53
+
### Configuration
54
+
55
+
The qtodo Helm chart provides options to control how and where TLS communication is terminated:
56
+
57
+
***`app.route.termination`** — Specifies the TLS termination type for the OpenShift Route
58
+
*`reencrypt` (default) — TLS is terminated at the Router and reencrypted to the pod using the certificate specified in `app.tls.secret`
59
+
*`passthrough` — TLS traffic passes through the Router without decryption and is terminated at the pod
60
+
*`edge` — TLS is terminated at the Router; backend communication uses HTTP
61
+
62
+
***`app.securePort`** — The HTTPS port used by the application (default: `8443`)
63
+
* Used when `app.route.termination` is set to `reencrypt` or `passthrough`
64
+
65
+
***`app.insecurePort`** — The HTTP port used by the application (default: `8080`)
66
+
* Used when `app.route.termination` is set to `edge` or when TLS is disabled
67
+
68
+
***`app.tls.secret`** — Name of the Kubernetes Secret containing the TLS certificate and key (default: `qtodo-tls`)
69
+
* Used for pod-level TLS termination with `reencrypt` or `passthrough` routes
70
+
71
+
***`app.tls.serviceServing`** — Enable automatic certificate generation via Service Serving Certificates (default: `true`)
72
+
* When enabled, OpenShift automatically generates and rotates the certificate in `app.tls.secret`
73
+
* When using custom certificates (e.g., for `passthrough` mode), set this to `false` and provide your own certificate in the secret
74
+
75
+
### Termination Types
76
+
77
+
| Termination Type | TLS at Router | TLS to Pod | Certificate Source | Use Case |
78
+
| --- | --- | --- | --- | --- |
79
+
|`reencrypt` (default) | Yes | Yes | Service Serving Certificate | End-to-end encryption with automatic cert rotation |
80
+
|`passthrough`| No | Yes | User-provided in `app.tls.secret`| Custom certificates or strict no-decrypt requirement |
81
+
|`edge`| Yes | No | Route certificate | Legacy apps without TLS support |
82
+
83
+
> [!NOTE]
84
+
> When using `passthrough` termination with custom certificates, ensure the certificate's Subject Alternative Name (SAN) matches the Route hostname. The Service Serving Certificate feature cannot be used in this mode.
0 commit comments