{"id":13641117,"url":"https://github.com/localstack/pulumi-local","last_synced_at":"2025-04-04T14:03:06.952Z","repository":{"id":38204726,"uuid":"358866423","full_name":"localstack/pulumi-local","owner":"localstack","description":"Thin wrapper script to use Pulumi with LocalStack","archived":false,"fork":false,"pushed_at":"2024-11-19T18:52:23.000Z","size":38,"stargazers_count":84,"open_issues_count":1,"forks_count":7,"subscribers_count":18,"default_branch":"main","last_synced_at":"2025-03-28T13:08:15.587Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/localstack.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-04-17T11:55:15.000Z","updated_at":"2025-03-23T18:28:45.000Z","dependencies_parsed_at":"2023-10-17T03:04:36.089Z","dependency_job_id":"ae38684c-8b23-4c47-957a-17e13e20bca0","html_url":"https://github.com/localstack/pulumi-local","commit_stats":{"total_commits":23,"total_committers":11,"mean_commits":2.090909090909091,"dds":0.6956521739130435,"last_synced_commit":"aa8542734af6f3235010bea6301e733b0f83205f"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/localstack%2Fpulumi-local","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/localstack%2Fpulumi-local/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/localstack%2Fpulumi-local/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/localstack%2Fpulumi-local/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/localstack","download_url":"https://codeload.github.com/localstack/pulumi-local/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247190233,"owners_count":20898700,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-02T01:01:17.914Z","updated_at":"2025-04-04T14:03:06.930Z","avatar_url":"https://github.com/localstack.png","language":"Python","readme":"# Pulumi CLI for LocalStack\n\n**\u003cu\u003eDISCLAIMER\u003c/u\u003e: pulumi-local currently does not support the _aws-native_ package. ([pulumi/pulumi-aws-native #108](https://github.com/pulumi/pulumi-aws-native/issues/108))**  \n\nThis package provides the `pulumilocal` command, which is a thin wrapper around the `pulumi`\ncommand line interface to use [`Pulumi`](https://github.com/pulumi/pulumi) with [LocalStack](https://github.com/localstack/localstack).\n\n## Installation\n\nYou can install the `pulumilocal` command via `pip`:\n\n```\npip install pulumi-local\n```\n\n## Prerequisites\n\nPlease make sure you have a LocalStack instance running on your local machine.\n\n## Usage\n\nThe `pulumilocal` command has the same usage as the `pulumi` command. For detailed usage,\nplease refer to the man pages of `pulumi -h`.\n\n### Add environment variables to store state on local backend (optional)\n```shell\nexport PULUMI_CONFIG_PASSPHRASE=lsdevtest\nexport PULUMI_BACKEND_URL=file://`pwd`/myproj\n```\n_Note: For further options please consult the official documentation on available [environment variables][env_vars] and [local backend][local_backend]._\n\n[env_vars]: https://www.pulumi.com/docs/cli/environment-variables/\n[local_backend]: https://www.pulumi.com/docs/concepts/state/#local-filesystem\n\n### Create a new Pulumi project with stack name lsdev\n```shell\nmkdir myproj\npulumilocal new typescript -y -s lsdev --cwd myproj\n```\n_Note: `--cwd` switch is unnecessary if commands are being run in project directory._\n\n### Select and create the lsdev Pulumi stack\nThis is unnecessary if you just did the `new typescript` command above as it will already be selected.\n```shell\npulumilocal stack select -c lsdev --cwd myproj\n```\n\n### Deploy the stack to LocalStack\n```shell\npulumilocal up --cwd myproj\n```\n\n## How it works\n\nWhen running any pulumi deployment command like `pulumilocal [\"up\", \"destroy\", \"preview\", \"cancel\"]`,\nthe wrapper script runs the `pulumi config` command to augment the pulumi config with LocalStack AWS configuration,\nand then runs the original pulumi command. \n\n## Configurations\n\nYou can configure the following environment variables:\n\n* `AWS_ENDPOINT_URL`: hostname and port of the target LocalStack instance\n* `LOCALSTACK_HOSTNAME`: __(Deprecated)__ Target host to use for connecting to LocalStack (default: `localhost`)\n* `EDGE_PORT`: __(Deprecated)__ Target port to use for connecting to LocalStack (default: `4566`)\n* `PULUMI_CMD`: Name of the executable Pulumi command on the system PATH (default: `pulumi`)\n* `CONFIG_STRATEGY`: the strategy to handle config merging. If stack config already exists `pulumi-local` will prompt for user input. Possible values are:\n  * `overwrite` (default): pulumi-local will overwrite the stack's config and replaces it with values necessary to communicate with LocalStack. This strategy is equivalent of the legacy behaviour.\n  * `override`: generates a temporary config file from the current stack config and overrides it's values, after run this file will be deleted. The name of the file is generated from the `LS_STACK_NAME` variable.\n  * `separate`: creates a separate stack with the stack name set in the `LS_STACK_NAME` env variable.\n\u003e [!NOTE]\n\u003e The fall through to the default strategy with a misconfigured or missing `CONFIG_STRATEGY` environment variable will be deprecated by the next `pulumi-local` version.\n* `LS_STACK_NAME`: the stack name to use when the config file generated either with the `override` and `separate` strategy.\n* `DRY_RUN`: only usable with `CONFIG_STRATEGY=override`, as a result the created temporary stack config is not deleted.\n* `NON_INTERACTIVE`: starts a non-interactive session where all user prompts are automatically accepted\n\n\u003e [!WARNING]\n\u003e Using the `DRY_RUN` and `NON_INTERACTIVE` flags together changes the stack configuration without confirmation prompt. Use with caution!\n\n## Deploying to AWS\nUse your preferred Pulumi backend. https://www.pulumi.com/docs/concepts/state/#deciding-on-a-state-backend\nChange the `pulumilocal` command in the instructions above to `pulumi`.\n\n## Change Log\n\n* v1.3.0: Add config merging strategies, dry-run and non-interactive runs.\n* v1.2.2: Fix project URL in package metadata\n* v1.2.1: Add support for AWS_ENDPOINT_URL env variable\n* v1.2.0: Added dynamic endpoint generation and tests\n* v1.1: Added README to long description and update twine publish.\n* v1.0: Using `pulumi config set-all` to set all the AWS provider configurating instead of modifying\n  the Stack file directly. Removed defaulting the stack name to `localstack`. Added argparse. \n  Removed pyyaml dependency. Removed python2 package classifiers. \n* v0.6: Replace deprecated `s3ForcePathStyle` with `s3UsePathStyle` in default config\n* v0.5: Remove deprecated `mobileanalytics` service config to fix invalid key error\n* v0.4: Point pulumilocal.bat to the correct script\n* v0.3: Add apigatewayv2 service endpoint\n* v0.2: Add init command and add aws:region key by default\n* v0.1: Initial release\n\n## License\n\nThis software library is released under the Apache License, Version 2.0 (see `LICENSE`).\n\n[pypi-version]: https://img.shields.io/pypi/v/pulumi-local.svg\n[pypi]: https://pypi.org/project/pulumi-local/\n","funding_links":[],"categories":["Tools"],"sub_categories":["Miscellaneous"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flocalstack%2Fpulumi-local","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flocalstack%2Fpulumi-local","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flocalstack%2Fpulumi-local/lists"}