pepperize.cdk-terraform-state-backend


Namepepperize.cdk-terraform-state-backend JSON
Version 0.1.888 PyPI version JSON
download
home_pagehttps://github.com/pepperize/cdk-terraform-state-backend.git
SummaryThis project provides a CDK construct bootstrapping an AWS account with a S3 Bucket and a DynamoDB table as terraform state backend.
upload_time2024-01-01 06:45:48
maintainer
docs_urlNone
authorPatrick Florek<patrick.florek@gmail.com>
requires_python~=3.8
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](https://makeapullrequest.com)
[![GitHub](https://img.shields.io/github/license/pepperize/cdk-terraform-state-backend?style=flat-square)](https://github.com/pepperize/cdk-terraform-state-backend/blob/main/LICENSE)
[![npm (scoped)](https://img.shields.io/npm/v/@pepperize/cdk-terraform-state-backend?style=flat-square)](https://www.npmjs.com/package/@pepperize/cdk-terraform-state-backend)
[![PyPI](https://img.shields.io/pypi/v/pepperize.cdk-terraform-state-backend?style=flat-square)](https://pypi.org/project/pepperize.cdk-terraform-state-backend/)
[![Nuget](https://img.shields.io/nuget/v/Pepperize.CDK.TerraformStateBackend?style=flat-square)](https://www.nuget.org/packages/Pepperize.CDK.TerraformStateBackend/)
[![Sonatype Nexus (Releases)](https://img.shields.io/nexus/r/com.pepperize/cdk-terraform-state-backend?server=https%3A%2F%2Fs01.oss.sonatype.org%2F&style=flat-square)](https://s01.oss.sonatype.org/content/repositories/releases/com/pepperize/cdk-terraform-state-backend/)
[![GitHub Workflow Status (branch)](https://img.shields.io/github/actions/workflow/status/pepperize/cdk-terraform-state-backend/release.yml?banch=main&label=release&style=flat-square)](https://github.com/pepperize/cdk-terraform-state-backend/actions/workflows/release.yml)
[![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/pepperize/cdk-terraform-state-backend?sort=semver&style=flat-square)](https://github.com/pepperize/cdk-terraform-state-backend/releases)

# AWS CDK Terraform state backend

This project provides a CDK construct bootstrapping an AWS account with a S3 Bucket and a DynamoDB table as [Terraform state backend](https://www.terraform.io/docs/language/settings/backends/s3.html).

Terraform doesn't come shipped with a cli command bootstrapping the account for [State Storage and Locking](https://www.terraform.io/docs/language/state/backends.html)
like [AWS CDK](https://docs.aws.amazon.com/cdk/latest/guide/cli.html#cli-bootstrap) provides with `cdk bootstrap`.
While bootstrapping the AWS Organization and Accounts this construct may be used to create:

* S3 Bucket with blocked public access, versioned, encrypted by SSE-S3
* DynamoDB Table with pay per request, continuous backups using point-in-time recovery, encrypted by AWS owned key
* IAM Policy with read/write access to the created S3 Bucket and DynamoDB Table

See [API.md](https://github.com/pepperize/cdk-terraform-state-backend/blob/main/API.md)

## Install

### TypeScript

```shell
npm install @pepperize/cdk-terraform-state-backend
```

or

```shell
yarn add @pepperize/cdk-terraform-state-backend
```

### Python

```shell
pip install pepperize.cdk-terraform-state-backend
```

### C# / .Net

```
dotnet add package Pepperize.CDK.TerraformStateBackend
```

### Java

```xml
<dependency>
  <groupId>com.pepperize</groupId>
  <artifactId>cdk-terraform-state-backend</artifactId>
  <version>${cdkTerraformStateBackend.version}</version>
</dependency>
```

## Example

```python
import { App, Stack } from "@aws-cdk/core";
import { TerraformStateBackend } from "@pepperize/cdk-terraform-state-backend";

const app = new App();
const stack = new Stack(app, "stack", {
  env: {
    account: "123456789012",
    region: "us-east-1",
  },
});

// When
new TerraformStateBackend(stack, "TerraformStateBackend", {
  bucketName: "terraform-state-backend",
  tableName: "terraform-state-backend",
});
```

```hcl
terraform {
  backend "s3" {
    bucket = "terraform-state-backend-123456789012-us-east-1"
    dynamodb_table = "terraform-state-backend-123456789012"
    key = "path/to/my/key"
    region = "us-east-1"
  }
}
```

See [Terraform S3 Example Configuration](https://www.terraform.io/docs/language/settings/backends/s3.html#example-configuration)

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/pepperize/cdk-terraform-state-backend.git",
    "name": "pepperize.cdk-terraform-state-backend",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "~=3.8",
    "maintainer_email": "",
    "keywords": "",
    "author": "Patrick Florek<patrick.florek@gmail.com>",
    "author_email": "",
    "download_url": "https://files.pythonhosted.org/packages/3c/1a/9319cfefb6d2b26ed139aece5b2c58c5ff2ac1616ef028ea8dbb476d296d/pepperize.cdk-terraform-state-backend-0.1.888.tar.gz",
    "platform": null,
    "description": "[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](https://makeapullrequest.com)\n[![GitHub](https://img.shields.io/github/license/pepperize/cdk-terraform-state-backend?style=flat-square)](https://github.com/pepperize/cdk-terraform-state-backend/blob/main/LICENSE)\n[![npm (scoped)](https://img.shields.io/npm/v/@pepperize/cdk-terraform-state-backend?style=flat-square)](https://www.npmjs.com/package/@pepperize/cdk-terraform-state-backend)\n[![PyPI](https://img.shields.io/pypi/v/pepperize.cdk-terraform-state-backend?style=flat-square)](https://pypi.org/project/pepperize.cdk-terraform-state-backend/)\n[![Nuget](https://img.shields.io/nuget/v/Pepperize.CDK.TerraformStateBackend?style=flat-square)](https://www.nuget.org/packages/Pepperize.CDK.TerraformStateBackend/)\n[![Sonatype Nexus (Releases)](https://img.shields.io/nexus/r/com.pepperize/cdk-terraform-state-backend?server=https%3A%2F%2Fs01.oss.sonatype.org%2F&style=flat-square)](https://s01.oss.sonatype.org/content/repositories/releases/com/pepperize/cdk-terraform-state-backend/)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/actions/workflow/status/pepperize/cdk-terraform-state-backend/release.yml?banch=main&label=release&style=flat-square)](https://github.com/pepperize/cdk-terraform-state-backend/actions/workflows/release.yml)\n[![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/pepperize/cdk-terraform-state-backend?sort=semver&style=flat-square)](https://github.com/pepperize/cdk-terraform-state-backend/releases)\n\n# AWS CDK Terraform state backend\n\nThis project provides a CDK construct bootstrapping an AWS account with a S3 Bucket and a DynamoDB table as [Terraform state backend](https://www.terraform.io/docs/language/settings/backends/s3.html).\n\nTerraform doesn't come shipped with a cli command bootstrapping the account for [State Storage and Locking](https://www.terraform.io/docs/language/state/backends.html)\nlike [AWS CDK](https://docs.aws.amazon.com/cdk/latest/guide/cli.html#cli-bootstrap) provides with `cdk bootstrap`.\nWhile bootstrapping the AWS Organization and Accounts this construct may be used to create:\n\n* S3 Bucket with blocked public access, versioned, encrypted by SSE-S3\n* DynamoDB Table with pay per request, continuous backups using point-in-time recovery, encrypted by AWS owned key\n* IAM Policy with read/write access to the created S3 Bucket and DynamoDB Table\n\nSee [API.md](https://github.com/pepperize/cdk-terraform-state-backend/blob/main/API.md)\n\n## Install\n\n### TypeScript\n\n```shell\nnpm install @pepperize/cdk-terraform-state-backend\n```\n\nor\n\n```shell\nyarn add @pepperize/cdk-terraform-state-backend\n```\n\n### Python\n\n```shell\npip install pepperize.cdk-terraform-state-backend\n```\n\n### C# / .Net\n\n```\ndotnet add package Pepperize.CDK.TerraformStateBackend\n```\n\n### Java\n\n```xml\n<dependency>\n  <groupId>com.pepperize</groupId>\n  <artifactId>cdk-terraform-state-backend</artifactId>\n  <version>${cdkTerraformStateBackend.version}</version>\n</dependency>\n```\n\n## Example\n\n```python\nimport { App, Stack } from \"@aws-cdk/core\";\nimport { TerraformStateBackend } from \"@pepperize/cdk-terraform-state-backend\";\n\nconst app = new App();\nconst stack = new Stack(app, \"stack\", {\n  env: {\n    account: \"123456789012\",\n    region: \"us-east-1\",\n  },\n});\n\n// When\nnew TerraformStateBackend(stack, \"TerraformStateBackend\", {\n  bucketName: \"terraform-state-backend\",\n  tableName: \"terraform-state-backend\",\n});\n```\n\n```hcl\nterraform {\n  backend \"s3\" {\n    bucket = \"terraform-state-backend-123456789012-us-east-1\"\n    dynamodb_table = \"terraform-state-backend-123456789012\"\n    key = \"path/to/my/key\"\n    region = \"us-east-1\"\n  }\n}\n```\n\nSee [Terraform S3 Example Configuration](https://www.terraform.io/docs/language/settings/backends/s3.html#example-configuration)\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "This project provides a CDK construct bootstrapping an AWS account with a S3 Bucket and a DynamoDB table as terraform state backend.",
    "version": "0.1.888",
    "project_urls": {
        "Homepage": "https://github.com/pepperize/cdk-terraform-state-backend.git",
        "Source": "https://github.com/pepperize/cdk-terraform-state-backend.git"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9654ae94237845268bcacb18a46af78d27143b1a34983a13845a19564d6ccac7",
                "md5": "ac6dd01f5e39b8d7275b3adbbc029ac0",
                "sha256": "18d056531c05bfaa874a2ffa672ae04cecff6f0da42074e58a7972e3fb53172c"
            },
            "downloads": -1,
            "filename": "pepperize.cdk_terraform_state_backend-0.1.888-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "ac6dd01f5e39b8d7275b3adbbc029ac0",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "~=3.8",
            "size": 22834,
            "upload_time": "2024-01-01T06:45:40",
            "upload_time_iso_8601": "2024-01-01T06:45:40.322982Z",
            "url": "https://files.pythonhosted.org/packages/96/54/ae94237845268bcacb18a46af78d27143b1a34983a13845a19564d6ccac7/pepperize.cdk_terraform_state_backend-0.1.888-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3c1a9319cfefb6d2b26ed139aece5b2c58c5ff2ac1616ef028ea8dbb476d296d",
                "md5": "b739affb86e421c21cb7c69f5a629b82",
                "sha256": "fd3885c9788b15d059c356d137a73b8891d033b2520a374d8462713995bb2886"
            },
            "downloads": -1,
            "filename": "pepperize.cdk-terraform-state-backend-0.1.888.tar.gz",
            "has_sig": false,
            "md5_digest": "b739affb86e421c21cb7c69f5a629b82",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "~=3.8",
            "size": 21840,
            "upload_time": "2024-01-01T06:45:48",
            "upload_time_iso_8601": "2024-01-01T06:45:48.707471Z",
            "url": "https://files.pythonhosted.org/packages/3c/1a/9319cfefb6d2b26ed139aece5b2c58c5ff2ac1616ef028ea8dbb476d296d/pepperize.cdk-terraform-state-backend-0.1.888.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-01-01 06:45:48",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "pepperize",
    "github_project": "cdk-terraform-state-backend",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "pepperize.cdk-terraform-state-backend"
}
        
Elapsed time: 0.16405s