[![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-vpc?style=flat-square)](https://github.com/pepperize/cdk-vpc/blob/main/LICENSE)
[![npm (scoped)](https://img.shields.io/npm/v/@pepperize/cdk-vpc?style=flat-square)](https://www.npmjs.com/package/@pepperize/cdk-vpc)
[![PyPI](https://img.shields.io/pypi/v/pepperize.cdk-vpc?style=flat-square)](https://pypi.org/project/pepperize.cdk-vpc/)
[![Nuget](https://img.shields.io/nuget/v/Pepperize.CDK.Vpc?style=flat-square)](https://www.nuget.org/packages/Pepperize.CDK.Vpc/)
[![Sonatype Nexus (Releases)](https://img.shields.io/nexus/r/com.pepperize/cdk-vpc?server=https%3A%2F%2Fs01.oss.sonatype.org%2F&style=flat-square)](https://s01.oss.sonatype.org/content/repositories/releases/com/pepperize/cdk-vpc/)
[![GitHub Workflow Status (branch)](https://img.shields.io/github/actions/workflow/status/pepperize/cdk-vpc/release.yml?branch=main&label=release&style=flat-square)](https://github.com/pepperize/cdk-vpc/actions/workflows/release.yml)
[![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/pepperize/cdk-vpc?sort=semver&style=flat-square)](https://github.com/pepperize/cdk-vpc/releases)
[![Gitpod ready-to-code](https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod&style=flat-square)](https://gitpod.io/#https://github.com/pepperize/cdk-vpc)
# CDK Vpc
Utility constructs for tagging subnets or creating a cheaper vpc.
* [Cheaper Vpc](#create-a-cheaper-vpc)
* [Tagging subnets](#tag-your-imported-subnets)
## Install
### TypeScript
```shell
npm install @pepperize/cdk-vpc
```
or
```shell
yarn add @pepperize/cdk-vpc
```
### Python
```shell
pip install pepperize.cdk-vpc
```
### C# / .Net
```shell
dotnet add package Pepperize.CDK.Vpc
```
### Java
```xml
<dependency>
<groupId>com.pepperize</groupId>
<artifactId>cdk-vpc</artifactId>
<version>${cdkVpc.version}</version>
</dependency>
```
## Getting Started
1. Create a new CDK TypeScript App project with [projen](https://github.com/projen/projen)
```shell
mkdir my-project
cd my-project
git init -b main
npx projen new awscdk-app-ts
```
2. Add `@pepperize/cdk-vpc` to your dependencies in `.projenrc.js`
```python
const project = new awscdk.AwsCdkTypeScriptApp({
//...
deps: ["@pepperize/cdk-vpc"],
});
```
3. Install the dependency
```shell
npx projen
```
# Usage
## Create a cheaper Vpc
Use this as a cheaper drop-in replacement to create a vpc with 2 AvailabilityZones and a `t3.nano` NatInstance.
```python
import { App, Stack } from "aws-cdk-lib";
import { CheapVpc } from "@pepperize/cdk-vpc";
const app = new App();
const stack = new Stack(app, "MyCheapVpcStack");
new CheapVpc(stack, "MyCheapVpc");
```
## Tag your imported subnets
Subnets imported by `Vpc.fromLookup` wouldn't be tagged by `Tags.of` automatically. To tag them (or any other imported vpc resource) use:
```python
import { CheapVpc } from "@pepperize/cdk-vpc";
import * as ec2 from "aws-cdk-lib/aws-ec2";
const app = new App();
const stack = new Stack(app, "VpcStack");
const vpc = ec2.Vpc.fromLookup(stack, "VpcLookup", {
vpcId: "vpc-1234567890",
region: env.region,
});
new CreateTags(vpcStack, "TagPrivateSubnets", {
resourceIds: vpc.privateSubnets.map((subnet) => {
return subnet.subnetId;
}),
tags: [
{
key: "kubernetes.io/role/internal-elb",
value: "1",
},
],
});
```
# Contributing
Contributions of all kinds are welcome :rocket: Check out our [contributor's guide](https://github.com/pepperize/cdk-vpc/blob/main/CONTRIBUTING.md).
For a quick start, check out a development environment:
```shell
git clone git@github.com:pepperize/cdk-vpc
cd cdk-vpc
# install dependencies
yarn
# build with projen
yarn build
```
Raw data
{
"_id": null,
"home_page": "https://github.com/pepperize/cdk-vpc.git",
"name": "pepperize.cdk-vpc",
"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/84/6a/28f8685aaa44c0f15fc4e6e00afedee5ddcbb4dcddb2b0dafeb5460e060f/pepperize.cdk-vpc-0.0.877.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-vpc?style=flat-square)](https://github.com/pepperize/cdk-vpc/blob/main/LICENSE)\n[![npm (scoped)](https://img.shields.io/npm/v/@pepperize/cdk-vpc?style=flat-square)](https://www.npmjs.com/package/@pepperize/cdk-vpc)\n[![PyPI](https://img.shields.io/pypi/v/pepperize.cdk-vpc?style=flat-square)](https://pypi.org/project/pepperize.cdk-vpc/)\n[![Nuget](https://img.shields.io/nuget/v/Pepperize.CDK.Vpc?style=flat-square)](https://www.nuget.org/packages/Pepperize.CDK.Vpc/)\n[![Sonatype Nexus (Releases)](https://img.shields.io/nexus/r/com.pepperize/cdk-vpc?server=https%3A%2F%2Fs01.oss.sonatype.org%2F&style=flat-square)](https://s01.oss.sonatype.org/content/repositories/releases/com/pepperize/cdk-vpc/)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/actions/workflow/status/pepperize/cdk-vpc/release.yml?branch=main&label=release&style=flat-square)](https://github.com/pepperize/cdk-vpc/actions/workflows/release.yml)\n[![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/pepperize/cdk-vpc?sort=semver&style=flat-square)](https://github.com/pepperize/cdk-vpc/releases)\n[![Gitpod ready-to-code](https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod&style=flat-square)](https://gitpod.io/#https://github.com/pepperize/cdk-vpc)\n\n# CDK Vpc\n\nUtility constructs for tagging subnets or creating a cheaper vpc.\n\n* [Cheaper Vpc](#create-a-cheaper-vpc)\n* [Tagging subnets](#tag-your-imported-subnets)\n\n## Install\n\n### TypeScript\n\n```shell\nnpm install @pepperize/cdk-vpc\n```\n\nor\n\n```shell\nyarn add @pepperize/cdk-vpc\n```\n\n### Python\n\n```shell\npip install pepperize.cdk-vpc\n```\n\n### C# / .Net\n\n```shell\ndotnet add package Pepperize.CDK.Vpc\n```\n\n### Java\n\n```xml\n<dependency>\n <groupId>com.pepperize</groupId>\n <artifactId>cdk-vpc</artifactId>\n <version>${cdkVpc.version}</version>\n</dependency>\n```\n\n## Getting Started\n\n1. Create a new CDK TypeScript App project with [projen](https://github.com/projen/projen)\n\n ```shell\n mkdir my-project\n cd my-project\n git init -b main\n npx projen new awscdk-app-ts\n ```\n2. Add `@pepperize/cdk-vpc` to your dependencies in `.projenrc.js`\n\n ```python\n const project = new awscdk.AwsCdkTypeScriptApp({\n //...\n deps: [\"@pepperize/cdk-vpc\"],\n });\n ```\n3. Install the dependency\n\n ```shell\n npx projen\n ```\n\n# Usage\n\n## Create a cheaper Vpc\n\nUse this as a cheaper drop-in replacement to create a vpc with 2 AvailabilityZones and a `t3.nano` NatInstance.\n\n```python\nimport { App, Stack } from \"aws-cdk-lib\";\nimport { CheapVpc } from \"@pepperize/cdk-vpc\";\n\nconst app = new App();\nconst stack = new Stack(app, \"MyCheapVpcStack\");\n\nnew CheapVpc(stack, \"MyCheapVpc\");\n```\n\n## Tag your imported subnets\n\nSubnets imported by `Vpc.fromLookup` wouldn't be tagged by `Tags.of` automatically. To tag them (or any other imported vpc resource) use:\n\n```python\nimport { CheapVpc } from \"@pepperize/cdk-vpc\";\nimport * as ec2 from \"aws-cdk-lib/aws-ec2\";\n\nconst app = new App();\nconst stack = new Stack(app, \"VpcStack\");\nconst vpc = ec2.Vpc.fromLookup(stack, \"VpcLookup\", {\n vpcId: \"vpc-1234567890\",\n region: env.region,\n});\n\nnew CreateTags(vpcStack, \"TagPrivateSubnets\", {\n resourceIds: vpc.privateSubnets.map((subnet) => {\n return subnet.subnetId;\n }),\n tags: [\n {\n key: \"kubernetes.io/role/internal-elb\",\n value: \"1\",\n },\n ],\n});\n```\n\n# Contributing\n\nContributions of all kinds are welcome :rocket: Check out our [contributor's guide](https://github.com/pepperize/cdk-vpc/blob/main/CONTRIBUTING.md).\n\nFor a quick start, check out a development environment:\n\n```shell\ngit clone git@github.com:pepperize/cdk-vpc\ncd cdk-vpc\n # install dependencies\nyarn\n# build with projen\nyarn build\n```\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Utility constructs for tagging subnets or creating a cheaper vpc.",
"version": "0.0.877",
"project_urls": {
"Homepage": "https://github.com/pepperize/cdk-vpc.git",
"Source": "https://github.com/pepperize/cdk-vpc.git"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "4e21ff66243d22f06baef74f540946072dd1e5cbdb64af167709e05879c1cd21",
"md5": "b903ee52693613f1ec5e767d27075975",
"sha256": "d9516389db3f0e6e4c5363cca73879d1b14b013b8ecc373f36335477828f2fe9"
},
"downloads": -1,
"filename": "pepperize.cdk_vpc-0.0.877-py3-none-any.whl",
"has_sig": false,
"md5_digest": "b903ee52693613f1ec5e767d27075975",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "~=3.8",
"size": 37189,
"upload_time": "2023-12-29T15:41:31",
"upload_time_iso_8601": "2023-12-29T15:41:31.036133Z",
"url": "https://files.pythonhosted.org/packages/4e/21/ff66243d22f06baef74f540946072dd1e5cbdb64af167709e05879c1cd21/pepperize.cdk_vpc-0.0.877-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "846a28f8685aaa44c0f15fc4e6e00afedee5ddcbb4dcddb2b0dafeb5460e060f",
"md5": "ab6fd433473455da042faddf5e707639",
"sha256": "385839c1da8b4bfa6440324f6bc2082eb80b5e90173870209399310aaacd6225"
},
"downloads": -1,
"filename": "pepperize.cdk-vpc-0.0.877.tar.gz",
"has_sig": false,
"md5_digest": "ab6fd433473455da042faddf5e707639",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "~=3.8",
"size": 36525,
"upload_time": "2023-12-29T15:41:36",
"upload_time_iso_8601": "2023-12-29T15:41:36.803144Z",
"url": "https://files.pythonhosted.org/packages/84/6a/28f8685aaa44c0f15fc4e6e00afedee5ddcbb4dcddb2b0dafeb5460e060f/pepperize.cdk-vpc-0.0.877.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-12-29 15:41:36",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "pepperize",
"github_project": "cdk-vpc",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "pepperize.cdk-vpc"
}