{"id":28069,"library":"pulumi-spotinst","title":"Pulumi Spotinst Provider","description":"A Pulumi package for managing Spot by NetApp cloud resources (Elastigroups, Ocean, etc.). It bridges Terraform provider spotinst to Pulumi. Current version: 3.131.0. Released frequently (multiple times per month) as a bridge update.","status":"active","version":"3.131.0","language":"python","source_language":"en","source_url":"https://github.com/pulumi/pulumi-spotinst","tags":["pulumi","spotinst","infrastructure","cloud","aws"],"install":[{"cmd":"pip install pulumi-spotinst","lang":"bash","label":"Install with pip"}],"dependencies":[{"reason":"Required to use Pulumi infrastructure as code.","package":"pulumi","optional":false}],"imports":[{"note":"Module structure uses subpackages for each cloud provider.","wrong":"from pulumi_spotinst import ElastigroupAWS","symbol":"ElastigroupAWS","correct":"from pulumi_spotinst.aws import ElastigroupAWS"},{"note":"Same subpackage pattern required.","wrong":"from pulumi_spotinst import OceanAWS","symbol":"OceanAWS","correct":"from pulumi_spotinst.aws import OceanAWS"},{"note":"Provider is in the top-level module.","symbol":"Provider","correct":"from pulumi_spotinst import Provider"}],"quickstart":{"code":"import pulumi\nimport pulumi_spotinst as spotinst\nfrom pulumi_spotinst.aws import ElastigroupAWS\n\nconfig = pulumi.Config()\naccount = config.require(\"spotinst:account\")\ntoken = config.require_secret(\"spotinst:token\")\n\nprovider = spotinst.Provider(\n    \"spotinst-provider\",\n    account=account,\n    token=token,\n)\n\ngroup = ElastigroupAWS(\n    \"my-elastigroup\",\n    name=\"my-elastigroup\",\n    product=\"Linux/Unix\",\n    spot_types=[\"persistent\"],\n    desired_capacity=1,\n    # ... other required fields\n    opts=pulumi.ResourceOptions(provider=provider),\n)\n\npulumi.export(\"group_id\", group.id)","lang":"python","description":"Create a basic AWS Elastigroup with Spotinst provider configuration."},"warnings":[{"fix":"Use Pulumi config keys 'spotinst:account' and 'spotinst:token', or create a Provider resource.","message":"Configuration via environment variables (SPOTINST_ACCOUNT, SPOTINST_TOKEN) is not automatically picked up by the Pulumi provider. You must pass credentials explicitly via Provider resource or Pulumi config.","severity":"gotcha","affected_versions":"all"},{"fix":"Always import from the specific subpackage (e.g., from pulumi_spotinst.aws import ElastigroupAWS).","message":"The SDK uses subpackages per cloud provider: pulumi_spotinst.aws, pulumi_spotinst.gcp, pulumi_spotinst.azure. Top-level exports are limited.","severity":"gotcha","affected_versions":"all"},{"fix":"Review the provider's release notes on GitHub for any breaking changes before upgrading.","message":"Major version bumps (v2 -> v3) may have removed deprecated resources or changed required fields. Always check the changelog when upgrading across major versions.","severity":"breaking","affected_versions":">3.0.0"}],"env_vars":null,"last_verified":"2026-05-09T00:00:00.000Z","next_check":"2026-08-07T00:00:00.000Z","problems":[{"fix":"Run 'pip install pulumi-spotinst' to install the package.","cause":"Importing from pulumi_spotinst.aws without having the package installed.","error":"ModuleNotFoundError: No module named 'pulumi_spotinst.aws'"},{"fix":"Set config: pulumi config set spotinst:account <account> and pulumi config set --secret spotinst:token <token>","cause":"Provider credentials not set via Pulumi config or Provider resource.","error":"pulumi_spotinst.exceptions.ResourceError: Missing required configuration keys: spotinst:account, spotinst:token"},{"fix":"Use: from pulumi_spotinst.aws import ElastigroupAWS","cause":"Trying to import ElastigroupAWS from top-level package instead of subpackage.","error":"AttributeError: module 'pulumi_spotinst' has no attribute 'ElastigroupAWS'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}