@cdklabs/aws-data-solutions-framework
Version:
L3 CDK Constructs used to build data solutions with AWS
35 lines • 5.49 kB
JavaScript
;
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
Object.defineProperty(exports, "__esModule", { value: true });
const cdk = require("aws-cdk-lib");
const aws_iam_1 = require("aws-cdk-lib/aws-iam");
const lib_1 = require("../lib");
const lambda_layer_kubectl_v33_1 = require("@aws-cdk/lambda-layer-kubectl-v33");
class ExampleSparkEmrContainersStack extends cdk.Stack {
constructor(scope, id) {
super(scope, id);
//Layer must be changed according to the Kubernetes version used
const kubectlLayer = new lambda_layer_kubectl_v33_1.KubectlV33Layer(this, 'kubectlLayer');
/// !show
const emrEksCluster = lib_1.SparkEmrContainersRuntime.getOrCreate(this, {
eksAdminRole: aws_iam_1.Role.fromRoleArn(this, 'EksAdminRole', 'arn:aws:iam::12345678912:role/role-name-with-path'),
publicAccessCIDRs: ['10.0.0.0/32'], // The list of public IP addresses from which the cluster can be accessible
createEmrOnEksServiceLinkedRole: true, //if the the service linked role already exists set this to false
kubectlLambdaLayer: kubectlLayer,
defaultNodes: true,
});
//Driver pod template for critical workloads
new cdk.CfnOutput(this, 'driverPodTemplate', {
value: emrEksCluster.podTemplateS3LocationCriticalDriver,
});
//Executor pod template for critical workloads
new cdk.CfnOutput(this, 'executorPodTemplate', {
value: emrEksCluster.podTemplateS3LocationCriticalExecutor,
});
/// !hide
}
}
const app = new cdk.App();
new ExampleSparkEmrContainersStack(app, 'ExampleSparkEmrServerlessStack');
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhcmstZW1yLXJ1bnRpbWUtY29udGFpbmVycy1lYzItY2FwYWNpdHkubGl0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Byb2Nlc3NpbmcvZXhhbXBsZXMvc3BhcmstZW1yLXJ1bnRpbWUtY29udGFpbmVycy1lYzItY2FwYWNpdHkubGl0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxxRUFBcUU7QUFDckUsc0NBQXNDOztBQUV0QyxtQ0FBbUM7QUFDbkMsaURBQTJDO0FBRTNDLGdDQUFtRDtBQUNuRCxnRkFBb0U7QUFHcEUsTUFBTSw4QkFBK0IsU0FBUSxHQUFHLENBQUMsS0FBSztJQUNwRCxZQUFZLEtBQWdCLEVBQUUsRUFBVTtRQUN0QyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLGdFQUFnRTtRQUNoRSxNQUFNLFlBQVksR0FBRyxJQUFJLDBDQUFlLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBRS9ELFNBQVM7UUFDVCxNQUFNLGFBQWEsR0FBRywrQkFBeUIsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFO1lBQ2hFLFlBQVksRUFBRSxjQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUcsbURBQW1ELENBQUM7WUFDMUcsaUJBQWlCLEVBQUUsQ0FBQyxhQUFhLENBQUMsRUFBRSwyRUFBMkU7WUFDL0csK0JBQStCLEVBQUUsSUFBSSxFQUFFLGlFQUFpRTtZQUN4RyxrQkFBa0IsRUFBRSxZQUFZO1lBQ2hDLFlBQVksRUFBRSxJQUFJO1NBQ25CLENBQUMsQ0FBQztRQUVILDRDQUE0QztRQUM1QyxJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLG1CQUFtQixFQUFFO1lBQzNDLEtBQUssRUFBRSxhQUFhLENBQUMsbUNBQW9DO1NBQzFELENBQUMsQ0FBQztRQUVILDhDQUE4QztRQUM5QyxJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLHFCQUFxQixFQUFFO1lBQzdDLEtBQUssRUFBRSxhQUFhLENBQUMscUNBQXNDO1NBQzVELENBQUMsQ0FBQztRQUNILFdBQVc7SUFDYixDQUFDO0NBQ0Y7QUFFRCxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUMxQixJQUFJLDhCQUE4QixDQUFDLEdBQUcsRUFBRSxnQ0FBZ0MsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgUm9sZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBTcGFya0VtckNvbnRhaW5lcnNSdW50aW1lIH0gZnJvbSAnLi4vbGliJztcbmltcG9ydCB7IEt1YmVjdGxWMzNMYXllciB9IGZyb20gJ0Bhd3MtY2RrL2xhbWJkYS1sYXllci1rdWJlY3RsLXYzMyc7XG5cblxuY2xhc3MgRXhhbXBsZVNwYXJrRW1yQ29udGFpbmVyc1N0YWNrIGV4dGVuZHMgY2RrLlN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgXG4gICAgLy9MYXllciBtdXN0IGJlIGNoYW5nZWQgYWNjb3JkaW5nIHRvIHRoZSBLdWJlcm5ldGVzIHZlcnNpb24gdXNlZFxuICAgIGNvbnN0IGt1YmVjdGxMYXllciA9IG5ldyBLdWJlY3RsVjMzTGF5ZXIodGhpcywgJ2t1YmVjdGxMYXllcicpO1xuICAgIFxuICAgIC8vLyAhc2hvd1xuICAgIGNvbnN0IGVtckVrc0NsdXN0ZXIgPSBTcGFya0VtckNvbnRhaW5lcnNSdW50aW1lLmdldE9yQ3JlYXRlKHRoaXMsIHtcbiAgICAgIGVrc0FkbWluUm9sZTogUm9sZS5mcm9tUm9sZUFybih0aGlzLCAnRWtzQWRtaW5Sb2xlJyAsICdhcm46YXdzOmlhbTo6MTIzNDU2Nzg5MTI6cm9sZS9yb2xlLW5hbWUtd2l0aC1wYXRoJyksXG4gICAgICBwdWJsaWNBY2Nlc3NDSURSczogWycxMC4wLjAuMC8zMiddLCAvLyBUaGUgbGlzdCBvZiBwdWJsaWMgSVAgYWRkcmVzc2VzIGZyb20gd2hpY2ggdGhlIGNsdXN0ZXIgY2FuIGJlIGFjY2Vzc2libGVcbiAgICAgIGNyZWF0ZUVtck9uRWtzU2VydmljZUxpbmtlZFJvbGU6IHRydWUsIC8vaWYgdGhlIHRoZSBzZXJ2aWNlIGxpbmtlZCByb2xlIGFscmVhZHkgZXhpc3RzIHNldCB0aGlzIHRvIGZhbHNlXG4gICAgICBrdWJlY3RsTGFtYmRhTGF5ZXI6IGt1YmVjdGxMYXllcixcbiAgICAgIGRlZmF1bHROb2RlczogdHJ1ZSxcbiAgICB9KTtcbiAgICBcbiAgICAvL0RyaXZlciBwb2QgdGVtcGxhdGUgZm9yIGNyaXRpY2FsIHdvcmtsb2Fkc1xuICAgIG5ldyBjZGsuQ2ZuT3V0cHV0KHRoaXMsICdkcml2ZXJQb2RUZW1wbGF0ZScsIHtcbiAgICAgIHZhbHVlOiBlbXJFa3NDbHVzdGVyLnBvZFRlbXBsYXRlUzNMb2NhdGlvbkNyaXRpY2FsRHJpdmVyISxcbiAgICB9KTtcbiAgICBcbiAgICAvL0V4ZWN1dG9yIHBvZCB0ZW1wbGF0ZSBmb3IgY3JpdGljYWwgd29ya2xvYWRzXG4gICAgbmV3IGNkay5DZm5PdXRwdXQodGhpcywgJ2V4ZWN1dG9yUG9kVGVtcGxhdGUnLCB7XG4gICAgICB2YWx1ZTogZW1yRWtzQ2x1c3Rlci5wb2RUZW1wbGF0ZVMzTG9jYXRpb25Dcml0aWNhbEV4ZWN1dG9yISxcbiAgICB9KTtcbiAgICAvLy8gIWhpZGUgIFxuICB9XG59XG5cbmNvbnN0IGFwcCA9IG5ldyBjZGsuQXBwKCk7XG5uZXcgRXhhbXBsZVNwYXJrRW1yQ29udGFpbmVyc1N0YWNrKGFwcCwgJ0V4YW1wbGVTcGFya0VtclNlcnZlcmxlc3NTdGFjaycpOyJdfQ==