Improve webhooks logging
Signed-off-by: Andrea Mazzotti <andrea.mazzotti@suse.com>
This commit is contained in:
parent
18d45e5b00
commit
065a235939
|
|
@ -35,7 +35,7 @@ import (
|
||||||
|
|
||||||
var (
|
var (
|
||||||
cannotUseWithIgnition = fmt.Sprintf("not supported when spec.format is set to %q", Ignition)
|
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
|
// 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))
|
return apierrors.NewBadRequest(fmt.Sprintf("expected a RKE2Config but got a %T", obj))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rke2ConfigLogger.Info("defaulting", "RKE2Config", klog.KObj(rc))
|
||||||
|
|
||||||
DefaultRKE2ConfigSpec(&rc.Spec)
|
DefaultRKE2ConfigSpec(&rc.Spec)
|
||||||
|
|
||||||
return nil
|
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)
|
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
|
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)
|
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
|
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.
|
// 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
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -22,14 +22,15 @@ import (
|
||||||
|
|
||||||
apierrors "k8s.io/apimachinery/pkg/api/errors"
|
apierrors "k8s.io/apimachinery/pkg/api/errors"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
|
"k8s.io/klog/v2"
|
||||||
ctrl "sigs.k8s.io/controller-runtime"
|
ctrl "sigs.k8s.io/controller-runtime"
|
||||||
logf "sigs.k8s.io/controller-runtime/pkg/log"
|
logf "sigs.k8s.io/controller-runtime/pkg/log"
|
||||||
"sigs.k8s.io/controller-runtime/pkg/webhook"
|
"sigs.k8s.io/controller-runtime/pkg/webhook"
|
||||||
"sigs.k8s.io/controller-runtime/pkg/webhook/admission"
|
"sigs.k8s.io/controller-runtime/pkg/webhook/admission"
|
||||||
)
|
)
|
||||||
|
|
||||||
// RKE2configtemplatelog is for logging in this package.
|
// rke2ConfigTemplateLogger the RKE2ConfigTemplate webhook logger.
|
||||||
var RKE2configtemplatelog = logf.Log.WithName("RKE2configtemplate-resource")
|
var rke2ConfigTemplateLogger = logf.Log.WithName("RKE2ConfigTemplate")
|
||||||
|
|
||||||
// RKE2ConfigTemplateCustomDefaulter struct is responsible for setting default values on the custom resource of the
|
// RKE2ConfigTemplateCustomDefaulter struct is responsible for setting default values on the custom resource of the
|
||||||
// Kind RKE2ConfigTemplate when those are created or updated.
|
// 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))
|
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
|
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)
|
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
|
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)
|
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
|
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)
|
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
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -40,8 +40,8 @@ const (
|
||||||
defaultNodeVolumeDetachTimeout = 300 * time.Second
|
defaultNodeVolumeDetachTimeout = 300 * time.Second
|
||||||
)
|
)
|
||||||
|
|
||||||
// log is for logging in this package.
|
// rke2ControlPlaneLogger is the RKE2ControlPlane webhook logger.
|
||||||
var rke2controlplanelog = logf.Log.WithName("rke2controlplane-resource")
|
var rke2ControlPlaneLogger = logf.Log.WithName("RKE2ControlPlane")
|
||||||
|
|
||||||
// RKE2ControlPlaneCustomDefaulter struct is responsible for setting default values on the custom resource of the
|
// RKE2ControlPlaneCustomDefaulter struct is responsible for setting default values on the custom resource of the
|
||||||
// Kind RKE2ControlPlane when those are created or updated.
|
// 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))
|
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)
|
bootstrapv1.DefaultRKE2ConfigSpec(&rcp.Spec.RKE2ConfigSpec)
|
||||||
|
|
||||||
// Defaults missing MachineTemplate.InfrastructureRef to Spec.InfrastructureRef
|
// 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)
|
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
|
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)
|
return nil, fmt.Errorf("expected a RKE2ControlPlane object but got %T", newObj)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rke2ControlPlaneLogger.Info("validate update", "RKE2ControlPlane", klog.KObj(oldControlplane))
|
||||||
|
|
||||||
var allErrs field.ErrorList
|
var allErrs field.ErrorList
|
||||||
|
|
||||||
allErrs = append(allErrs, bootstrapv1.ValidateRKE2ConfigSpec(newControlplane.Name, &newControlplane.Spec.RKE2ConfigSpec)...)
|
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
|
// Ensure new fields NodeDrainTimeout, NodeVolumeDetachTimeout and NodeDeletionTimeout are mutable
|
||||||
if oldControlplane.Spec.MachineTemplate.NodeDrainTimeout != nil && newControlplane.Spec.MachineTemplate.NodeDrainTimeout != nil &&
|
if oldControlplane.Spec.MachineTemplate.NodeDrainTimeout != nil && newControlplane.Spec.MachineTemplate.NodeDrainTimeout != nil &&
|
||||||
oldControlplane.Spec.MachineTemplate.NodeDrainTimeout.Duration != newControlplane.Spec.MachineTemplate.NodeDrainTimeout.Duration {
|
oldControlplane.Spec.MachineTemplate.NodeDrainTimeout.Duration != newControlplane.Spec.MachineTemplate.NodeDrainTimeout.Duration {
|
||||||
rke2controlplanelog.Info(
|
rke2ControlPlaneLogger.Info(
|
||||||
"NodeDrainTimeout field updated",
|
"NodeDrainTimeout field updated",
|
||||||
"old", oldControlplane.Spec.MachineTemplate.NodeDrainTimeout.Duration,
|
"old", oldControlplane.Spec.MachineTemplate.NodeDrainTimeout.Duration,
|
||||||
"new", newControlplane.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 &&
|
if oldControlplane.Spec.MachineTemplate.NodeVolumeDetachTimeout != nil && newControlplane.Spec.MachineTemplate.NodeVolumeDetachTimeout != nil &&
|
||||||
oldControlplane.Spec.MachineTemplate.NodeVolumeDetachTimeout.Duration != newControlplane.Spec.MachineTemplate.NodeVolumeDetachTimeout.Duration {
|
oldControlplane.Spec.MachineTemplate.NodeVolumeDetachTimeout.Duration != newControlplane.Spec.MachineTemplate.NodeVolumeDetachTimeout.Duration {
|
||||||
rke2controlplanelog.Info(
|
rke2ControlPlaneLogger.Info(
|
||||||
"NodeVolumeDetachTimeout field updated",
|
"NodeVolumeDetachTimeout field updated",
|
||||||
"old", oldControlplane.Spec.MachineTemplate.NodeVolumeDetachTimeout.Duration,
|
"old", oldControlplane.Spec.MachineTemplate.NodeVolumeDetachTimeout.Duration,
|
||||||
"new", newControlplane.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 &&
|
if oldControlplane.Spec.MachineTemplate.NodeDeletionTimeout != nil && newControlplane.Spec.MachineTemplate.NodeDeletionTimeout != nil &&
|
||||||
oldControlplane.Spec.MachineTemplate.NodeDeletionTimeout.Duration != newControlplane.Spec.MachineTemplate.NodeDeletionTimeout.Duration {
|
oldControlplane.Spec.MachineTemplate.NodeDeletionTimeout.Duration != newControlplane.Spec.MachineTemplate.NodeDeletionTimeout.Duration {
|
||||||
rke2controlplanelog.Info(
|
rke2ControlPlaneLogger.Info(
|
||||||
"NodeDeletionTimeout field updated",
|
"NodeDeletionTimeout field updated",
|
||||||
"old", oldControlplane.Spec.MachineTemplate.NodeDeletionTimeout.Duration,
|
"old", oldControlplane.Spec.MachineTemplate.NodeDeletionTimeout.Duration,
|
||||||
"new", newControlplane.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)
|
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
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -26,12 +26,16 @@ import (
|
||||||
"k8s.io/apimachinery/pkg/util/validation/field"
|
"k8s.io/apimachinery/pkg/util/validation/field"
|
||||||
"k8s.io/klog/v2"
|
"k8s.io/klog/v2"
|
||||||
ctrl "sigs.k8s.io/controller-runtime"
|
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"
|
||||||
"sigs.k8s.io/controller-runtime/pkg/webhook/admission"
|
"sigs.k8s.io/controller-runtime/pkg/webhook/admission"
|
||||||
|
|
||||||
bootstrapv1 "github.com/rancher/cluster-api-provider-rke2/bootstrap/api/v1beta1"
|
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
|
// RKE2ControlPlaneTemplateCustomDefaulter struct is responsible for setting default values on the custom resource of the
|
||||||
// Kind RKE2ControlPlaneTemplate when those are created or updated.
|
// Kind RKE2ControlPlaneTemplate when those are created or updated.
|
||||||
// NOTE: The +kubebuilder:object:generate=false marker prevents controller-gen from generating DeepCopy methods,
|
// 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))
|
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)
|
bootstrapv1.DefaultRKE2ConfigSpec(&rcpt.Spec.Template.Spec.RKE2ConfigSpec)
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
|
@ -82,7 +88,7 @@ func (r *RKE2ControlPlaneTemplateCustomValidator) ValidateCreate(_ context.Conte
|
||||||
return nil, fmt.Errorf("expected a RKE2ControlPlaneTemplate object but got %T", obj)
|
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
|
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
|
var allErrs field.ErrorList
|
||||||
|
|
||||||
allErrs = append(allErrs, bootstrapv1.ValidateRKE2ConfigSpec(newControlplane.Name, &newControlplane.Spec.Template.Spec.RKE2ConfigSpec)...)
|
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)
|
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
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue