cdk-efs-assets
Version:
Amazon EFS assets from Github repositories or S3 buckets
119 lines • 13.4 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.NyanCatDemo = exports.IntegTesting = void 0;
const aws_cdk_lib_1 = require("aws-cdk-lib");
const ec2 = require("aws-cdk-lib/aws-ec2");
const efs = require("aws-cdk-lib/aws-efs");
const aws_s3_1 = require("aws-cdk-lib/aws-s3");
const stateful_fargate_1 = require("./stateful-fargate");
const synced_access_point_1 = require("./synced-access-point");
class IntegTesting {
constructor() {
const app = new aws_cdk_lib_1.App();
const env = {
region: process.env.CDK_DEFAULT_REGION,
account: process.env.CDK_DEFAULT_ACCOUNT,
};
const stack = new aws_cdk_lib_1.Stack(app, 'testing-stack', { env });
const vpc = getOrCreateVpc(stack);
const fs = new efs.FileSystem(stack, 'Filesystem', {
vpc,
removalPolicy: aws_cdk_lib_1.RemovalPolicy.DESTROY,
});
const bucketName = stack.node.tryGetContext('BUCKET_NAME') || 'mock';
const bucket = aws_s3_1.Bucket.fromBucketName(stack, 'ImportedBucket', bucketName);
// checkout the public github repo to efs filesystem
new synced_access_point_1.SyncedAccessPoint(stack, 'GithubSyncedAccessPoint', {
vpc,
fileSystem: fs,
path: '/demo-github',
createAcl: {
ownerGid: '1001',
ownerUid: '1001',
permissions: '0755',
},
posixUser: {
uid: '1001',
gid: '1001',
},
syncSource: new synced_access_point_1.GithubSyncSource({
vpc,
repository: 'https://github.com/pahud/cdk-efs-assets.git',
}),
});
// checkout the private github repo to efs filesystem
new synced_access_point_1.SyncedAccessPoint(stack, 'GithubSyncedAccessPointPrivate', {
vpc,
fileSystem: fs,
path: '/demo-github-private',
createAcl: {
ownerGid: '1001',
ownerUid: '1001',
permissions: '0755',
},
posixUser: {
uid: '1001',
gid: '1001',
},
syncSource: new synced_access_point_1.GithubSyncSource({
vpc,
repository: 'https://github.com/pahud/private-repo.git',
secret: {
id: 'github',
key: 'oauth_token',
},
}),
});
new synced_access_point_1.SyncedAccessPoint(stack, 'S3SyncedAccessPoint', {
vpc,
fileSystem: fs,
path: '/demo-s3-archive',
createAcl: {
ownerGid: '1001',
ownerUid: '1001',
permissions: '0755',
},
posixUser: {
uid: '1001',
gid: '1001',
},
syncSource: new synced_access_point_1.S3ArchiveSyncSource({
vpc,
bucket,
zipFilePath: 'folder/foo.zip',
}),
});
this.stack = [stack];
}
}
exports.IntegTesting = IntegTesting;
class NyanCatDemo {
constructor() {
const app = new aws_cdk_lib_1.App();
const env = {
region: process.env.CDK_DEFAULT_REGION,
account: process.env.CDK_DEFAULT_ACCOUNT,
};
const stack = new aws_cdk_lib_1.Stack(app, 'testing-stack', { env });
const vpc = getOrCreateVpc(stack);
new stateful_fargate_1.StatefulFargateNginx(stack, 'NyanCat', {
vpc,
github: 'https://github.com/cristurm/nyan-cat.git',
});
this.stack = [stack];
}
}
exports.NyanCatDemo = NyanCatDemo;
// run the integ testing
new IntegTesting();
// run Nyan Cat demo
// new NyanCatDemo();
function getOrCreateVpc(scope) {
// use an existing vpc or create a new one
return scope.node.tryGetContext('use_default_vpc') === '1' ?
ec2.Vpc.fromLookup(scope, 'Vpc', { isDefault: true }) :
scope.node.tryGetContext('use_vpc_id') ?
ec2.Vpc.fromLookup(scope, 'Vpc', { vpcId: scope.node.tryGetContext('use_vpc_id') }) :
new ec2.Vpc(scope, 'Vpc', { maxAzs: 3, natGateways: 1 });
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWcuZGVmYXVsdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbnRlZy5kZWZhdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUF3RDtBQUN4RCwyQ0FBMkM7QUFDM0MsMkNBQTJDO0FBQzNDLCtDQUE0QztBQUU1Qyx5REFBMEQ7QUFDMUQsK0RBQWlHO0FBRWpHLE1BQWEsWUFBWTtJQUd2QjtRQUNFLE1BQU0sR0FBRyxHQUFHLElBQUksaUJBQUcsRUFBRSxDQUFDO1FBRXRCLE1BQU0sR0FBRyxHQUFHO1lBQ1YsTUFBTSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCO1lBQ3RDLE9BQU8sRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQjtTQUN6QyxDQUFDO1FBRUYsTUFBTSxLQUFLLEdBQUcsSUFBSSxtQkFBSyxDQUFDLEdBQUcsRUFBRSxlQUFlLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBRXZELE1BQU0sR0FBRyxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVsQyxNQUFNLEVBQUUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRTtZQUNqRCxHQUFHO1lBQ0gsYUFBYSxFQUFFLDJCQUFhLENBQUMsT0FBTztTQUNyQyxDQUFDLENBQUM7UUFFSCxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsSUFBSSxNQUFNLENBQUM7UUFDckUsTUFBTSxNQUFNLEdBQUcsZUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFMUUsb0RBQW9EO1FBQ3BELElBQUksdUNBQWlCLENBQUMsS0FBSyxFQUFFLHlCQUF5QixFQUFFO1lBQ3RELEdBQUc7WUFDSCxVQUFVLEVBQUUsRUFBRTtZQUNkLElBQUksRUFBRSxjQUFjO1lBQ3BCLFNBQVMs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RSxDQUFDLENBQUMsQ0FBQztRQUN2RCxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDckYsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQy9ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHAsIFN0YWNrLCBSZW1vdmFsUG9saWN5IH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgZWMyIGZyb20gJ2F3cy1jZGstbGliL2F3cy1lYzInO1xuaW1wb3J0ICogYXMgZWZzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1lZnMnO1xuaW1wb3J0IHsgQnVja2V0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgU3RhdGVmdWxGYXJnYXRlTmdpbnggfSBmcm9tICcuL3N0YXRlZnVsLWZhcmdhdGUnO1xuaW1wb3J0IHsgU3luY2VkQWNjZXNzUG9pbnQsIEdpdGh1YlN5bmNTb3VyY2UsIFMzQXJjaGl2ZVN5bmNTb3VyY2UgfSBmcm9tICcuL3N5bmNlZC1hY2Nlc3MtcG9pbnQnO1xuXG5leHBvcnQgY2xhc3MgSW50ZWdUZXN0aW5nIHtcbiAgcmVhZG9ubHkgc3RhY2s6IFN0YWNrW107XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgY29uc3QgYXBwID0gbmV3IEFwcCgpO1xuXG4gICAgY29uc3QgZW52ID0ge1xuICAgICAgcmVnaW9uOiBwcm9jZXNzLmVudi5DREtfREVGQVVMVF9SRUdJT04sXG4gICAgICBhY2NvdW50OiBwcm9jZXNzLmVudi5DREtfREVGQVVMVF9BQ0NPVU5ULFxuICAgIH07XG5cbiAgICBjb25zdCBzdGFjayA9IG5ldyBTdGFjayhhcHAsICd0ZXN0aW5nLXN0YWNrJywgeyBlbnYgfSk7XG5cbiAgICBjb25zdCB2cGMgPSBnZXRPckNyZWF0ZVZwYyhzdGFjayk7XG5cbiAgICBjb25zdCBmcyA9IG5ldyBlZnMuRmlsZVN5c3RlbShzdGFjaywgJ0ZpbGVzeXN0ZW0nLCB7XG4gICAgICB2cGMsXG4gICAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgfSk7XG5cbiAgICBjb25zdCBidWNrZXROYW1lID0gc3RhY2subm9kZS50cnlHZXRDb250ZXh0KCdCVUNLRVRfTkFNRScpIHx8ICdtb2NrJztcbiAgICBjb25zdCBidWNrZXQgPSBCdWNrZXQuZnJvbUJ1Y2tldE5hbWUoc3RhY2ssICdJbXBvcnRlZEJ1Y2tldCcsIGJ1Y2tldE5hbWUpO1xuXG4gICAgLy8gY2hlY2tvdXQgdGhlIHB1YmxpYyBnaXRodWIgcmVwbyB0byBlZnMgZmlsZXN5c3RlbVxuICAgIG5ldyBTeW5jZWRBY2Nlc3NQb2ludChzdGFjaywgJ0dpdGh1YlN5bmNlZEFjY2Vzc1BvaW50Jywge1xuICAgICAgdnBjLFxuICAgICAgZmlsZVN5c3RlbTogZnMsXG4gICAgICBwYXRoOiAnL2RlbW8tZ2l0aHViJyxcbiAgICAgIGNyZWF0ZUFjbDoge1xuICAgICAgICBvd25lckdpZDogJzEwMDEnLFxuICAgICAgICBvd25lclVpZDogJzEwMDEnLFxuICAgICAgICBwZXJtaXNzaW9uczogJzA3NTUnLFxuICAgICAgfSxcbiAgICAgIHBvc2l4VXNlcjoge1xuICAgICAgICB1aWQ6ICcxMDAxJyxcbiAgICAgICAgZ2lkOiAnMTAwMScsXG4gICAgICB9LFxuICAgICAgc3luY1NvdXJjZTogbmV3IEdpdGh1YlN5bmNTb3VyY2Uoe1xuICAgICAgICB2cGMsXG4gICAgICAgIHJlcG9zaXRvcnk6ICdodHRwczovL2dpdGh1Yi5jb20vcGFodWQvY2RrLWVmcy1hc3NldHMuZ2l0JyxcbiAgICAgIH0pLFxuICAgIH0pO1xuXG4gICAgLy8gY2hlY2tvdXQgdGhlIHByaXZhdGUgZ2l0aHViIHJlcG8gdG8gZWZzIGZpbGVzeXN0ZW1cbiAgICBuZXcgU3luY2VkQWNjZXNzUG9pbnQoc3RhY2ssICdHaXRodWJTeW5jZWRBY2Nlc3NQb2ludFByaXZhdGUnLCB7XG4gICAgICB2cGMsXG4gICAgICBmaWxlU3lzdGVtOiBmcyxcbiAgICAgIHBhdGg6ICcvZGVtby1naXRodWItcHJpdmF0ZScsXG4gICAgICBjcmVhdGVBY2w6IHtcbiAgICAgICAgb3duZXJHaWQ6ICcxMDAxJyxcbiAgICAgICAgb3duZXJVaWQ6ICcxMDAxJyxcbiAgICAgICAgcGVybWlzc2lvbnM6ICcwNzU1JyxcbiAgICAgIH0sXG4gICAgICBwb3NpeFVzZXI6IHtcbiAgICAgICAgdWlkOiAnMTAwMScsXG4gICAgICAgIGdpZDogJzEwMDEnLFxuICAgICAgfSxcbiAgICAgIHN5bmNTb3VyY2U6IG5ldyBHaXRodWJTeW5jU291cmNlKHtcbiAgICAgICAgdnBjLFxuICAgICAgICByZXBvc2l0b3J5OiAnaHR0cHM6Ly9naXRodWIuY29tL3BhaHVkL3ByaXZhdGUtcmVwby5naXQnLFxuICAgICAgICBzZWNyZXQ6IHtcbiAgICAgICAgICBpZDogJ2dpdGh1YicsXG4gICAgICAgICAga2V5OiAnb2F1dGhfdG9rZW4nLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgfSk7XG5cbiAgICBuZXcgU3luY2VkQWNjZXNzUG9pbnQoc3RhY2ssICdTM1N5bmNlZEFjY2Vzc1BvaW50Jywge1xuICAgICAgdnBjLFxuICAgICAgZmlsZVN5c3RlbTogZnMsXG4gICAgICBwYXRoOiAnL2RlbW8tczMtYXJjaGl2ZScsXG4gICAgICBjcmVhdGVBY2w6IHtcbiAgICAgICAgb3duZXJHaWQ6ICcxMDAxJyxcbiAgICAgICAgb3duZXJVaWQ6ICcxMDAxJyxcbiAgICAgICAgcGVybWlzc2lvbnM6ICcwNzU1JyxcbiAgICAgIH0sXG4gICAgICBwb3NpeFVzZXI6IHtcbiAgICAgICAgdWlkOiAnMTAwMScsXG4gICAgICAgIGdpZDogJzEwMDEnLFxuICAgICAgfSxcbiAgICAgIHN5bmNTb3VyY2U6IG5ldyBTM0FyY2hpdmVTeW5jU291cmNlKHtcbiAgICAgICAgdnBjLFxuICAgICAgICBidWNrZXQsXG4gICAgICAgIHppcEZpbGVQYXRoOiAnZm9sZGVyL2Zvby56aXAnLFxuICAgICAgfSksXG4gICAgfSk7XG5cbiAgICB0aGlzLnN0YWNrID0gW3N0YWNrXTtcbiAgfVxufVxuXG5cbmV4cG9ydCBjbGFzcyBOeWFuQ2F0RGVtbyB7XG4gIHJlYWRvbmx5IHN0YWNrOiBTdGFja1tdO1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBjb25zdCBhcHAgPSBuZXcgQXBwKCk7XG5cbiAgICBjb25zdCBlbnYgPSB7XG4gICAgICByZWdpb246IHByb2Nlc3MuZW52LkNES19ERUZBVUxUX1JFR0lPTixcbiAgICAgIGFjY291bnQ6IHByb2Nlc3MuZW52LkNES19ERUZBVUxUX0FDQ09VTlQsXG4gICAgfTtcblxuICAgIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKGFwcCwgJ3Rlc3Rpbmctc3RhY2snLCB7IGVudiB9KTtcblxuICAgIGNvbnN0IHZwYyA9IGdldE9yQ3JlYXRlVnBjKHN0YWNrKTtcblxuICAgIG5ldyBTdGF0ZWZ1bEZhcmdhdGVOZ2lueChzdGFjaywgJ055YW5DYXQnLCB7XG4gICAgICB2cGMsXG4gICAgICBnaXRodWI6ICdodHRwczovL2dpdGh1Yi5jb20vY3Jpc3R1cm0vbnlhbi1jYXQuZ2l0JyxcbiAgICB9KTtcblxuICAgIHRoaXMuc3RhY2sgPSBbc3RhY2tdO1xuICB9XG59XG5cbi8vIHJ1biB0aGUgaW50ZWcgdGVzdGluZ1xubmV3IEludGVnVGVzdGluZygpO1xuXG4vLyBydW4gTnlhbiBDYXQgZGVtb1xuLy8gbmV3IE55YW5DYXREZW1vKCk7XG5cblxuZnVuY3Rpb24gZ2V0T3JDcmVhdGVWcGMoc2NvcGU6IENvbnN0cnVjdCk6IGVjMi5JVnBjIHtcbiAgLy8gdXNlIGFuIGV4aXN0aW5nIHZwYyBvciBjcmVhdGUgYSBuZXcgb25lXG4gIHJldHVybiBzY29wZS5ub2RlLnRyeUdldENvbnRleHQoJ3VzZV9kZWZhdWx0X3ZwYycpID09PSAnMScgP1xuICAgIGVjMi5WcGMuZnJvbUxvb2t1cChzY29wZSwgJ1ZwYycsIHsgaXNEZWZhdWx0OiB0cnVlIH0pIDpcbiAgICBzY29wZS5ub2RlLnRyeUdldENvbnRleHQoJ3VzZV92cGNfaWQnKSA/XG4gICAgICBlYzIuVnBjLmZyb21Mb29rdXAoc2NvcGUsICdWcGMnLCB7IHZwY0lkOiBzY29wZS5ub2RlLnRyeUdldENvbnRleHQoJ3VzZV92cGNfaWQnKSB9KSA6XG4gICAgICBuZXcgZWMyLlZwYyhzY29wZSwgJ1ZwYycsIHsgbWF4QXpzOiAzLCBuYXRHYXRld2F5czogMSB9KTtcbn1cbiJdfQ==