docs: обновление doc/ по итогам сессии 2026-03-08
This commit is contained in:
@@ -204,3 +204,44 @@
|
||||
- operator: `naeel/sless-operator:v0.1.6`
|
||||
- provider: `terra.k8c.ru/naeel/sless v0.1.4`
|
||||
|
||||
|
||||
---
|
||||
|
||||
## 2026-03-08 — Переключение registry с Harbor на DockerHub
|
||||
|
||||
**Проблема:** Harbor (`pearlharbor.registryk8s.services.ngcloud.ru`) — внешний сервис облачного провайдера. Нестабилен: `/v2/` периодически зависает на 10+ секунд или возвращает 504. Kaniko не мог завершить push образа.
|
||||
|
||||
**Решение:** `REGISTRY_HOST=naeel` (DockerHub namespace). Образы функций пушатся как `naeel/sless-default-{namespace}-{name}:latest`.
|
||||
|
||||
**Реализация:**
|
||||
- `deployments/k8s/operator.yaml` — configmap `REGISTRY_HOST: "naeel"`
|
||||
- Secret `sless-registry-auth` уже содержал DockerHub credentials → дополнительных изменений не потребовалось
|
||||
|
||||
**Компромисс:** DockerHub — публичный registry. Образы функций пользователей публично видимы. Для production нужен приватный registry (Harbor, ECR, GCR и т.д.).
|
||||
|
||||
**Версии:**
|
||||
- operator: оператор не пересобирался, только configmap
|
||||
- commit: `b69f795`
|
||||
|
||||
---
|
||||
|
||||
## 2026-03-08 — FunctionJob polling вместо Owns watch
|
||||
|
||||
**Проблема:** `Owns(&batchv1.Job{})` в `SetupWithManager` не работает cross-namespace. Job создаётся в `sless-fn-{ns}`, FunctionJob — в user namespace. Watch никогда не срабатывал.
|
||||
|
||||
**Решение:** Убрать `Owns`. В `syncJobStatus` при Running статусе возвращать `ctrl.Result{RequeueAfter: 5 * time.Second}` — контроллер сам поллит k8s Job каждые 5 сек.
|
||||
|
||||
**Версии:**
|
||||
- operator: `naeel/sless-operator:v0.1.10`
|
||||
- commit: `461ac09`
|
||||
|
||||
---
|
||||
|
||||
## 2026-03-08 — code_hash: filesha256 вместо output_md5
|
||||
|
||||
**Проблема:** `hashicorp/archive v2.7.x` имеет баг: `output_md5` возвращает MD5 предыдущей версии zip. `output_sha` и `output_sha256` обновляются корректно.
|
||||
|
||||
**Решение:** `code_hash = filesha256("${path.module}/code/handler.js")` — хэшируется исходный файл напрямую.
|
||||
|
||||
**Правило проекта:** В `sless_function.code_hash` всегда использовать `filesha256(source_file)`, не `archive_file.output_md5`.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user