feat: complete MVP resources and validate end-to-end terraform flow

This commit is contained in:
Naeel
2026-04-14 22:53:33 +03:00
parent cf55828ba6
commit f0446742fe
8 changed files with 215 additions and 76 deletions
+40
View File
@@ -68,3 +68,43 @@
### Следующий шаг
- Добавить пример `examples/hello-python/main.tf` и выполнить smoke Terraform apply.
### Обновление этапа (пример Terraform)
- Создан пример `examples/hello-python/main.tf` с использованием ресурсов:
- `fission_environment`
- `fission_package`
- `fission_function`
- `fission_http_trigger`
- Добавлен код функции `examples/hello-python/code/main.py`.
### Следующий шаг
- Подготовить локальную установку бинарника провайдера для `terraform init` и выполнить smoke `terraform apply`.
### Обновление этапа (smoke Terraform apply)
- Собран бинарник провайдера и подключен через Terraform `dev_overrides`.
- Прогнан `terraform plan` для `examples/hello-python`: план успешен, 4 ресурса к созданию.
- Прогнан `terraform apply` и выполнена функциональная проверка.
Исправленные баги по факту smoke:
- `fission_package`: после Create computed-поля (`build_status`, `build_log`) могли оставаться `unknown`.
- Исправлено формирование state в `unstructuredToPackageModel`.
- `fission_function`: CRD требовал обязательный `spec.InvokeStrategy`.
- Добавлен `InvokeStrategy` в payload функции.
- `fission_http_trigger`: несогласованность state (`create_ingress` null -> false).
- В schema добавлены `Computed` + `Default(false)` для `create_ingress`.
- Для `methods` добавлен `Computed`.
Дополнительно:
- Для текущего python MVP `fission_package` переведен на `spec.deployment.literal` (как у рабочего CLI-пакета).
- Проверка endpoint после apply:
- `GET /tf-hello` -> `hello from fission via terraform`.
### Следующий шаг
- Добавить README по запуску dev override и оговорить ограничения текущего MVP (`source_dir` ожидает `main.py`).
### Обновление этапа (README)
- Добавлен `README.md` в корень репозитория.
- Описаны:
- список реализованных ресурсов MVP
- запуск через Terraform dev override
- текущие ограничения MVP
+37
View File
@@ -100,3 +100,40 @@
- преобразование terraform model <-> CRD payload
- Сборка `go build ./...` успешна.
- Следующий этап: пример Terraform и smoke apply.
---
Агент: GitHub Copilot
Модель: GPT-5.3-Codex
## План (до действий, этап 6)
1. Добавить пример Terraform под текущий набор реализованных ресурсов.
2. Добавить простой код функции для примера.
3. Зафиксировать изменения в документации.
## Результат (после действий, этап 6)
- Создан `examples/hello-python/main.tf`.
- Создан `examples/hello-python/code/main.py`.
- Пример покрывает цепочку Environment -> Package -> Function -> HTTPTrigger.
- Следующий этап: установить бинарник провайдера в локальный plugin cache и прогнать smoke `terraform init/plan/apply`.
---
Агент: GitHub Copilot
Модель: GPT-5.3-Codex
## План (до действий, этап 7)
1. Выполнить smoke `terraform plan/apply` с dev override.
2. Проверить рабочий HTTP endpoint функции.
3. Зафиксировать найденные дефекты провайдера и исправить их.
## Результат (после действий, этап 7)
- Выполнен `terraform plan` для `examples/hello-python`.
- Выполнен `terraform apply`.
- Найдены и исправлены дефекты:
- `fission_package`: computed-поля могли оставаться unknown после Create.
- `fission_function`: отсутствовал обязательный `spec.InvokeStrategy`.
- `fission_http_trigger`: несогласованность состояния для `create_ingress`.
- После фиксов выполнен повторный apply и проверка endpoint:
- `https://fission.kube5s.ru/tf-hello` -> `hello from fission via terraform`.
- MVP-цепочка ресурсов работает end-to-end на кластере.