@@ -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