Files
fission-console/README.md
T

2.9 KiB
Raw Blame History

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. Собрать бинарник провайдера:
cd terraform/provider
go build -o bin/terraform-provider-fission .
  1. Положить бинарник в локальный каталог dev plugins:
mkdir -p ~/.terraform.d/dev-plugins/Nail/fission
cp terraform/provider/bin/terraform-provider-fission ~/.terraform.d/dev-plugins/Nail/fission/
  1. Создать файл Terraform CLI config (пример /tmp/terraformrc-fission):
provider_installation {
  dev_overrides {
    "nail/fission" = "/home/naeel/.terraform.d/dev-plugins/Nail/fission"
  }
  direct {}
}
  1. Запустить пример:
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 — число запросов на endpoint
  • 90 — параллелизм