159 lines
7.8 KiB
Markdown
159 lines
7.8 KiB
Markdown
# Thinking Log
|
||
|
||
Агент: GitHub Copilot
|
||
Модель: GPT-5.3-Codex
|
||
Дата: 2026-04-14
|
||
|
||
---
|
||
|
||
## План (до действий)
|
||
1. Проверить реальное состояние кода после scaffold и внешних правок.
|
||
2. Зафиксировать документацию этапа до изменений в коде.
|
||
3. Реализовать первый рабочий ресурс `fission_environment` как базовую вертикаль (provider -> client -> resource CRUD).
|
||
4. Скомпилировать проект и поправить ошибки.
|
||
5. Обновить документацию по факту и закоммитить этап.
|
||
|
||
## Результат (после предыдущих действий)
|
||
- Подтверждено, что REST `/v2/*` в текущей установке недоступен.
|
||
- План реализации переключен на Kubernetes CRD API.
|
||
- Создан и собран каркас провайдера.
|
||
- Сейчас выполняется реализация первого рабочего ресурса.
|
||
|
||
---
|
||
|
||
Агент: GitHub Copilot
|
||
Модель: GPT-5.3-Codex
|
||
|
||
## План (до действий, этап 2)
|
||
1. Реализовать CRUD методы клиента для `environments.fission.io`.
|
||
2. Реализовать полный lifecycle ресурса `fission_environment`.
|
||
3. Проверить сборку и привести код к чистому состоянию.
|
||
4. Зафиксировать результат в документации.
|
||
|
||
## Результат (после действий, этап 2)
|
||
- В `internal/client/client.go` реализованы методы CRUD для Environment CRD.
|
||
- В `internal/resources/environment_resource.go` реализован полноценный ресурс:
|
||
- schema атрибутов
|
||
- Configure/Create/Read/Update/Delete
|
||
- преобразование model <-> unstructured
|
||
- Сборка `go build ./...` успешна.
|
||
- Этап готов к коммиту и переходу к `fission_package`.
|
||
|
||
---
|
||
|
||
Агент: GitHub Copilot
|
||
Модель: GPT-5.3-Codex
|
||
|
||
## План (до действий, этап 3)
|
||
1. Реализовать CRUD методы клиента для `packages.fission.io`.
|
||
2. Реализовать ресурс `fission_package` с загрузкой кода из `source_dir` или `code_path`.
|
||
3. Проверить сборку.
|
||
4. Обновить документацию и зафиксировать этап.
|
||
|
||
## Результат (после действий, этап 3)
|
||
- В `internal/client/client.go` добавлены методы CRUD для Package CRD.
|
||
- В `internal/resources/package_resource.go` реализован рабочий ресурс `fission_package`:
|
||
- schema ресурса
|
||
- проверка источника кода (ровно один из `source_dir`/`code_path`)
|
||
- упаковка директории в zip
|
||
- base64 в `spec.source.literal`
|
||
- Create/Read/Update/Delete через CRD API
|
||
- Сборка `go build ./...` успешна.
|
||
- Следующий этап: `fission_function`.
|
||
|
||
---
|
||
|
||
Агент: GitHub Copilot
|
||
Модель: GPT-5.3-Codex
|
||
|
||
## План (до действий, этап 4)
|
||
1. Реализовать CRUD методы клиента для `functions.fission.io`.
|
||
2. Реализовать ресурс `fission_function`.
|
||
3. Проверить сборку.
|
||
4. Обновить документацию этапа.
|
||
|
||
## Результат (после действий, этап 4)
|
||
- В `internal/client/client.go` добавлены методы CRUD для Function CRD.
|
||
- В `internal/resources/function_resource.go` реализован рабочий ресурс `fission_function`:
|
||
- schema с обязательными `name`, `environment`, `package_name`, `entrypoint`
|
||
- Configure/Create/Read/Update/Delete
|
||
- преобразование terraform model <-> CRD payload
|
||
- Сборка `go build ./...` успешна.
|
||
- Следующий этап: `fission_http_trigger`.
|
||
|
||
---
|
||
|
||
Агент: GitHub Copilot
|
||
Модель: GPT-5.3-Codex
|
||
|
||
## План (до действий, этап 5)
|
||
1. Реализовать CRUD методы клиента для `httptriggers.fission.io`.
|
||
2. Реализовать ресурс `fission_http_trigger`.
|
||
3. Проверить сборку.
|
||
4. Обновить документацию этапа.
|
||
|
||
## Результат (после действий, этап 5)
|
||
- В `internal/client/client.go` добавлены методы CRUD для HTTPTrigger CRD.
|
||
- В `internal/resources/http_trigger_resource.go` реализован рабочий ресурс `fission_http_trigger`:
|
||
- schema с `name`, `function`, `url`, `methods`, `create_ingress`, `host`
|
||
- Configure/Create/Read/Update/Delete
|
||
- преобразование 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 на кластере.
|
||
|
||
---
|
||
|
||
Агент: GitHub Copilot
|
||
Модель: GPT-5.3-Codex
|
||
|
||
## План (до действий, этап 8)
|
||
1. Добавить поддержку `terraform import` для всех реализованных ресурсов.
|
||
2. Добавить unit-тесты на критичную логику конвертации и валидации.
|
||
3. Прогнать `go test` и повторный smoke `terraform plan/apply`.
|
||
|
||
## Результат (после действий, этап 8)
|
||
- Добавлен общий helper парсинга import ID (`namespace/name`).
|
||
- Добавлен `ImportState` для ресурсов Environment/Package/Function/HTTPTrigger.
|
||
- Добавлены unit-тесты для `internal/resources`.
|
||
- Прогон `go test ./...` успешен.
|
||
- Повторный `terraform apply` успешен.
|
||
- Финальная проверка endpoint:
|
||
- `GET /tf-hello` -> `hello from fission via terraform`.
|