Utility constructs for tagging subnets or creating a cheaper vpc.
npm install @pepperize/cdk-vpc








Utility constructs for tagging subnets or creating a cheaper vpc.
- Cheaper Vpc
- Tagging subnets
``shell`
npm install @pepperize/cdk-vpc
or
`shell`
yarn add @pepperize/cdk-vpc
`shell`
pip install pepperize.cdk-vpc
`shell`
dotnet add package Pepperize.CDK.Vpc
`xml`
1. Create a new CDK TypeScript App project with 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
`typescript`
const project = new awscdk.AwsCdkTypeScriptApp({
//...
deps: ["@pepperize/cdk-vpc"],
});
3. Install the dependency
`shell`
npx projen
Use this as a cheaper drop-in replacement to create a vpc with 2 AvailabilityZones and a t3.nano NatInstance.
`typescript
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");
`
Subnets imported by Vpc.fromLookup wouldn't be tagged by Tags.of automatically. To tag them (or any other imported vpc resource) use:
`typescript
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",
},
],
});
`
Contributions of all kinds are welcome :rocket: Check out our contributor's guide.
For a quick start, check out a development environment:
`shell``
git clone git@github.com:pepperize/cdk-vpc
cd cdk-vpc
# install dependencies
yarnbuild with projen
yarn build