@@ -16,13 +16,12 @@ import (
1616 "k8s.io/client-go/tools/record"
1717 ctrl "sigs.k8s.io/controller-runtime"
1818 "sigs.k8s.io/controller-runtime/pkg/client"
19- logf "sigs.k8s.io/controller-runtime/pkg/log"
2019 "sigs.k8s.io/controller-runtime/pkg/webhook"
20+ "sigs.k8s.io/controller-runtime/pkg/webhook/admission"
2121)
2222
2323// nolint:unused
2424// log is for logging in this package.
25- var podlog = logf .Log .WithName ("webhook" )
2625
2726// PodCustomDefaulter struct is responsible for setting default values on the custom resource of the Kind Pod.
2827type PodCustomDefaulter struct {
@@ -40,19 +39,27 @@ func (d *PodCustomDefaulter) InjectClient(c client.Client) {
4039
4140var _ webhook.CustomDefaulter = & PodCustomDefaulter {}
4241
43- // Default implements webhook.CustomDefaulter so a webhook will be registered for the Kind Pod.
4442func (d * PodCustomDefaulter ) Default (ctx context.Context , obj runtime.Object ) error {
4543 pod , ok := obj .(* corev1.Pod )
4644 if ! ok {
4745 return fmt .Errorf ("expected a Pod object but got %T" , obj )
4846 }
4947
50- // Call the Overcommit function and pass the EventRecorder
48+ isResize := false
49+ if req , err := admission .RequestFromContext (ctx ); err == nil {
50+ isResize = req .SubResource == "resize"
51+ }
52+
53+ if isResize {
54+ overcommit .OvercommitOnResize (pod , d .Recorder , d .Client )
55+ return nil
56+ }
57+
5158 overcommit .Overcommit (pod , d .Recorder , d .Client )
5259 return nil
5360}
5461
55- // +kubebuilder:webhook:path=/mutate--v1-pod,mutating=true,failurePolicy=ignore,sideEffects=None,groups="",resources=pods,verbs=create;update,versions=v1,name=mutating-pod-v1.overcommit.inditex.dev,admissionReviewVersions=v1
62+ // +kubebuilder:webhook:path=/mutate--v1-pod,mutating=true,failurePolicy=ignore,reinvocationPolicy=IfNeeded, sideEffects=None,groups="",resources=pods;pods/resize ,verbs=create;update,versions=v1,name=mutating-pod-v1.overcommit.inditex.dev,admissionReviewVersions=v1
5663// +kubebuilder:rbac:groups="",resources=pods,verbs=get;list;watch
5764
5865// SetupPodWebhookWithManager registers the webhook for Pod in the manager.
0 commit comments