# 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 правильные — ок ### Что отсутствует (критично) 1. **Environment.builder** — нет builder_image/builder_command → Go не работает через builder pipeline 2. **Package source archive** — только deployment-only, нет source+build flow ### Что отсутствует (важно) 3. **Function executor_type** — hardcoded poolmgr, нет newdeploy/container 4. **Function timeouts** — нет functionTimeout, idleTimeout 5. **Function scaling** — нет minScale, maxScale ### Что отсутствует (некритично) 6. Package: пустой `source: {}` — мусор но не bug 7. Environment: resources, imagepullsecret, keeparchive 8. Function: concurrency, requestsPerPod, resources, secrets 9. HTTPTrigger: prefix, keepPrefix, полный ingressconfig ## Решение Написан полный аудит-документ: `doc/AUDIT_PROVIDER_VS_FISSION_2026-06-03.md`