Skip to content

Commit

Permalink
Webhook resource validation removal (#438)
Browse files Browse the repository at this point in the history
  • Loading branch information
dbadura authored Nov 27, 2023
1 parent a80f68f commit 029f994
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 141 deletions.
2 changes: 1 addition & 1 deletion components/operator/hack/common/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ run-without-lm-on-cluster: \

.PHONY: create-k3d
create-k3d: ## Create k3d with kyma CRDs.
${KYMA} provision k3d --registry-port ${REGISTRY_PORT} --name ${CLUSTER_NAME} --ci
${KYMA} provision k3d --registry-port ${REGISTRY_PORT} --name ${CLUSTER_NAME} --ci -p 6080:8080@loadbalancer -p 6433:8433@loadbalancer
kubectl create namespace kyma-system

.PHONY: delete-k3d
Expand Down
15 changes: 13 additions & 2 deletions components/serverless/internal/controllers/serverless/configmap.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,19 @@ func stateFnInlineCheckSources(ctx context.Context, r *reconciler, s *systemStat

srcChanged := s.inlineFnSrcChanged(r.cfg.docker.PullAddress)
if !srcChanged {
expectedJob := s.buildJob(s.configMaps.Items[0].GetName(), r.cfg)
return buildStateFnCheckImageJob(expectedJob), nil
cfgStatus := getConditionStatus(s.instance.Status.Conditions, serverlessv1alpha2.ConditionConfigurationReady)
if cfgStatus == corev1.ConditionTrue {
expectedJob := s.buildJob(s.configMaps.Items[0].GetName(), r.cfg)
return buildStateFnCheckImageJob(expectedJob), nil
}
currentCondition := serverlessv1alpha2.Condition{
Type: serverlessv1alpha2.ConditionConfigurationReady,
Status: corev1.ConditionTrue,
LastTransitionTime: metav1.Now(),
Reason: serverlessv1alpha2.ConditionReasonFunctionSpec,
Message: "Function configured",
}
return buildStatusUpdateStateFnWithCondition(currentCondition), nil
}

cfgMapCount := len(s.configMaps.Items)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,6 @@ func (fn *Function) getBasicValidations() []validationFunction {
fn.Spec.validateEnv,
fn.Spec.validateLabels,
fn.Spec.validateAnnotations,
fn.Spec.validateFunctionResources,
fn.Spec.validateBuildResources,
fn.Spec.validateSources,
fn.Spec.validateSecretMounts,
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -448,138 +448,6 @@ func TestFunctionSpec_validateResources(t *testing.T) {
),
),
},
"Should return error on function resources validation": {
givenFunc: Function{
ObjectMeta: metav1.ObjectMeta{Name: "test", Namespace: "test"},
Spec: FunctionSpec{
Runtime: NodeJs18,
Source: Source{
Inline: &InlineSource{
Source: "test-source",
},
},
ResourceConfiguration: &ResourceConfiguration{
Function: &ResourceRequirements{
Resources: &corev1.ResourceRequirements{
Limits: corev1.ResourceList{
corev1.ResourceCPU: resource.MustParse("50m"),
corev1.ResourceMemory: resource.MustParse("64Mi"),
},
Requests: corev1.ResourceList{
corev1.ResourceCPU: resource.MustParse("100m"),
corev1.ResourceMemory: resource.MustParse("128Mi"),
},
},
},
},
},
},
expectedError: gomega.HaveOccurred(),
specifiedExpectedError: gomega.And(
gomega.ContainSubstring(
"spec.resourceConfiguration.function.resources.limits.cpu",
),
gomega.ContainSubstring(
"spec.resourceConfiguration.function.resources.limits.memory",
),
),
},
"Should return error on function build resources validation": {
givenFunc: Function{
ObjectMeta: metav1.ObjectMeta{Name: "test", Namespace: "test"},
Spec: FunctionSpec{
Runtime: NodeJs18,
Source: Source{
Inline: &InlineSource{
Source: "test-source",
},
},
ResourceConfiguration: &ResourceConfiguration{
Function: &ResourceRequirements{
Resources: &corev1.ResourceRequirements{
Limits: corev1.ResourceList{
corev1.ResourceCPU: resource.MustParse("100m"),
corev1.ResourceMemory: resource.MustParse("128Mi"),
},
Requests: corev1.ResourceList{
corev1.ResourceCPU: resource.MustParse("50m"),
corev1.ResourceMemory: resource.MustParse("64Mi"),
},
},
},
Build: &ResourceRequirements{
Resources: &corev1.ResourceRequirements{
Limits: corev1.ResourceList{
corev1.ResourceCPU: resource.MustParse("50m"),
corev1.ResourceMemory: resource.MustParse("64Mi"),
},
Requests: corev1.ResourceList{
corev1.ResourceCPU: resource.MustParse("100m"),
corev1.ResourceMemory: resource.MustParse("128Mi"),
},
},
},
},
},
},
expectedError: gomega.HaveOccurred(),
specifiedExpectedError: gomega.And(
gomega.ContainSubstring("spec.resourceConfiguration.build.resources.limits.cpu"),
gomega.ContainSubstring("spec.resourceConfiguration.build.resources.limits.memory"),
gomega.ContainSubstring("spec.resourceConfiguration.build.resources.requests.memory"),
gomega.ContainSubstring("spec.resourceConfiguration.build.resources.requests.cpu"),
),
},
"should return errors because of minimal config values": {
givenFunc: Function{
ObjectMeta: metav1.ObjectMeta{Name: "test", Namespace: "test"},
Spec: FunctionSpec{
Runtime: NodeJs18,
Source: Source{
Inline: &InlineSource{
Source: "test-source",
},
},
ResourceConfiguration: &ResourceConfiguration{
Function: &ResourceRequirements{
Resources: &corev1.ResourceRequirements{
Limits: corev1.ResourceList{
corev1.ResourceCPU: resource.MustParse("9m"),
corev1.ResourceMemory: resource.MustParse("10Mi"),
},
Requests: corev1.ResourceList{
corev1.ResourceCPU: resource.MustParse("5m"),
corev1.ResourceMemory: resource.MustParse("6Mi"),
},
},
},
Build: &ResourceRequirements{
Resources: &corev1.ResourceRequirements{
Limits: corev1.ResourceList{
corev1.ResourceCPU: resource.MustParse("9m"),
corev1.ResourceMemory: resource.MustParse("10Mi"),
},
Requests: corev1.ResourceList{
corev1.ResourceCPU: resource.MustParse("5m"),
corev1.ResourceMemory: resource.MustParse("6Mi"),
},
},
},
},
},
},
expectedError: gomega.HaveOccurred(),
specifiedExpectedError: gomega.And(
gomega.ContainSubstring("spec.resourceConfiguration.function.resources.requests.cpu"),
gomega.ContainSubstring("spec.resourceConfiguration.function.resources.requests.memory"),
gomega.ContainSubstring("spec.resourceConfiguration.function.resources.limits.cpu"),
gomega.ContainSubstring("spec.resourceConfiguration.function.resources.limits.memory"),
gomega.ContainSubstring("spec.resourceConfiguration.build.resources.requests.cpu"),
gomega.ContainSubstring("spec.resourceConfiguration.build.resources.requests.memory"),
gomega.ContainSubstring("spec.resourceConfiguration.build.resources.limits.cpu"),
gomega.ContainSubstring("spec.resourceConfiguration.build.resources.limits.memory"),
),
},
"should be OK for git sourceType": {
givenFunc: Function{
ObjectMeta: metav1.ObjectMeta{Name: "test", Namespace: "test"},
Expand Down
8 changes: 4 additions & 4 deletions config/serverless/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -76,19 +76,19 @@ global:
directory: "prod"
function_controller:
name: "function-controller"
version: "PR-433"
version: "PR-438"
directory: "dev"
function_webhook:
name: "function-webhook"
version: "PR-433"
version: "PR-438"
directory: "dev"
function_build_init:
name: "function-build-init"
version: "PR-433"
version: "PR-438"
directory: "dev"
function_registry_gc:
name: "function-registry-gc"
version: "PR-433"
version: "PR-438"
directory: "dev"
function_runtime_nodejs16:
name: "function-runtime-nodejs16"
Expand Down

0 comments on commit 029f994

Please sign in to comment.