@@ -29,6 +29,7 @@ import (
29
29
30
30
corev1 "k8s.io/api/core/v1"
31
31
"k8s.io/apimachinery/pkg/runtime/schema"
32
+ utilnet "k8s.io/apimachinery/pkg/util/net"
32
33
auditinternal "k8s.io/apiserver/pkg/apis/audit"
33
34
auditv1 "k8s.io/apiserver/pkg/apis/audit/v1"
34
35
auditv1alpha1 "k8s.io/apiserver/pkg/apis/audit/v1alpha1"
@@ -37,6 +38,7 @@ import (
37
38
"k8s.io/apiserver/pkg/audit/policy"
38
39
"k8s.io/apiserver/pkg/features"
39
40
"k8s.io/apiserver/pkg/server"
41
+ "k8s.io/apiserver/pkg/server/egressselector"
40
42
utilfeature "k8s.io/apiserver/pkg/util/feature"
41
43
pluginbuffered "k8s.io/apiserver/plugin/pkg/audit/buffered"
42
44
plugindynamic "k8s.io/apiserver/plugin/pkg/audit/dynamic"
@@ -323,7 +325,16 @@ func (o *AuditOptions) ApplyTo(
323
325
if checker == nil {
324
326
klog .V (2 ).Info ("No audit policy file provided, no events will be recorded for webhook backend" )
325
327
} else {
326
- webhookBackend , err = o .WebhookOptions .newUntruncatedBackend ()
328
+
329
+ if c .EgressSelector != nil {
330
+ egressDialer , err := c .EgressSelector .Lookup (egressselector .Master .AsNetworkContext ())
331
+ if err != nil {
332
+ return err
333
+ }
334
+ webhookBackend , err = o .WebhookOptions .newUntruncatedBackend (egressDialer )
335
+ } else {
336
+ webhookBackend , err = o .WebhookOptions .newUntruncatedBackend (nil )
337
+ }
327
338
if err != nil {
328
339
return err
329
340
}
@@ -590,9 +601,9 @@ func (o *AuditWebhookOptions) enabled() bool {
590
601
591
602
// newUntruncatedBackend returns a webhook backend without the truncate options applied
592
603
// this is done so that the same trucate backend can wrap both the webhook and dynamic backends
593
- func (o * AuditWebhookOptions ) newUntruncatedBackend () (audit.Backend , error ) {
604
+ func (o * AuditWebhookOptions ) newUntruncatedBackend (customDial utilnet. DialFunc ) (audit.Backend , error ) {
594
605
groupVersion , _ := schema .ParseGroupVersion (o .GroupVersionString )
595
- webhook , err := pluginwebhook .NewBackend (o .ConfigFile , groupVersion , o .InitialBackoff )
606
+ webhook , err := pluginwebhook .NewBackend (o .ConfigFile , groupVersion , o .InitialBackoff , customDial )
596
607
if err != nil {
597
608
return nil , fmt .Errorf ("initializing audit webhook: %v" , err )
598
609
}
0 commit comments