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
Copy file name to clipboardExpand all lines: docs/content/configuration/transportserver-resource.md
+16Lines changed: 16 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -31,6 +31,8 @@ The TransportServer resource defines load balancing configuration for TCP, UDP,
31
31
listener:
32
32
name: dns-tcp
33
33
protocol: TCP
34
+
tls:
35
+
secret: cafe-secret
34
36
upstreams:
35
37
- name: dns-app
36
38
service: dns-service
@@ -82,6 +84,7 @@ The TransportServer resource defines load balancing configuration for TCP, UDP,
82
84
| ---| ---| ---| --- |
83
85
|``listener`` | The listener on NGINX that will accept incoming connections/datagrams. | [listener](#listener) | Yes |
84
86
|``host`` | The host (domain name) of the server. Must be a valid subdomain as defined in RFC 1123, such as ``my-app`` or ``hello.example.com``. Wildcard domains like ``*.example.com`` are not allowed. Required for TLS Passthrough load balancing. | ``string`` | No |
87
+
|``tls`` | The TLS termination configuration. Not supported for TLS Passthrough load balancing. | [tls](#tls) | No |
85
88
|``upstreams`` | A list of upstreams. | [[]upstream](#upstream) | Yes |
86
89
|``upstreamParameters`` | The upstream parameters. | [upstreamParameters](#upstreamparameters) | No |
87
90
|``action`` | The action to perform for a client connection/datagram. | [action](#action) | Yes |
@@ -110,6 +113,19 @@ listener:
110
113
|``protocol`` | The protocol of the listener. | ``string`` | Yes |
111
114
{{% /table %}}
112
115
116
+
### TLS
117
+
118
+
The tls field defines TLS configuration for a TransportServer. Please note the current implementation supports TLS termination on multiple ports, where each application owns a dedicated port - the Ingress Controller terminates TLS connections on each port, where each application uses its own cert/key, and routes connections to appropriate application (service) based on that incoming port (any TLS connection regardless of the SNI on a port will be routed to the application that corresponds to that port). An example configuration is shown below:
119
+
```yaml
120
+
secret: cafe-secret
121
+
```
122
+
123
+
{{% table %}}
124
+
|Field | Description | Type | Required |
125
+
| ---| ---| ---| --- |
126
+
|``secret`` | The name of a secret with a TLS certificate and key. The secret must belong to the same namespace as the TransportServer. The secret must be of the type ``kubernetes.io/tls`` and contain keys named ``tls.crt`` and ``tls.key`` that contain the certificate and private key as described [here](https://kubernetes.io/docs/concepts/services-networking/ingress/#tls). | ``string`` | No |
127
+
{{% /table %}}
128
+
113
129
### Upstream
114
130
115
131
The upstream defines a destination for the TransportServer. For example:
errMsg:=fmt.Sprintf("TLS secret %s is of a wrong type '%s', must be '%s'. SSL termination will not be enabled for this server.", tls.Secret, secretType, api_v1.SecretTypeTLS)
142
+
warnings.AddWarning(ts, errMsg)
143
+
sslEnabled=false
144
+
} elseifsecretRef.Error!=nil {
145
+
errMsg:=fmt.Sprintf("TLS secret %s is invalid: %v. SSL termination will not be enabled for this server.", tls.Secret, secretRef.Error)
0 commit comments