Аудит провайдера vs каноничный Fission. Добавлено:
Environment:
- builder_image, builder_command для Go и языков с build step
Package:
- deploy_type (literal/source) для переключения deployment/source archive
- loadPackageSourceArchive() — zip-упаковка source_dir
- Убран пустой source:{} из literal mode
Function:
- executor_type (poolmgr/newdeploy/container)
- function_timeout, idle_timeout
- min_scale, max_scale для ExecutionStrategy
Все 21 тест пройден. Обратная совместимость проверена.
Документация: doc/AUDIT_PROVIDER_VS_FISSION_2026-06-03.md
2.8 KiB
2.8 KiB
Thinking Log — Аудит провайдера, 2026-06-03
Задача
Тщательное сравнение нашего Terraform provider для Fission с каноническим поведением Fission CLI и CRD types.
Что было сделано
1. Чтение нашего кода
Прочитаны все 10 .go файлов (~1500 строк):
environment_resource.go(136 строк)package_resource.go(460 строк)function_resource.go(350 строк)http_trigger_resource.go(310 строк)client.go(295 строк)validation_helpers.go,import_helpers.go- 3 тест-файла
2. Чтение канонических исходников Fission
pkg/apis/core/v1/types.go— все CRD Go-структурыpkg/apis/core/v1/const.go— константы (ArchiveLiteralSizeLimit=256KB, BuildStatus*, ExecutorType*)- CLI:
environment/create.go,package/create.go,package/util/util.go - StorageSvc:
storagesvc/client/client.go
3. Дамп реальных CRD из кластера
Через kubectl получены ВСЕ объекты всех 4 типов из кластера:
- 20+ environments (наши tf-* и CLI-созданные)
- 15+ functions (наши tf-* и CLI-созданные)
- 15+ packages (наши и CLI)
- 15+ httptriggers
4. Сравнительный анализ
Для каждого ресурса: поле-за-полем наш payload vs CLI payload vs канон types.go.
Ключевые находки
Что правильно
- environment: version, runtime.image, poolsize — ок
- package: deployment.literal base64 — ок
- function: InvokeStrategy structure, package.functionName — ок
- httptrigger: relativeurl, methods, functionref, createingress — ок
- client.go: чистый CRUD, GVR правильные — ок
Что отсутствует (критично)
- Environment.builder — нет builder_image/builder_command → Go не работает через builder pipeline
- Package source archive — только deployment-only, нет source+build flow
Что отсутствует (важно)
- Function executor_type — hardcoded poolmgr, нет newdeploy/container
- Function timeouts — нет functionTimeout, idleTimeout
- Function scaling — нет minScale, maxScale
Что отсутствует (некритично)
- Package: пустой
source: {}— мусор но не bug - Environment: resources, imagepullsecret, keeparchive
- Function: concurrency, requestsPerPod, resources, secrets
- HTTPTrigger: prefix, keepPrefix, полный ingressconfig
Решение
Написан полный аудит-документ: doc/AUDIT_PROVIDER_VS_FISSION_2026-06-03.md