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:
@@ -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{
|
||||
|
||||
Reference in New Issue
Block a user