Files
fission-console/doc/thinking/2026-04-14.md
T

7.8 KiB
Raw Blame History

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.