Skip to content

Commit

Permalink
Merge pull request #900 from kwiatekus/warn-about-dead-fields
Browse files Browse the repository at this point in the history
Warn if dead fields are used
  • Loading branch information
kwiatekus authored Apr 22, 2024
2 parents cf6405e + bccd256 commit d6a1d4f
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 6 deletions.
12 changes: 12 additions & 0 deletions components/operator/internal/state/controller_configuration.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ const (
slowRuntimePreset = "XS"
fastBuildPreset = "fast"
fastRuntimePreset = "L"
functionTimeoutDepreciationMessage = "spec.functionTimeoutSec is unused and will be removed. Remove it from your Serverless CR."
functionRequestBodyLimitDepreciationMessage = "spec.functionRequestBodyLimitMb is unused and will be removed. Remove it from your Serverless CR."
)

func sFnControllerConfiguration(ctx context.Context, r *reconciler, s *systemState) (stateFn, *controllerruntime.Result, error) {
Expand All @@ -23,6 +25,7 @@ func sFnControllerConfiguration(ctx context.Context, r *reconciler, s *systemSta
}

configureControllerConfigurationFlags(s)
warnAboutDeadFields(s)

s.setState(v1alpha1.StateProcessing)
s.instance.UpdateConditionTrue(
Expand All @@ -34,6 +37,15 @@ func sFnControllerConfiguration(ctx context.Context, r *reconciler, s *systemSta
return nextState(sFnApplyResources)
}

func warnAboutDeadFields(s *systemState) {
if s.instance.Spec.FunctionTimeoutSec != "" {
s.warningBuilder.With(functionTimeoutDepreciationMessage)
}
if s.instance.Spec.FunctionRequestBodyLimitMb != "" {
s.warningBuilder.With(functionRequestBodyLimitDepreciationMessage)
}
}

func updateControllerConfigurationStatus(ctx context.Context, r *reconciler, instance *v1alpha1.Serverless) error {
nodesLen, err := getNodesLen(ctx, r.client)
if err != nil {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,11 @@ package state
import (
"context"
"testing"
"fmt"

"github.com/kyma-project/serverless/components/operator/api/v1alpha1"
"github.com/kyma-project/serverless/components/operator/internal/chart"
"github.com/kyma-project/serverless/components/operator/internal/warning"
"github.com/stretchr/testify/require"
"go.uber.org/zap"
corev1 "k8s.io/api/core/v1"
Expand Down Expand Up @@ -127,8 +129,6 @@ func Test_sFnControllerConfiguration(t *testing.T) {
FunctionBuildExecutorArgs: executorArgsTest,
FunctionBuildMaxSimultaneousJobs: maxSimultaneousJobsTest,
HealthzLivenessTimeout: healthzLivenessTimeoutTest,
FunctionRequestBodyLimitMb: requestBodyLimitMbTest,
FunctionTimeoutSec: timeoutSecTest,
DefaultBuildJobPreset: buildJobPresetTest,
DefaultRuntimePodPreset: runtimePodPresetTest,
},
Expand All @@ -150,8 +150,6 @@ func Test_sFnControllerConfiguration(t *testing.T) {
require.Equal(t, executorArgsTest, status.BuildExecutorArgs)
require.Equal(t, maxSimultaneousJobsTest, status.BuildMaxSimultaneousJobs)
require.Equal(t, healthzLivenessTimeoutTest, status.HealthzLivenessTimeout)
require.Equal(t, requestBodyLimitMbTest, status.RequestBodyLimitMb)
require.Equal(t, timeoutSecTest, status.TimeoutSec)
require.Equal(t, buildJobPresetTest, status.DefaultBuildJobPreset)
require.Equal(t, runtimePodPresetTest, status.DefaultRuntimePodPreset)

Expand All @@ -169,8 +167,6 @@ func Test_sFnControllerConfiguration(t *testing.T) {
"Normal Configuration Function build executor args set from '' to 'test-build-executor-args'",
"Normal Configuration Max number of simultaneous jobs set from '' to 'test-max-simultaneous-jobs'",
"Normal Configuration Duration of health check set from '' to 'test-healthz-liveness-timeout'",
"Normal Configuration Max size of request body set from '' to 'test-request-body-limit-mb'",
"Normal Configuration Timeout set from '' to 'test-timeout-sec'",
"Normal Configuration Default build job preset set from '' to 'test=default-build-job-preset'",
"Normal Configuration Default runtime pod preset set from '' to 'test-default-runtime-pod-preset'",
}
Expand Down Expand Up @@ -238,8 +234,24 @@ func Test_sFnControllerConfiguration(t *testing.T) {
configurationReadyMsg)
require.Equal(t, v1alpha1.StateProcessing, s.instance.Status.State)
})

t.Run("enable dead fields", func(t *testing.T) {
s := &systemState{
warningBuilder: warning.NewBuilder(),
instance: v1alpha1.Serverless{
Spec: v1alpha1.ServerlessSpec{
FunctionRequestBodyLimitMb: requestBodyLimitMbTest,
FunctionTimeoutSec: timeoutSecTest,
},
},
}
warnAboutDeadFields(s)
require.Equal(t, fmt.Sprintf("Warning: %s; %s", functionTimeoutDepreciationMessage, functionRequestBodyLimitDepreciationMessage), s.warningBuilder.Build())
})
}



func fixTestNode(name string) *corev1.Node {
return &corev1.Node{
ObjectMeta: metav1.ObjectMeta{
Expand Down

0 comments on commit d6a1d4f

Please sign in to comment.