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: design/tls-certificate-delegation.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -33,7 +33,7 @@ The implementation of this design is in three parts; the addition of a TLSCertif
33
33
34
34
### TLSCertificateDelegation CRD
35
35
36
-
The TLSCertificateDelegation object records the permission to reference a Secret object from the namespace of the TLSCertificateDelegation object to Ingress or IngressRoute objects in the target namespaces.
36
+
The TLSCertificateDelegation object records the permission to reference a Secret object from the namespace of the TLSCertificateDelegation object to Ingress or IngressRoute objects in the target namespaces.
37
37
This permission is managed by the Ingress controller which has the RBAC permissions to read all the relevant Secrets but currently only allows an Ingress or IngressRoute object to reference secrets from its own namespace.
Copy file name to clipboardExpand all lines: docs/ingressroute.md
+39Lines changed: 39 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -240,6 +240,9 @@ spec:
240
240
port: 80
241
241
```
242
242
243
+
If the `tls.secretName` property contains a slash, eg. `somenamespace/somesecret` then, subject to TLS Certificate Delegation, the TLS certificate will be read from `somesecret` in `somenamespace`.
244
+
See TLS Certificate Delegation below for more information.
245
+
243
246
The TLS **Minimum Protocol Version** a vhost should negotiate can be specified by setting the `spec.virtualhost.tls.minimumProtocolVersion`:
244
247
- 1.3
245
248
- 1.2
@@ -270,6 +273,42 @@ spec:
270
273
permitInsecure: true
271
274
```
272
275
276
+
#### TLS Certificate Delegation
277
+
278
+
In order to support wildcard certificates, TLS certificates for a `*.somedomain.com`, which are stored in a namespace controlled by the cluster administrator, Contour supports a facility known as TLS Certificate Delegation.
279
+
This facility allows the owner of a TLS certificate to delegate, for the purposes of reference the TLS certificate, the when processing an IngressRoute to Contour will reference the Secret object from another namespace.
280
+
281
+
```yaml
282
+
apiVersion: contour.heptio.com/v1beta1
283
+
kind: TLSCertificateDelegation
284
+
metadata:
285
+
name: example-com-wildcard
286
+
namespace: www-admin
287
+
spec:
288
+
delegations:
289
+
secretName: example-com-wildcard
290
+
targetNamespaces:
291
+
- example-com
292
+
---
293
+
apiVersion: contour.heptio.com/v1beta1
294
+
kind: IngressRoute
295
+
metadata:
296
+
name: www
297
+
namespace: example-com
298
+
spec:
299
+
virtualhost:
300
+
fqdn: foo2.bar.com
301
+
tls:
302
+
secretName: www-admin/example-com-wildcard
303
+
routes:
304
+
- match: /
305
+
services:
306
+
- name: s1
307
+
port: 80
308
+
```
309
+
310
+
In this example, the permission for Contour to reference the Secret `example-com-wildcard` in the `admin` namespace has been delegated to IngressRoute objects in the `example-com` namespace.
311
+
273
312
### Routing
274
313
275
314
Each route entry in an IngressRoute must start with a prefix match.
0 commit comments