feat/console
- PHP: ghcr.io/fission/php-env, entrypoint main.php::handler
- Ruby: ghcr.io/fission/ruby-env, entrypoint handler (single-word)
- Perl: ghcr.io/fission/perl-env (version=1), sub {} return value
- Go: ghcr.io/fission/binary-env with pre-compiled binary (shell script placeholder)
Provider changes:
- package_resource: added main.php, main.rb, main.pl to source_dir candidates
- function_resource: relaxed entrypoint validation to allow PHP (::), Ruby, Perl (single-word)
- function_resource_test: updated BadFormat test to reflect new valid formats
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%