cdk-kaniko
Build images with kaniko
in AWS Fargate
About
cdk-kaniko
is a CDK construct library that allows you to build images with kaniko in AWS Fargate. Inspired from the blog post - Building container images on Amazon ECS on AWS Fargate by Re Alvarez-Parmar and Olly Pomeroy, this library aims to abstract away all the infrastructure provisioning and configuration with minimal IAM policies required and allow you to focus on the high level CDK constructs. Under the covers, cdk-kaniko
leverages the cdk-fargate-run-task so you can build the image just once or schedule the building periodically.
Install
Use the npm dist tag to opt in CDKv1 or CDKv2:
// for CDKv2
npm install cdk-kaniko
or
npm install cdk-kaniko@latest
// for CDKv1
npm install cdk-kaniko@cdkv1
Sample
const app = new cdk.App();
const stack = new cdk.Stack(app, 'my-stack-dev');
const kaniko = new Kaniko(stack, 'KanikoDemo', {
context: 'git://github.com/pahud/vscode.git',
contextSubPath: './.devcontainer',
});
// build it once
kaniko.buildImage('once');
// schedule the build every day 0:00AM
kaniko.buildImage('everyday', Schedule.cron({
minute: '0',
hour: '0',
}));
fargate spot support
Use fargateSpot
to enable the FARGATE_SPOT
capacity provider to provision the fargate tasks.
new Kaniko(stack, 'KanikoDemo', {
context,
contextSubPath,
fargateSpot: true,
});
Note
Please note the image building could take some minutes depending on the complexity of the provided Dockerfile
. On deployment completed, you can check and tail the AWS Fargate task logs from the AWS CloudWatch Logs to view all the build output.