CDK UtilsA comprehensive toolkit for provisioning cloud infrastructure using AWS CDK and Pulumi. This monorepo provides high-level constructs, service managers, and common utilities that simplify infrastructure-as-code across AWS, Azure, and Cloudflare.
For more details, see the full API documentation.
| Package | Description |
|---|---|
@gradientedge/cdk-utils-aws |
AWS CDK constructs and service managers |
@gradientedge/cdk-utils-azure |
Azure Pulumi (Azure Native) constructs and service managers |
@gradientedge/cdk-utils-cloudflare |
Cloudflare Pulumi constructs and service managers |
@gradientedge/cdk-utils-common |
Shared utilities, types, and stage helpers |
@gradientedge/cdk-utils |
Umbrella package that re-exports all of the above |
Install the umbrella package:
pnpm add @gradientedge/cdk-utils
Or install individual packages as needed:
pnpm add @gradientedge/cdk-utils-aws
pnpm add @gradientedge/cdk-utils-azure
pnpm add @gradientedge/cdk-utils-cloudflare
pnpm add @gradientedge/cdk-utils-common
import { CommonConstruct, CommonStackProps } from '@gradientedge/cdk-utils-aws'
import { Construct } from 'constructs'
class MyStack extends CommonConstruct {
constructor(parent: Construct, id: string, props: CommonStackProps) {
super(parent, id, props)
this.initResources()
}
protected initResources() {
this.lambdaManager.createLambdaFunction('MyFunction', this, functionProps)
this.s3Manager.createBucket('MyBucket', this, bucketProps)
}
}
import { CommonAzureConstruct } from '@gradientedge/cdk-utils-azure'
import * as pulumi from '@pulumi/pulumi'
class MyAzureStack extends CommonAzureConstruct {
constructor(name: string, args: any, opts?: pulumi.ComponentResourceOptions) {
super(name, args, opts)
this.initResources()
}
}
import { CommonCloudflareConstruct } from '@gradientedge/cdk-utils-cloudflare'
import * as pulumi from '@pulumi/pulumi'
class MyCloudflareStack extends CommonCloudflareConstruct {
constructor(name: string, args: any, opts?: pulumi.ComponentResourceOptions) {
super(name, args, opts)
this.initResources()
}
}
pnpm install
pnpm build
Run the full test suite:
pnpm test
Watch mode for a specific test:
pnpm test:watch static-asset-deployment-distribution-ref.test.ts
Run prettier, linting, and tests:
pnpm validate
pnpm run docs
There are common utilities that help with testing constructs in the test tools directory. A debug utility is also available for printing template contents during development.
See CONTRIBUTING.md for guidelines on how to contribute to this project.
This project is licensed under the MIT License — see the LICENSE file for details.