From cd3aaf61ea011bc6dc3a79ff2981ef8eda283df8 Mon Sep 17 00:00:00 2001 From: Shane Date: Thu, 28 Nov 2024 22:09:23 +0800 Subject: [PATCH] change fallback check Signed-off-by: Shane --- apis/keda/v1alpha1/scaledobject_types.go | 14 +++++++++++++- apis/keda/v1alpha1/scaledobject_webhook_test.go | 4 ++-- pkg/common/message/message.go | 2 ++ 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/apis/keda/v1alpha1/scaledobject_types.go b/apis/keda/v1alpha1/scaledobject_types.go index 216a93b6f9a..74a0cc030d1 100644 --- a/apis/keda/v1alpha1/scaledobject_types.go +++ b/apis/keda/v1alpha1/scaledobject_types.go @@ -21,10 +21,21 @@ import ( "reflect" "strconv" + eventingv1alpha1 "github.com/kedacore/keda/v2/apis/eventing/v1alpha1" + "github.com/kedacore/keda/v2/pkg/common/message" + "github.com/kedacore/keda/v2/pkg/eventemitter" + "github.com/kedacore/keda/v2/pkg/eventreason" + autoscalingv2 "k8s.io/api/autoscaling/v2" + corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + logf "sigs.k8s.io/controller-runtime/pkg/log" ) +var scaledobjecttypeslog = logf.Log.WithName("scaledobject-types") + +var EventEmitter eventemitter.EventHandler + // +genclient // +kubebuilder:object:root=true // +kubebuilder:subresource:status @@ -288,7 +299,8 @@ func CheckFallbackValid(scaledObject *ScaledObject) error { for _, trigger := range scaledObject.Spec.Triggers { if trigger.Type == cpuString || trigger.Type == memoryString { - return fmt.Errorf("type is %s , but fallback it is not supported by the CPU & memory scalers", trigger.Type) + scaledobjecttypeslog.Error(nil, fmt.Sprintf("type is %s , but fallback it is not supported by the CPU & memory scalers", trigger.Type)) + EventEmitter.Emit(scaledObject, scaledObject.Namespace, corev1.EventTypeWarning, eventingv1alpha1.ScaledObjectFailedType, eventreason.ScaledObjectCheckFailed, message.ScaledObjectMayNotBehaveAsExpectationMsg) } if trigger.MetricType != autoscalingv2.AverageValueMetricType { return fmt.Errorf("MetricType=%s, but fallback can only be enabled for triggers with metric of type AverageValue", trigger.MetricType) diff --git a/apis/keda/v1alpha1/scaledobject_webhook_test.go b/apis/keda/v1alpha1/scaledobject_webhook_test.go index e30404d16c4..08970b121ac 100644 --- a/apis/keda/v1alpha1/scaledobject_webhook_test.go +++ b/apis/keda/v1alpha1/scaledobject_webhook_test.go @@ -176,7 +176,7 @@ var _ = It("shouldn't validate the so creation when the fallback is wrong", func }).Should(HaveOccurred()) }) -var _ = It("shouldn't validate the so creation When the fallback are configured and the scaler is either CPU or memory.", func() { +var _ = It("should validate the so creation When the fallback are configured and the scaler is either CPU or memory.", func() { namespaceName := "wrong-fallback-cpu-memory" namespace := createNamespace(namespaceName) workload := createDeployment(namespaceName, true, true) @@ -193,7 +193,7 @@ var _ = It("shouldn't validate the so creation When the fallback are configured Eventually(func() error { return k8sClient.Create(context.Background(), so) - }).Should(HaveOccurred()) + }).ShouldNot(HaveOccurred()) }) var _ = It("shouldn't validate the so creation when there is another unmanaged hpa and so has transfer-hpa-ownership activated", func() { diff --git a/pkg/common/message/message.go b/pkg/common/message/message.go index 4abcc0402ff..388e032d75e 100644 --- a/pkg/common/message/message.go +++ b/pkg/common/message/message.go @@ -42,4 +42,6 @@ const ( ClusterTriggerAuthenticationCreatedMsg = "New ClusterTriggerAuthentication configured" ClusterTriggerAuthenticationUpdatedMsg = "ClusterTriggerAuthentication %s is updated" + + ScaledObjectMayNotBehaveAsExpectationMsg = "ScaledObject may not behave as expectation" )