fix: operator v0.1.15 — обновлять Env при изменении функции

function_controller.go: при update deployment обновлять не только Image,
но и Env целиком. Без этого изменение entrypoint или env_vars не применялось
в уже существующем Deployment — поды продолжали стартовать со старым
SLESS_ENTRYPOINT и падали с FileNotFoundError.
This commit is contained in:
“Naeel”
2026-03-09 10:26:54 +04:00
parent cefef54936
commit 381ec44852
+3 -1
View File
@@ -208,10 +208,12 @@ func (r *FunctionReconciler) ensureDeployment(ctx context.Context, fn *slessv1al
return ctrl.Result{}, fmt.Errorf("get deployment: %w", err)
}
// Обновляем образ и imagePullSecrets при новой сборке.
// Обновляем образ, env и imagePullSecrets при пересборке или изменении конфига.
// Тег образа уникален per build (sha256 от s3Key) → imagePullPolicy: IfNotPresent
// корректно подтягивает новый образ без дополнительных хаков.
// Env обновляем целиком — иначе изменение entrypoint/env_vars не применяется.
existing.Spec.Template.Spec.Containers[0].Image = fn.Status.ImageRef
existing.Spec.Template.Spec.Containers[0].Env = desired.Spec.Template.Spec.Containers[0].Env
existing.Spec.Template.Spec.ImagePullSecrets = desired.Spec.Template.Spec.ImagePullSecrets
if err := r.Update(ctx, existing); err != nil {
return ctrl.Result{}, fmt.Errorf("update deployment: %w", err)