7e2278371ae0cf550cf4d6066074658cc8c96862
Terraform Provider Fission (MVP)
Текущий MVP провайдера управляет Fission CRD через Kubernetes API:
fission_environmentfission_packagefission_functionfission_http_trigger
Все ресурсы поддерживают terraform import в формате namespace/name.
Быстрый запуск (dev override)
- Собрать бинарник провайдера:
cd terraform/provider
go build -o bin/terraform-provider-fission .
- Положить бинарник в локальный каталог dev plugins:
mkdir -p ~/.terraform.d/dev-plugins/Nail/fission
cp terraform/provider/bin/terraform-provider-fission ~/.terraform.d/dev-plugins/Nail/fission/
- Создать файл Terraform CLI config (пример
/tmp/terraformrc-fission):
provider_installation {
dev_overrides {
"nail/fission" = "/home/naeel/.terraform.d/dev-plugins/Nail/fission"
}
direct {}
}
- Запустить пример:
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-тесты:
cd terraform/provider
go test ./...
Acceptance-тест (реальный кластер, опционально):
cd terraform/provider
ACCEPTANCE_TEST=1 KUBECONFIG=/home/naeel/.kube/config go test ./internal/client -run TestAcceptanceFissionCRUD -v
Импорт существующего ресурса (пример):
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.
Суровый нагрузочный прогон:
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— число запросов на endpoint90— параллелизм
Languages
Go
82.3%
HTML
17.3%
Shell
0.2%
Dockerfile
0.2%