Improve webhooks logging

Signed-off-by: Andrea Mazzotti <andrea.mazzotti@suse.com>
This commit is contained in:
Andrea Mazzotti 2025-05-23 11:32:39 +02:00
parent 18d45e5b00
commit 065a235939
No known key found for this signature in database
GPG Key ID: BE7A52DB92E66222
4 changed files with 41 additions and 19 deletions

View File

@ -35,7 +35,7 @@ import (
var (
cannotUseWithIgnition = fmt.Sprintf("not supported when spec.format is set to %q", Ignition)
rke2configlog = logf.Log.WithName("rke2config-resource")
rke2ConfigLogger = logf.Log.WithName("RKE2Config")
)
// RKE2ConfigCustomDefaulter struct is responsible for setting default values on the custom resource of the
@ -72,6 +72,8 @@ func (r *RKE2ConfigCustomDefaulter) Default(_ context.Context, obj runtime.Objec
return apierrors.NewBadRequest(fmt.Sprintf("expected a RKE2Config but got a %T", obj))
}
rke2ConfigLogger.Info("defaulting", "RKE2Config", klog.KObj(rc))
DefaultRKE2ConfigSpec(&rc.Spec)
return nil
@ -95,7 +97,7 @@ func (r *RKE2ConfigCustomValidator) ValidateCreate(_ context.Context, obj runtim
return nil, fmt.Errorf("expected a RKE2Config object but got %T", obj)
}
rke2configlog.Info("RKE2Config validate create", "rke2config", klog.KObj(rc))
rke2ConfigLogger.Info("validate create", "RKE2Config", klog.KObj(rc))
var allErrs field.ErrorList
@ -115,7 +117,7 @@ func (r *RKE2ConfigCustomValidator) ValidateUpdate(_ context.Context, _, newObj
return nil, fmt.Errorf("expected a RKE2Config object but got %T", newObj)
}
rke2configlog.Info("RKE2Config validate update", "rke2config", klog.KObj(newrc))
rke2ConfigLogger.Info("validate update", "RKE2Config", klog.KObj(newrc))
var allErrs field.ErrorList
@ -129,7 +131,14 @@ func (r *RKE2ConfigCustomValidator) ValidateUpdate(_ context.Context, _, newObj
}
// ValidateDelete implements webhook.Validator so a webhook will be registered for the type.
func (r *RKE2ConfigCustomValidator) ValidateDelete(_ context.Context, _ runtime.Object) (admission.Warnings, error) {
func (r *RKE2ConfigCustomValidator) ValidateDelete(_ context.Context, obj runtime.Object) (admission.Warnings, error) {
rc, ok := obj.(*RKE2Config)
if !ok {
return nil, fmt.Errorf("expected a RKE2Config object but got %T", obj)
}
rke2ConfigLogger.Info("validate delete", "RKE2Config", klog.KObj(rc))
return nil, nil
}

View File

@ -22,14 +22,15 @@ import (
apierrors "k8s.io/apimachinery/pkg/api/errors"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/klog/v2"
ctrl "sigs.k8s.io/controller-runtime"
logf "sigs.k8s.io/controller-runtime/pkg/log"
"sigs.k8s.io/controller-runtime/pkg/webhook"
"sigs.k8s.io/controller-runtime/pkg/webhook/admission"
)
// RKE2configtemplatelog is for logging in this package.
var RKE2configtemplatelog = logf.Log.WithName("RKE2configtemplate-resource")
// rke2ConfigTemplateLogger the RKE2ConfigTemplate webhook logger.
var rke2ConfigTemplateLogger = logf.Log.WithName("RKE2ConfigTemplate")
// RKE2ConfigTemplateCustomDefaulter struct is responsible for setting default values on the custom resource of the
// Kind RKE2ConfigTemplate when those are created or updated.
@ -65,7 +66,7 @@ func (r *RKE2ConfigTemplateCustomDefaulter) Default(_ context.Context, obj runti
return apierrors.NewBadRequest(fmt.Sprintf("expected a RKE2ConfigTemplate but got a %T", obj))
}
RKE2configtemplatelog.Info("default", "name", rct.Name)
rke2ConfigTemplateLogger.Info("defaulting", "RKE2ConfigTemplate", klog.KObj(rct))
return nil
}
@ -81,7 +82,7 @@ func (r *RKE2ConfigTemplateCustomValidator) ValidateCreate(_ context.Context, ob
return nil, fmt.Errorf("expected a RKE2ConfigTemplate object but got %T", obj)
}
RKE2configtemplatelog.Info("validate create", "name", rct.Name)
rke2ConfigTemplateLogger.Info("validate create", "RKE2ConfigTemplate", klog.KObj(rct))
return nil, nil
}
@ -93,7 +94,7 @@ func (r *RKE2ConfigTemplateCustomValidator) ValidateUpdate(_ context.Context, ol
return nil, fmt.Errorf("expected a RKE2ConfigTemplate object but got %T", oldObj)
}
RKE2configtemplatelog.Info("validate update", "name", rct.Name)
rke2ConfigTemplateLogger.Info("validate update", "RKE2ConfigTemplate", klog.KObj(rct))
return nil, nil
}
@ -105,7 +106,7 @@ func (r *RKE2ConfigTemplateCustomValidator) ValidateDelete(_ context.Context, ob
return nil, fmt.Errorf("expected a RKE2ConfigTemplate object but got %T", obj)
}
RKE2configtemplatelog.Info("validate delete", "name", rct.Name)
rke2ConfigTemplateLogger.Info("validate delete", "RKE2ConfigTemplate", klog.KObj(rct))
return nil, nil
}

