feat: implement environment and package resources via fission CRD
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
# Progress Log
|
||||
|
||||
## 2026-04-14
|
||||
|
||||
### План перед работой
|
||||
- Зафиксировать, что REST `/v2/*` недоступен в текущем кластере Fission v1.22.1 и MVP идет через Kubernetes CRD API.
|
||||
- Реализовать первый рабочий Terraform ресурс `fission_environment`.
|
||||
- Добавить минимальный CRUD в клиент для CRD `environments.fission.io`.
|
||||
- Проверить сборку `go build ./...`.
|
||||
|
||||
### Факт выполнения
|
||||
- Обновлен план в `doc/CODEX_PLAN.md`: путь реализации переведен на CRD API.
|
||||
- Создан каркас провайдера и заготовки ресурсов.
|
||||
- Реализован рабочий `fission_environment`:
|
||||
- schema (name, image, version, poolsize, namespace, id, uid)
|
||||
- Configure() с получением клиента из provider
|
||||
- Create/Read/Update/Delete через Kubernetes CRD `environments.fission.io`
|
||||
- В `internal/client/client.go` добавлены методы:
|
||||
- CreateEnvironment / GetEnvironment / UpdateEnvironment / DeleteEnvironment
|
||||
- IsNotFound для обработки удаления/дрейфа state
|
||||
- Проверка `go build ./...` проходит успешно.
|
||||
|
||||
### Следующий шаг
|
||||
- Реализовать `fission_package` (zip/base64 -> spec.source.literal) через CRD `packages.fission.io`.
|
||||
|
||||
### Обновление этапа (fission_package)
|
||||
- Реализован CRUD в `internal/client/client.go` для `packages.fission.io`:
|
||||
- `CreatePackage`
|
||||
- `GetPackage`
|
||||
- `UpdatePackage`
|
||||
- `DeletePackage`
|
||||
- Реализован ресурс `fission_package` в `internal/resources/package_resource.go`:
|
||||
- schema: `name`, `environment`, `source_dir`, `code_path`, `code_hash`, `build_command`, `namespace`, computed `id`, `uid`, `build_status`, `build_log`
|
||||
- валидация источника кода: задан ровно один из `source_dir` или `code_path`
|
||||
- упаковка `source_dir` в zip и кодирование base64 в `spec.source.literal`
|
||||
- Create/Read/Update/Delete через Kubernetes CRD API
|
||||
- Проверка сборки: `go build ./...` успешно.
|
||||
|
||||
### Следующий шаг
|
||||
- Реализовать `fission_function` через CRD `functions.fission.io`.
|
||||
@@ -0,0 +1,62 @@
|
||||
# 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`.
|
||||
Reference in New Issue
Block a user