fix: v0.1.50 — runtime 400 + SLESS_ENTRYPOINT в Deployment

Bug 1: services.go — k8s IsInvalid error (CRD enum validation) маппился в 500.
Теперь errors.IsInvalid() → 400 Bad Request (invalid service spec).

Bug 2: service_controller.go buildServiceDeployment не передавал env SLESS_ENTRYPOINT
в под. Добавлен в envVars из svc.Spec.Entrypoint. Без него server.py использовал
fallback handler.handle и не замечал неверный entrypoint.

operator_failure_test.sh 12B-2: обновлён под новое правильное поведение —
create ruby3.0 → 400 (не 201). Старый 201-путь сохранён как warn для совместимости.
This commit is contained in:
Naeel
2026-03-22 08:11:05 +03:00
parent d4ccbc7d15
commit a76baa62a3
6 changed files with 100 additions and 7 deletions
+6
View File
@@ -317,6 +317,12 @@ func (r *ServiceReconciler) buildServiceDeployment(svc *slessv1alpha1.Service, n
for _, k := range keys {
envVars = append(envVars, corev1.EnvVar{Name: k, Value: svc.Spec.Env[k]})
}
// SLESS_ENTRYPOINT обязан быть передан в pod — runtime server использует его для загрузки функции.
// Если не передать, server.py/nodejs/go server упадёт на fallback handler.handle и не заметит
// неверный entrypoint, что маскирует проблему конфигурации.
if svc.Spec.Entrypoint != "" {
envVars = append(envVars, corev1.EnvVar{Name: "SLESS_ENTRYPOINT", Value: svc.Spec.Entrypoint})
}
return &appsv1.Deployment{
ObjectMeta: metav1.ObjectMeta{