View File

@ -40,8 +40,8 @@ const (
defaultNodeVolumeDetachTimeout = 300 * time.Second
)
// log is for logging in this package.
var rke2controlplanelog = logf.Log.WithName("rke2controlplane-resource")
// rke2ControlPlaneLogger is the RKE2ControlPlane webhook logger.
var rke2ControlPlaneLogger = logf.Log.WithName("RKE2ControlPlane")
// RKE2ControlPlaneCustomDefaulter struct is responsible for setting default values on the custom resource of the
// Kind RKE2ControlPlane when those are created or updated.
@ -77,6 +77,8 @@ func (rd *RKE2ControlPlaneCustomDefaulter) Default(_ context.Context, obj runtim
return apierrors.NewBadRequest(fmt.Sprintf("expected a RKE2ControlPlane but got a %T", obj))
}
rke2ControlPlaneLogger.Info("defaulting", "RKE2ControlPlane", klog.KObj(rcp))
bootstrapv1.DefaultRKE2ConfigSpec(&rcp.Spec.RKE2ConfigSpec)
// Defaults missing MachineTemplate.InfrastructureRef to Spec.InfrastructureRef
@ -129,7 +131,7 @@ func (rv *RKE2ControlPlaneCustomValidator) ValidateCreate(_ context.Context, obj
return nil, fmt.Errorf("expected a RKE2ControlPlane object but got %T", obj)
}
rke2controlplanelog.Info("RKE2ControlPlane validate create", "control-plane", klog.KObj(rcp))
rke2ControlPlaneLogger.Info("validate create", "RKE2ControlPlane", klog.KObj(rcp))
var allErrs field.ErrorList
@ -157,6 +159,8 @@ func (rv *RKE2ControlPlaneCustomValidator) ValidateUpdate(_ context.Context, old
return nil, fmt.Errorf("expected a RKE2ControlPlane object but got %T", newObj)
}
rke2ControlPlaneLogger.Info("validate update", "RKE2ControlPlane", klog.KObj(oldControlplane))
var allErrs field.ErrorList
allErrs = append(allErrs, bootstrapv1.ValidateRKE2ConfigSpec(newControlplane.Name, &newControlplane.Spec.RKE2ConfigSpec)...)
@ -173,7 +177,7 @@ func (rv *RKE2ControlPlaneCustomValidator) ValidateUpdate(_ context.Context, old
// Ensure new fields NodeDrainTimeout, NodeVolumeDetachTimeout and NodeDeletionTimeout are mutable
if oldControlplane.Spec.MachineTemplate.NodeDrainTimeout != nil && newControlplane.Spec.MachineTemplate.NodeDrainTimeout != nil &&
oldControlplane.Spec.MachineTemplate.NodeDrainTimeout.Duration != newControlplane.Spec.MachineTemplate.NodeDrainTimeout.Duration {
rke2controlplanelog.Info(
rke2ControlPlaneLogger.Info(
"NodeDrainTimeout field updated",
"old", oldControlplane.Spec.MachineTemplate.NodeDrainTimeout.Duration,
"new", newControlplane.Spec.MachineTemplate.NodeDrainTimeout.Duration,
@ -182,7 +186,7 @@ func (rv *RKE2ControlPlaneCustomValidator) ValidateUpdate(_ context.Context, old
if oldControlplane.Spec.MachineTemplate.NodeVolumeDetachTimeout != nil && newControlplane.Spec.MachineTemplate.NodeVolumeDetachTimeout != nil &&
oldControlplane.Spec.MachineTemplate.NodeVolumeDetachTimeout.Duration != newControlplane.Spec.MachineTemplate.NodeVolumeDetachTimeout.Duration {
rke2controlplanelog.Info(
rke2ControlPlaneLogger.Info(
"NodeVolumeDetachTimeout field updated",
"old", oldControlplane.Spec.MachineTemplate.NodeVolumeDetachTimeout.Duration,
"new", newControlplane.Spec.MachineTemplate.NodeVolumeDetachTimeout.Duration,
@ -191,7 +195,7 @@ func (rv *RKE2ControlPlaneCustomValidator) ValidateUpdate(_ context.Context, old
if oldControlplane.Spec.MachineTemplate.NodeDeletionTimeout != nil && newControlplane.Spec.MachineTemplate.NodeDeletionTimeout != nil &&
oldControlplane.Spec.MachineTemplate.NodeDeletionTimeout.Duration != newControlplane.Spec.MachineTemplate.NodeDeletionTimeout.Duration {
rke2controlplanelog.Info(
rke2ControlPlaneLogger.Info(
"NodeDeletionTimeout field updated",
"old", oldControlplane.Spec.MachineTemplate.NodeDeletionTimeout.Duration,
"new", newControlplane.Spec.MachineTemplate.NodeDeletionTimeout.Duration,
@ -212,7 +216,7 @@ func (rv *RKE2ControlPlaneCustomValidator) ValidateDelete(_ context.Context, obj
return nil, fmt.Errorf("expected a RKE2ControlPlane object but got %T", obj)
}
rke2controlplanelog.Info("validate delete", "name", rcp.Name)
rke2ControlPlaneLogger.Info("validate delete", "RKE2ControlPlane", klog.KObj(rcp))
return nil, nil
}

View File

@ -26,12 +26,16 @@ import (
"k8s.io/apimachinery/pkg/util/validation/field"
"k8s.io/klog/v2"
ctrl "sigs.k8s.io/controller-runtime"
logf "sigs.k8s.io/controller-runtime/pkg/log"
"sigs.k8s.io/controller-runtime/pkg/webhook"
"sigs.k8s.io/controller-runtime/pkg/webhook/admission"
bootstrapv1 "github.com/rancher/cluster-api-provider-rke2/bootstrap/api/v1beta1"
)
// rke2ControlPlaneTemplateLogger is the RKE2ControlPlaneTemplate webhook logger.
var rke2ControlPlaneTemplateLogger = logf.Log.WithName("RKE2ControlPlaneTemplate")
// RKE2ControlPlaneTemplateCustomDefaulter struct is responsible for setting default values on the custom resource of the
// Kind RKE2ControlPlaneTemplate when those are created or updated.
// NOTE: The +kubebuilder:object:generate=false marker prevents controller-gen from generating DeepCopy methods,
@ -66,6 +70,8 @@ func (r *RKE2ControlPlaneTemplateCustomDefaulter) Default(_ context.Context, obj
return apierrors.NewBadRequest(fmt.Sprintf("expected a RKE2ControlPlaneTemplate but got a %T", obj))
}
rke2ControlPlaneTemplateLogger.Info("defaulting", "RKE2ControlPlaneTemplate", klog.KObj(rcpt))
bootstrapv1.DefaultRKE2ConfigSpec(&rcpt.Spec.Template.Spec.RKE2ConfigSpec)
return nil
@ -82,7 +88,7 @@ func (r *RKE2ControlPlaneTemplateCustomValidator) ValidateCreate(_ context.Conte
return nil, fmt.Errorf("expected a RKE2ControlPlaneTemplate object but got %T", obj)
}
rke2controlplanelog.Info("RKE2ControlPlane validate create", "control-plane", klog.KObj(rcpt))
rke2ControlPlaneTemplateLogger.Info("validate create", "RKE2ControlPlaneTemplate", klog.KObj(rcpt))
var allErrs field.ErrorList
@ -114,6 +120,8 @@ func (r *RKE2ControlPlaneTemplateCustomValidator) ValidateUpdate(_ context.Conte
})
}
rke2ControlPlaneTemplateLogger.Info("validate update", "RKE2ControlPlaneTemplate", klog.KObj(oldControlplane))
var allErrs field.ErrorList
allErrs = append(allErrs, bootstrapv1.ValidateRKE2ConfigSpec(newControlplane.Name, &newControlplane.Spec.Template.Spec.RKE2ConfigSpec)...)
@ -144,7 +152,7 @@ func (r *RKE2ControlPlaneTemplateCustomValidator) ValidateDelete(_ context.Conte
return nil, fmt.Errorf("expected a RKE2ControlPlaneTemplate object but got %T", obj)
}
rke2controlplanelog.Info("validate delete", "name", rcpt.Name)
rke2ControlPlaneTemplateLogger.Info("validate delete", "RKE2ControlPlaneTemplate", klog.KObj(rcpt))
return nil, nil
}