Skip to content
This repository was archived by the owner on Mar 27, 2026. It is now read-only.

Commit b397afc

Browse files
authored
Add matchConditions to only run webhooks on pods with annotation (#4)
* Add matchConditions to only run webhooks on pods with annotation * Revert PR #3
1 parent 2088feb commit b397afc

File tree

3 files changed

+41
-2
lines changed

3 files changed

+41
-2
lines changed

config/webhook/kustomization.yaml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,34 @@ resources:
44

55
configurations:
66
- kustomizeconfig.yaml
7+
8+
patches:
9+
- patch: |-
10+
apiVersion: admissionregistration.k8s.io/v1
11+
kind: MutatingWebhookConfiguration
12+
metadata:
13+
name: mutating-webhook-configuration
14+
webhooks:
15+
- name: mpod-v1.kb.io
16+
matchConditions:
17+
- name: vpc-attachment-annotation-exists
18+
expression: >
19+
object != null &&
20+
has(object.metadata) &&
21+
has(object.metadata.annotations) &&
22+
"k8s.v1alpha.galactic.datumapis.com/vpc-attachment" in object.metadata.annotations
23+
24+
- patch: |-
25+
apiVersion: admissionregistration.k8s.io/v1
26+
kind: ValidatingWebhookConfiguration
27+
metadata:
28+
name: validating-webhook-configuration
29+
webhooks:
30+
- name: vpod-v1.kb.io
31+
matchConditions:
32+
- name: vpc-attachment-annotation-exists
33+
expression: >
34+
object != null &&
35+
has(object.metadata) &&
36+
has(object.metadata.annotations) &&
37+
"k8s.v1alpha.galactic.datumapis.com/vpc-attachment" in object.metadata.annotations

dist/install.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -754,6 +754,10 @@ webhooks:
754754
namespace: galactic-operator-system
755755
path: /mutate--v1-pod
756756
failurePolicy: Fail
757+
matchConditions:
758+
- expression: object != null && has(object.metadata) && has(object.metadata.annotations)
759+
&& "k8s.v1alpha.galactic.datumapis.com/vpc-attachment" in object.metadata.annotations
760+
name: vpc-attachment-annotation-exists
757761
name: mpod-v1.kb.io
758762
rules:
759763
- apiGroups:
@@ -782,6 +786,10 @@ webhooks:
782786
namespace: galactic-operator-system
783787
path: /validate--v1-pod
784788
failurePolicy: Fail
789+
matchConditions:
790+
- expression: object != null && has(object.metadata) && has(object.metadata.annotations)
791+
&& "k8s.v1alpha.galactic.datumapis.com/vpc-attachment" in object.metadata.annotations
792+
name: vpc-attachment-annotation-exists
785793
name: vpod-v1.kb.io
786794
rules:
787795
- apiGroups:

internal/webhook/v1/pod_webhook.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ func SetupPodWebhookWithManager(mgr ctrl.Manager) error {
3535
Complete()
3636
}
3737

38-
// +kubebuilder:webhook:path=/mutate--v1-pod,mutating=true,failurePolicy=ignore,sideEffects=None,groups="",resources=pods,verbs=create;update,versions=v1,name=mpod-v1.kb.io,admissionReviewVersions=v1
38+
// +kubebuilder:webhook:path=/mutate--v1-pod,mutating=true,failurePolicy=fail,sideEffects=None,groups="",resources=pods,verbs=create;update,versions=v1,name=mpod-v1.kb.io,admissionReviewVersions=v1
3939

4040
type PodCustomDefaulter struct {
4141
client.Client
@@ -62,7 +62,7 @@ func (d *PodCustomDefaulter) Default(ctx context.Context, obj runtime.Object) er
6262
return nil
6363
}
6464

65-
// +kubebuilder:webhook:path=/validate--v1-pod,mutating=false,failurePolicy=ignore,sideEffects=None,groups="",resources=pods,verbs=create;update,versions=v1,name=vpod-v1.kb.io,admissionReviewVersions=v1
65+
// +kubebuilder:webhook:path=/validate--v1-pod,mutating=false,failurePolicy=fail,sideEffects=None,groups="",resources=pods,verbs=create;update,versions=v1,name=vpod-v1.kb.io,admissionReviewVersions=v1
6666

6767
type PodCustomValidator struct {
6868
client.Client

0 commit comments

Comments
 (0)