@@ -1195,10 +1195,17 @@ secure communication. The secret must be of type `kubernetes.io/tls` or `Opaque`
11951195
11961196# ### Supported configurations
11971197
1198+ - **Mutual TLS (mTLS)**: Client certificate authentication (provide `tls.crt` + `tls.key`, optionally with `ca.crt`)
11981199- **CA-only**: Server authentication (provide `ca.crt` only)
1199- - **mTLS**: Client certificate authentication (provide `tls.crt` + `tls.key`, optionally with `ca.crt`)
12001200
1201- # ### Providers supporting client certificate authentication
1201+ # ### Mutual TLS Authentication
1202+
1203+ Mutual TLS authentication allows for secure client-server communication using
1204+ client certificates stored in Kubernetes secrets. Both `tls.crt` and `tls.key`
1205+ must be specified together for client certificate authentication. The `ca.crt`
1206+ field is optional but required when connecting to servers with self-signed certificates.
1207+
1208+ # #### Providers supporting client certificate authentication
12021209
12031210The following providers support client certificate authentication :
12041211
@@ -1227,10 +1234,49 @@ The following providers support client certificate authentication:
12271234
12281235Support for client certificate authentication is being expanded to additional providers over time.
12291236
1230- # ### Example
1237+ # #### Example: mTLS Configuration
1238+
1239+ ` ` ` yaml
1240+ ---
1241+ apiVersion: notification.toolkit.fluxcd.io/v1beta3
1242+ kind: Provider
1243+ metadata:
1244+ name: my-webhook-mtls
1245+ namespace: default
1246+ spec:
1247+ type: generic
1248+ address: https://my-webhook.internal
1249+ certSecretRef:
1250+ name: my-mtls-certs
1251+ ---
1252+ apiVersion: v1
1253+ kind: Secret
1254+ metadata:
1255+ name: my-mtls-certs
1256+ namespace: default
1257+ type: kubernetes.io/tls # or Opaque
1258+ stringData:
1259+ tls.crt: |
1260+ -----BEGIN CERTIFICATE-----
1261+ <client certificate>
1262+ -----END CERTIFICATE-----
1263+ tls.key: |
1264+ -----BEGIN PRIVATE KEY-----
1265+ <client private key>
1266+ -----END PRIVATE KEY-----
1267+ ca.crt: |
1268+ -----BEGIN CERTIFICATE-----
1269+ <certificate authority certificate>
1270+ -----END CERTIFICATE-----
1271+ ` ` `
1272+
1273+ # ### CA Certificate Authentication
1274+
1275+ CA certificate authentication provides server authentication when connecting to
1276+ HTTPS endpoints with self-signed or custom CA certificates. Only the `ca.crt`
1277+ field is required for this configuration.
12311278
1232- To enable notification-controller to communicate with a provider API over HTTPS
1233- using a self-signed TLS certificate, set the `ca.crt` like so :
1279+ # #### Example: CA Certificate Configuration
12341280
12351281` ` ` yaml
12361282---
@@ -1253,7 +1299,9 @@ metadata:
12531299type: kubernetes.io/tls # or Opaque
12541300stringData:
12551301 ca.crt: |
1256- <--- CA Key --->
1302+ -----BEGIN CERTIFICATE-----
1303+ <certificate authority certificate>
1304+ -----END CERTIFICATE-----
12571305` ` `
12581306
12591307**Warning:** Support for the `caFile` key has been
0 commit comments