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 в корне указанной директории.
  • Реализация ориентирована на Python flow через spec.deployment.literal.
  • Дополнительные сценарии сборки (build_command, многофайловые архивы и т.д.) будут расширены в следующих этапах.
S
Description
No description provided
Readme
1.2 MiB
Languages
Go 82.3%
HTML 17.3%
Shell 0.2%
Dockerfile 0.2%