Files
fission-console/README.md
T

95 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Terraform Provider Fission (MVP)
Текущий MVP провайдера управляет Fission CRD через Kubernetes API:
- `fission_environment`
- `fission_package`
- `fission_function`
- `fission_http_trigger`
Все ресурсы поддерживают `terraform import` в формате `namespace/name`.
## Быстрый запуск (dev override)
1. Собрать бинарник провайдера:
```bash
cd terraform/provider
go build -o bin/terraform-provider-fission .
```
2. Положить бинарник в локальный каталог dev plugins:
```bash
mkdir -p ~/.terraform.d/dev-plugins/Nail/fission
cp terraform/provider/bin/terraform-provider-fission ~/.terraform.d/dev-plugins/Nail/fission/
```
3. Создать файл Terraform CLI config (пример `/tmp/terraformrc-fission`):
```hcl
provider_installation {
dev_overrides {
"nail/fission" = "/home/naeel/.terraform.d/dev-plugins/Nail/fission"
}
direct {}
}
```
4. Запустить пример:
```bash
cd examples/hello-python
TF_CLI_CONFIG_FILE=/tmp/terraformrc-fission terraform plan
TF_CLI_CONFIG_FILE=/tmp/terraformrc-fission terraform apply -auto-approve
```
## Тесты
Unit-тесты:
```bash
cd terraform/provider
go test ./...
```
Acceptance-тест (реальный кластер, опционально):
```bash
cd terraform/provider
ACCEPTANCE_TEST=1 KUBECONFIG=/home/naeel/.kube/config go test ./internal/client -run TestAcceptanceFissionCRUD -v
```
Импорт существующего ресурса (пример):
```bash
terraform import fission_environment.python default/tf-python-env
terraform import fission_package.hello default/tf-hello-pkg
terraform import fission_function.hello default/tf-hello-fn
terraform import fission_http_trigger.hello default/tf-hello-route
```
## Ограничения MVP
- `fission_package.source_dir` в текущей реализации ожидает один из файлов: `main.py`, `main.js`, `main.go`.
- Реализация ориентирована на Python flow через `spec.deployment.literal`.
- Дополнительные сценарии сборки (`build_command`, многофайловые архивы и т.д.) будут расширены в следующих этапах.
## Stress Suite (много функций + нагрузка)
Добавлен отдельный пример `examples/stress-suite`:
- 3 функции: `fast`, `cpu`, `json`
- 3 endpoint-а: `/stress/fast`, `/stress/cpu`, `/stress/json`
- Terraform разворачивает полный набор ресурсов для каждого endpoint.
Суровый нагрузочный прогон:
```bash
cd examples/stress-suite
TF_CLI_CONFIG_FILE=/tmp/terraformrc-fission terraform apply -auto-approve
./scripts/load_test.sh https://fission.kube5s.ru 900 90
```
Где:
- `900` — число запросов на endpoint
- `90` — параллелизм