@cdklabs/cdk-cicd-wrapper
TypeScript icon, indicating that this package has built-in type declarations

0.2.1 • Public • Published

CDK CI/CD Wrapper

License

The CDK CI/CD Wrapper is a comprehensive solution that streamlines the delivery of your AWS Cloud Development Kit (CDK) applications. It provides a robust and standardized multi-stage CI/CD pipeline, ensuring high quality and confidence throughout the development and deployment process.

Table of Contents

Introduction

The CDK CI/CD Wrapper builds upon the success of the aws-cdk-cicd-boot-sample and takes it a step further by providing additional tools and features to simplify and standardize the multi-stage CI/CD process for your Infrastructure as Code (IaC) projects.

Features

  • Multi-staged CI/CD Pipeline: Seamlessly deploy your CDK applications across multiple stages (e.g., DEV, INT, PROD) and AWS accounts.
  • Security Scanning: Perform security scanning on dependencies and codebase, blocking the pipeline in case of CVE findings.
  • License Management: Manage licenses for NPM and Python dependencies, ensuring compliance with your organization's policies.
  • Private NPM Registry: Securely store and utilize private NPM libraries.
  • Customizable Pipeline: Tailor the CI/CD pipeline to your project's specific needs with built-in dependency injection.
  • Workbench Deployment: Develop and experiment with your solutions in isolation before introducing them to the delivery pipeline.
  • Pre/Post Deploy Hooks: Execute custom scripts before and after deployments in each stage (e.g., unit tests, functional tests, load testing).
  • Centralized Compliance Logs: Store compliance logs in pre-configured S3 buckets on a per-stage/environment basis.
  • Lambda Layer Support: Build and scan dependencies for Python Lambda Layers.

Getting Started

Prerequisites

Before you begin, ensure that you have the following dependencies installed:

  • AWS Account (RES/DEV/INT/PROD)
  • macOS or Cloud9 with Ubuntu Server 22.04 LTS Platform in the RES Account
  • Bash/ZSH terminal
  • Docker version >= 24.0.x
  • AWS CLI v2 (installation guide)
  • AWS credentials and profiles for each environment in ~/.aws/config (configuration guide)
  • Node.js >= v18.17._ && NPM >= v10.2._
  • jq command-line JSON processor (jq-1.7)

For developing Python Lambdas, you'll also need:

Installation

  1. Clone the CDK CI/CD Wrapper repository:

    git clone https://github.com/your-repo/cdk-cicd-wrapper.git
    cd cdk-cicd-wrapper
  2. Install the required dependencies:

    npm install

Usage

Defining Stages

The CDK CI/CD Wrapper comes with a default set of stages (DEV, INT, PROD), but you can easily extend or modify these stages to suit your project's needs. Follow the step-by-step guide in the documentation to define your desired stages.

Configuring Stacks

Configure the CDK stacks you want to deploy in each stage. The CDK CI/CD Wrapper allows you to specify which stacks should be deployed in each stage, giving you granular control over your deployment process.

Customizing CI/CD Steps

Tailor the CI/CD pipeline to meet your project's specific requirements. The CDK CI/CD Wrapper provides built-in dependency injection, allowing you to customize the CI/CD steps seamlessly.

Contributing

Contributions to the CDK CI/CD Wrapper are welcome! If you'd like to contribute, please follow the guidelines outlined in the CONTRIBUTING.md file.

License

This project is licensed under the Apache 2.0 License.

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 0.2.1
    0
    • latest

Version History

Package Sidebar

Install

npm i @cdklabs/cdk-cicd-wrapper

Weekly Downloads

607

Version

0.2.1

License

Apache-2.0

Unpacked Size

3.4 MB

Total Files

166

Last publish

Collaborators

  • amzn-oss
  • aws-cdk-team
  • cdklabs-automation