raindancers-network
Version:
Extensions to the ec2.Vpc Constructs
62 lines • 8.94 kB
JavaScript
"use strict";
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PrivateRedshiftCluster = void 0;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
const redshift = require("@aws-cdk/aws-redshift-alpha");
const aws_cdk_lib_1 = require("aws-cdk-lib");
const constructs = require("constructs");
const database_1 = require("./database");
/**
** Creates a PrivateRedShiftCluster
*/
class PrivateRedshiftCluster extends constructs.Construct {
constructor(scope, id, props) {
super(scope, id);
const masterpassword = new aws_cdk_lib_1.aws_secretsmanager.Secret(this, 'masterpassword', {});
this.clusterSecurityGroup = new aws_cdk_lib_1.aws_ec2.SecurityGroup(this, 'clusterSG', {
vpc: props.vpc,
allowAllOutbound: false,
});
this.clusterParameters = new redshift.ClusterParameterGroup(this, 'Params', {
description: 'parameters',
parameters: {
require_ssl: 'true',
},
});
this.cluster = new redshift.Cluster(this, 'Redshift', {
clusterName: props.clusterName,
masterUser: {
masterUsername: props.masterUser,
masterPassword: masterpassword.secretValue,
},
vpc: props.vpc,
subnetGroup: props.subnetGroup,
roles: [props.defaultrole],
defaultRole: props.defaultrole,
classicResizing: false,
clusterType: redshift.ClusterType.MULTI_NODE,
encrypted: true,
loggingProperties: props.logging,
enhancedVpcRouting: true,
defaultDatabaseName: 'DefaultDatabase',
nodeType: props.nodeType,
numberOfNodes: props.nodes,
parameterGroup: props.parameterGroup,
preferredMaintenanceWindow: props.preferredMaintenanceWindow,
//rebootForParameterChanges: true,
removalPolicy: props.removalPolicy,
securityGroups: [this.clusterSecurityGroup],
});
}
addDatabase(databaseName) {
return new database_1.RedShiftDatabase(this, `${databaseName}Database`, {
databaseName: databaseName,
cluster: this.cluster,
});
}
}
exports.PrivateRedshiftCluster = PrivateRedshiftCluster;
_a = JSII_RTTI_SYMBOL_1;
PrivateRedshiftCluster[_a] = { fqn: "raindancers-network.redshift.PrivateRedshiftCluster", version: "1.29.3" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkc2hpZnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVkc2hpZnQvcmVkc2hpZnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx3REFBd0Q7QUFDeEQsNkNBT3FCO0FBR3JCLHlDQUF5QztBQUV6Qyx5Q0FBOEM7QUFnQjlDOztFQUVFO0FBRUYsTUFBYSxzQkFBdUIsU0FBUSxVQUFVLENBQUMsU0FBUztJQU05RCxZQUFZLEtBQTJCLEVBQUUsRUFBVSxFQUFFLEtBQTJCO1FBQzlFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxjQUFjLEdBQUcsSUFBSSxnQ0FBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFNUUsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUkscUJBQUcsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRTtZQUNuRSxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUc7WUFDZCxnQkFBZ0IsRUFBRSxLQUFLO1NBQ3hCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFO1lBQzFFLFdBQVcsRUFBRSxZQUFZO1lBQ3pCLFVBQVUsRUFBRTtnQkFDVixXQUFXLEVBQUUsTUFBTTthQUNwQjtTQUNGLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDcEQsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1lBQzlCLFVBQVUsRUFBRTtnQkFDVixjQUFjLEVBQUUsS0FBSyxDQUFDLFVBQVU7Z0JBQ2hDLGNBQWMsRUFBRSxjQUFjLENBQUMsV0FBVzthQUMzQztZQUNELEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRztZQUNkLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztZQUM5QixLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO1lBQzFCLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztZQUM5QixlQUFlLEVBQUUsS0FBSztZQUN0QixXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxVQUFVO1lBQzVDLFNBQVMsRUFBRSxJQUFJO1lBQ2YsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLE9BQU87WUFDaEMsa0JBQWtCLEVBQUUsSUFBSTtZQUN4QixtQkFBbUIsRUFBRSxpQkFBaUI7WUFDdEMsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1lBQ3hCLGFBQWEsRUFBRSxLQUFLLENBQUMsS0FBSztZQUMxQixjQUFjLEVBQUUsS0FBSyxDQUFDLGNBQWM7WUFDcEMsMEJBQTBCLEVBQUUsS0FBSyxDQUFDLDBCQUEwQjtZQUM1RCxrQ0FBa0M7WUFDbEMsYUFBYSxFQUFFLEtBQUssQ0FBQyxhQUFhO1lBQ2xDLGNBQWMsRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztTQUM1QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sV0FBVyxDQUFDLFlBQW9CO1FBRXJDLE9BQU8sSUFBSSwyQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsR0FBRyxZQUFZLFVBQVUsRUFBRTtZQUMzRCxZQUFZLEVBQUUsWUFBWTtZQUMxQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUF2REgsd0RBd0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcmVkc2hpZnQgZnJvbSAnQGF3cy1jZGsvYXdzLXJlZHNoaWZ0LWFscGhhJztcbmltcG9ydCB7XG4gIGF3c19lYzIgYXMgZWMyLFxuICBhd3Nfc2VjcmV0c21hbmFnZXIgYXMgc2VjcmV0bWFuYWdlcixcbiAgYXdzX2lhbSBhcyBpYW0sXG5cbiAgLy9jdXN0b21fcmVzb3VyY2VzIGFzIGNyLFxufVxuICBmcm9tICdhd3MtY2RrLWxpYic7XG5cbmltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBjb25zdHJ1Y3RzIGZyb20gJ2NvbnN0cnVjdHMnO1xuXG5pbXBvcnQgeyBSZWRTaGlmdERhdGFiYXNlIH0gZnJvbSAnLi9kYXRhYmFzZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVkc2hpZnRDbHVzdGVyUHJvcHMge1xuICByZWFkb25seSBjbHVzdGVyTmFtZTogc3RyaW5nO1xuICByZWFkb25seSBtYXN0ZXJVc2VyOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZwYzogZWMyLlZwYyB8IGVjMi5JVnBjO1xuICByZWFkb25seSBsb2dnaW5nOiByZWRzaGlmdC5Mb2dnaW5nUHJvcGVydGllcztcbiAgcmVhZG9ubHkgZGVmYXVsdHJvbGU6IGlhbS5Sb2xlO1xuICByZWFkb25seSBkZWZhdWx0REJOYW1lPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICByZWFkb25seSBub2Rlcz86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgcmVhZG9ubHkgbm9kZVR5cGU/OiByZWRzaGlmdC5Ob2RlVHlwZTtcbiAgcmVhZG9ubHkgcGFyYW1ldGVyR3JvdXA/OiByZWRzaGlmdC5DbHVzdGVyUGFyYW1ldGVyR3JvdXAgfCB1bmRlZmluZWQ7XG4gIHJlYWRvbmx5IHByZWZlcnJlZE1haW50ZW5hbmNlV2luZG93Pzogc3RyaW5nIHwgdW5kZWZpbmVkOyAvLyBFeGFtcGxlOiAnU3VuOjIzOjQ1LU1vbjowMDoxNScgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL1VTRVJfVXBncmFkZURCSW5zdGFuY2UuTWFpbnRlbmFuY2UuaHRtbCNDb25jZXB0cy5EQk1haW50ZW5hbmNlXG4gIHJlYWRvbmx5IHJlbW92YWxQb2xpY3k/OiBjZGsuUmVtb3ZhbFBvbGljeSB8IHVuZGVmaW5lZDsgLy8gdXNlIHRoaXMgZHVyaW5nIGRldiBzbywgd2UgY2FuIHRyYXNoIGl0LlxuICByZWFkb25seSBzdWJuZXRHcm91cDogcmVkc2hpZnQuQ2x1c3RlclN1Ym5ldEdyb3VwO1xufVxuLyoqXG4qKiBDcmVhdGVzIGEgUHJpdmF0ZVJlZFNoaWZ0Q2x1c3RlclxuKi9cblxuZXhwb3J0IGNsYXNzIFByaXZhdGVSZWRzaGlmdENsdXN0ZXIgZXh0ZW5kcyBjb25zdHJ1Y3RzLkNvbnN0cnVjdCB7XG5cbiAgcHVibGljIHJlYWRvbmx5IGNsdXN0ZXI6IHJlZHNoaWZ0LkNsdXN0ZXI7XG4gIHB1YmxpYyByZWFkb25seSBjbHVzdGVyU2VjdXJpdHlHcm91cDogZWMyLlNlY3VyaXR5R3JvdXA7XG4gIHB1YmxpYyByZWFkb25seSBjbHVzdGVyUGFyYW1ldGVyczogcmVkc2hpZnQuQ2x1c3RlclBhcmFtZXRlckdyb3VwO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFJlZHNoaWZ0Q2x1c3RlclByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IG1hc3RlcnBhc3N3b3JkID0gbmV3IHNlY3JldG1hbmFnZXIuU2VjcmV0KHRoaXMsICdtYXN0ZXJwYXNzd29yZCcsIHt9KTtcblxuICAgIHRoaXMuY2x1c3RlclNlY3VyaXR5R3JvdXAgPSBuZXcgZWMyLlNlY3VyaXR5R3JvdXAodGhpcywgJ2NsdXN0ZXJTRycsIHtcbiAgICAgIHZwYzogcHJvcHMudnBjLFxuICAgICAgYWxsb3dBbGxPdXRib3VuZDogZmFsc2UsXG4gICAgfSk7XG5cbiAgICB0aGlzLmNsdXN0ZXJQYXJhbWV0ZXJzID0gbmV3IHJlZHNoaWZ0LkNsdXN0ZXJQYXJhbWV0ZXJHcm91cCh0aGlzLCAnUGFyYW1zJywge1xuICAgICAgZGVzY3JpcHRpb246ICdwYXJhbWV0ZXJzJyxcbiAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgcmVxdWlyZV9zc2w6ICd0cnVlJyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLmNsdXN0ZXIgPSBuZXcgcmVkc2hpZnQuQ2x1c3Rlcih0aGlzLCAnUmVkc2hpZnQnLCB7XG4gICAgICBjbHVzdGVyTmFtZTogcHJvcHMuY2x1c3Rlck5hbWUsXG4gICAgICBtYXN0ZXJVc2VyOiB7XG4gICAgICAgIG1hc3RlclVzZXJuYW1lOiBwcm9wcy5tYXN0ZXJVc2VyLFxuICAgICAgICBtYXN0ZXJQYXNzd29yZDogbWFzdGVycGFzc3dvcmQuc2VjcmV0VmFsdWUsXG4gICAgICB9LFxuICAgICAgdnBjOiBwcm9wcy52cGMsXG4gICAgICBzdWJuZXRHcm91cDogcHJvcHMuc3VibmV0R3JvdXAsXG4gICAgICByb2xlczogW3Byb3BzLmRlZmF1bHRyb2xlXSxcbiAgICAgIGRlZmF1bHRSb2xlOiBwcm9wcy5kZWZhdWx0cm9sZSxcbiAgICAgIGNsYXNzaWNSZXNpemluZzogZmFsc2UsIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9yZWRzaGlmdC9sYXRlc3QvbWdtdC9tYW5hZ2luZy1jbHVzdGVyLW9wZXJhdGlvbnMuaHRtbCNlbGFzdGljLXJlc2l6ZVxuICAgICAgY2x1c3RlclR5cGU6IHJlZHNoaWZ0LkNsdXN0ZXJUeXBlLk1VTFRJX05PREUsXG4gICAgICBlbmNyeXB0ZWQ6IHRydWUsXG4gICAgICBsb2dnaW5nUHJvcGVydGllczogcHJvcHMubG9nZ2luZyxcbiAgICAgIGVuaGFuY2VkVnBjUm91dGluZzogdHJ1ZSxcbiAgICAgIGRlZmF1bHREYXRhYmFzZU5hbWU6ICdEZWZhdWx0RGF0YWJhc2UnLFxuICAgICAgbm9kZVR5cGU6IHByb3BzLm5vZGVUeXBlLFxuICAgICAgbnVtYmVyT2ZOb2RlczogcHJvcHMubm9kZXMsXG4gICAgICBwYXJhbWV0ZXJHcm91cDogcHJvcHMucGFyYW1ldGVyR3JvdXAsXG4gICAgICBwcmVmZXJyZWRNYWludGVuYW5jZVdpbmRvdzogcHJvcHMucHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3csXG4gICAgICAvL3JlYm9vdEZvclBhcmFtZXRlckNoYW5nZXM6IHRydWUsXG4gICAgICByZW1vdmFsUG9saWN5OiBwcm9wcy5yZW1vdmFsUG9saWN5LFxuICAgICAgc2VjdXJpdHlHcm91cHM6IFt0aGlzLmNsdXN0ZXJTZWN1cml0eUdyb3VwXSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhZGREYXRhYmFzZShkYXRhYmFzZU5hbWU6IHN0cmluZyk6IFJlZFNoaWZ0RGF0YWJhc2Uge1xuXG4gICAgcmV0dXJuIG5ldyBSZWRTaGlmdERhdGFiYXNlKHRoaXMsIGAke2RhdGFiYXNlTmFtZX1EYXRhYmFzZWAsIHtcbiAgICAgIGRhdGFiYXNlTmFtZTogZGF0YWJhc2VOYW1lLFxuICAgICAgY2x1c3RlcjogdGhpcy5jbHVzdGVyLFxuICAgIH0pO1xuICB9XG59XG4iXX0=