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:
@@ -157,6 +157,12 @@ func (h *Handler) CreateService(w http.ResponseWriter, r *http.Request) {
|
||||
writeJSON(w, http.StatusConflict, errResp("service already exists"))
|
||||
return
|
||||
}
|
||||
// k8s возвращает StatusInvalid (422) при нарушении enum-валидации CRD (например, неизвестный runtime)
|
||||
// — маппим это в 400, а не в 500
|
||||
if errors.IsInvalid(err) {
|
||||
writeJSON(w, http.StatusBadRequest, errResp("invalid service spec: "+err.Error()))
|
||||
return
|
||||
}
|
||||
writeJSON(w, http.StatusInternalServerError, errResp(err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user