Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Webhook resource validation removal #438

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
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 @@ -82,19 +82,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