raindancers-network
Version:
Extensions to the ec2.Vpc Constructs
76 lines • 9.87 kB
JavaScript
;
var _a, _b;
Object.defineProperty(exports, "__esModule", { value: true });
exports.AssociateSharedResolverRule = exports.ForwardingRules = void 0;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
const aws_cdk_lib_1 = require("aws-cdk-lib");
//import * as cdk from 'aws-cdk-lib';
const constructs = require("constructs");
/**
* create forwarding rules and associate them with a vpc.
*/
class ForwardingRules extends constructs.Construct {
constructor(scope, id, props) {
super(scope, id);
let targetIps = [];
props.resolverIP.forEach((targetip) => {
targetIps.push({ ip: targetip });
});
props.domains.forEach((domain) => {
// create the resolver rule
let resolverRule = new aws_cdk_lib_1.aws_route53resolver.CfnResolverRule(this, `r53r${domain}`, {
resolverEndpointId: props.resolverId,
domainName: domain,
ruleType: 'FORWARD',
targetIps: targetIps,
});
new aws_cdk_lib_1.aws_route53resolver.CfnResolverRuleAssociation(this, `r53rassn${domain}`, {
resolverRuleId: resolverRule.attrResolverRuleId,
vpcId: props.vpc.vpcId,
});
});
}
}
exports.ForwardingRules = ForwardingRules;
_a = JSII_RTTI_SYMBOL_1;
ForwardingRules[_a] = { fqn: "raindancers-network.dns.ForwardingRules", version: "1.29.3" };
/**
* Associate a resolver rule that has been shared to this account
*/
class AssociateSharedResolverRule extends constructs.Construct {
constructor(scope, id, props) {
super(scope, id);
props.domainNames.forEach((domain) => {
var zoneName = domain.replace(/\./gi, 'dot');
zoneName = zoneName.replace(/-/gi, 'dash');
//const region = cdk.Aws.REGION.replace(/-/gi, '');
const resolverRule = new aws_cdk_lib_1.custom_resources.AwsCustomResource(this, `lookupResolverId'${domain}`, {
onCreate: {
service: 'Route53Resolver',
action: 'listResolverRules',
parameters: {
Filters: [
{
Name: 'DomainName',
Values: [`${domain}.`],
},
],
},
physicalResourceId: aws_cdk_lib_1.custom_resources.PhysicalResourceId.of('resolverId'),
},
policy: aws_cdk_lib_1.custom_resources.AwsCustomResourcePolicy.fromSdkCalls({
resources: aws_cdk_lib_1.custom_resources.AwsCustomResourcePolicy.ANY_RESOURCE,
}),
});
const resolverRuleId = resolverRule.getResponseField('ResolverRules.0.Id');
new aws_cdk_lib_1.aws_route53resolver.CfnResolverRuleAssociation(this, `${domain}ResolverRuleAssociation`, {
resolverRuleId: resolverRuleId,
vpcId: props.vpc.vpcId,
});
});
}
}
exports.AssociateSharedResolverRule = AssociateSharedResolverRule;
_b = JSII_RTTI_SYMBOL_1;
AssociateSharedResolverRule[_b] = { fqn: "raindancers-network.dns.AssociateSharedResolverRule", version: "1.29.3" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yd2FyZGluZ1J1bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Rucy9mb3J3YXJkaW5nUnVsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FLcUI7QUFFckIscUNBQXFDO0FBQ3JDLHlDQUF5QztBQVV6Qzs7R0FFRztBQUNILE1BQWEsZUFBZ0IsU0FBUSxVQUFVLENBQUMsU0FBUztJQUV2RCxZQUFZLEtBQTJCLEVBQUUsRUFBVSxFQUFFLEtBQTJCO1FBQy9FLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxTQUFTLEdBQW1CLEVBQUUsQ0FBQztRQUNsQyxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ3BDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztRQUVILEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFFL0IsMkJBQTJCO1lBQzNCLElBQUksWUFBWSxHQUFHLElBQUksaUNBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLE9BQU8sTUFBTSxFQUFFLEVBQUU7Z0JBQ2pFLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxVQUFVO2dCQUNwQyxVQUFVLEVBQUUsTUFBTTtnQkFDbEIsUUFBUSxFQUFFLFNBQVM7Z0JBQ25CLFNBQVMsRUFBRSxTQUFTO2FBQ3JCLENBQUMsQ0FBQztZQUVILElBQUksaUNBQUksQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLEVBQUUsV0FBVyxNQUFNLEVBQUUsRUFBRTtnQkFDN0QsY0FBYyxFQUFFLFlBQVksQ0FBQyxrQkFBa0I7Z0JBQy9DLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUs7YUFDdkIsQ0FBQyxDQUFDO1FBRUwsQ0FBQyxDQUFDLENBQUM7SUFFTCxDQUFDOztBQTNCSCwwQ0E0QkM7OztBQWVEOztHQUVHO0FBQ0gsTUFBYSwyQkFBNEIsU0FBUSxVQUFVLENBQUMsU0FBUztJQUVuRSxZQUFZLEtBQTJCLEVBQUUsRUFBVSxFQUFFLEtBQXVDO1FBQzNGLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFaEIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUVuQyxJQUFJLFFBQVEsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztZQUM3QyxRQUFRLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDM0MsbURBQW1EO1lBRW5ELE1BQU0sWUFBWSxHQUFHLElBQUksOEJBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLE1BQU0sRUFBRSxFQUFFO2dCQUNoRixRQUFRLEVBQUU7b0JBQ1IsT0FBTyxFQUFFLGlCQUFpQjtvQkFDMUIsTUFBTSxFQUFFLG1CQUFtQjtvQkFDM0IsVUFBVSxFQUFFO3dCQUNWLE9BQU8sRUFBRTs0QkFDUDtnQ0FDRSxJQUFJLEVBQUUsWUFBWTtnQ0FDbEIsTUFBTSxFQUFFLENBQUMsR0FBRyxNQUFNLEdBQUcsQ0FBQzs2QkFDdkI7eUJBQ0Y7cUJBQ0Y7b0JBQ0Qsa0JBQWtCLEVBQUUsOEJBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUMzRDtnQkFDRCxNQUFNLEVBQUUsOEJBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLENBQUM7b0JBQzlDLFNBQVMsRUFBRSw4QkFBRSxDQUFDLHVCQUF1QixDQUFDLFlBQVk7aUJBQ25ELENBQUM7YUFDSCxDQUFDLENBQUM7WUFFSCxNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUUzRSxJQUFJLGlDQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxFQUFFLEdBQUcsTUFBTSx5QkFBeUIsRUFBRTtnQkFDNUUsY0FBYyxFQUFFLGNBQWM7Z0JBQzlCLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUs7YUFDdkIsQ0FBQyxDQUFDO1FBRUwsQ0FBQyxDQUFDLENBQUM7SUFHTCxDQUFDOztBQXhDSCxrRUF5Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBhd3Nfcm91dGU1M3Jlc29sdmVyIGFzIHI1M3IsXG4gIGF3c19lYzIgYXMgZWMyLFxuICBjdXN0b21fcmVzb3VyY2VzIGFzIGNyLFxufVxuICBmcm9tICdhd3MtY2RrLWxpYic7XG5cbi8vaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGNvbnN0cnVjdHMgZnJvbSAnY29uc3RydWN0cyc7XG5cblxuZXhwb3J0IGludGVyZmFjZSBGb3J3YXJkaW5nUnVsZXNQcm9wcyB7XG4gIHJlYWRvbmx5IHJlc29sdmVySVA6IHN0cmluZ1tdO1xuICByZWFkb25seSBkb21haW5zOiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgdnBjOiBlYzIuVnBjO1xuICByZWFkb25seSByZXNvbHZlcklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogY3JlYXRlIGZvcndhcmRpbmcgcnVsZXMgYW5kIGFzc29jaWF0ZSB0aGVtIHdpdGggYSB2cGMuXG4gKi9cbmV4cG9ydCBjbGFzcyBGb3J3YXJkaW5nUnVsZXMgZXh0ZW5kcyBjb25zdHJ1Y3RzLkNvbnN0cnVjdCB7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRm9yd2FyZGluZ1J1bGVzUHJvcHMpIHtcblx0ICBzdXBlcihzY29wZSwgaWQpO1xuXG5cdCAgbGV0IHRhcmdldElwczoge2lwOiBzdHJpbmd9W10gPSBbXTtcbiAgICBwcm9wcy5yZXNvbHZlcklQLmZvckVhY2goKHRhcmdldGlwKSA9PiB7XG4gICAgICB0YXJnZXRJcHMucHVzaCh7IGlwOiB0YXJnZXRpcCB9KTtcbiAgICB9KTtcblxuICAgIHByb3BzLmRvbWFpbnMuZm9yRWFjaCgoZG9tYWluKSA9PiB7XG5cbiAgICAgIC8vIGNyZWF0ZSB0aGUgcmVzb2x2ZXIgcnVsZVxuICAgICAgbGV0IHJlc29sdmVyUnVsZSA9IG5ldyByNTNyLkNmblJlc29sdmVyUnVsZSh0aGlzLCBgcjUzciR7ZG9tYWlufWAsIHtcbiAgICAgICAgcmVzb2x2ZXJFbmRwb2ludElkOiBwcm9wcy5yZXNvbHZlcklkLFxuICAgICAgICBkb21haW5OYW1lOiBkb21haW4sXG4gICAgICAgIHJ1bGVUeXBlOiAnRk9SV0FSRCcsXG4gICAgICAgIHRhcmdldElwczogdGFyZ2V0SXBzLFxuICAgICAgfSk7XG5cbiAgICAgIG5ldyByNTNyLkNmblJlc29sdmVyUnVsZUFzc29jaWF0aW9uKHRoaXMsIGByNTNyYXNzbiR7ZG9tYWlufWAsIHtcbiAgICAgICAgcmVzb2x2ZXJSdWxlSWQ6IHJlc29sdmVyUnVsZS5hdHRyUmVzb2x2ZXJSdWxlSWQsXG4gICAgICAgIHZwY0lkOiBwcm9wcy52cGMudnBjSWQsXG4gICAgICB9KTtcblxuICAgIH0pO1xuXG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBBc3NvY2lhdGVTaGFyZWRSZXNvbHZlclJ1bGVQcm9wcyB7XG5cbiAgLyoqXG4gICAqIGRvbWFpbk5hbWVzIHdoaWNoIGFyZSB0byBiZSBhc3NvY2lhdGVkXG4gICAqL1xuICByZWFkb25seSBkb21haW5OYW1lczogc3RyaW5nW107XG4gIC8qKlxuICAgKiBUaGUgVlBDIHdoaWNoIHdpbGwgYmUgYXNzb2NhaXRlZCB3aXRoIHRoZSBSZXNvbHZlclJ1bGVzXG4gICAqL1xuICByZWFkb25seSB2cGM6IGVjMi5WcGMgfCBlYzIuSVZwYztcblxufVxuXG4vKipcbiAqIEFzc29jaWF0ZSBhIHJlc29sdmVyIHJ1bGUgdGhhdCBoYXMgYmVlbiBzaGFyZWQgdG8gdGhpcyBhY2NvdW50XG4gKi9cbmV4cG9ydCBjbGFzcyBBc3NvY2lhdGVTaGFyZWRSZXNvbHZlclJ1bGUgZXh0ZW5kcyBjb25zdHJ1Y3RzLkNvbnN0cnVjdCB7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQXNzb2NpYXRlU2hhcmVkUmVzb2x2ZXJSdWxlUHJvcHMpIHtcblx0ICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgcHJvcHMuZG9tYWluTmFtZXMuZm9yRWFjaCgoZG9tYWluKSA9PiB7XG5cbiAgICAgIHZhciB6b25lTmFtZSA9IGRvbWFpbi5yZXBsYWNlKC9cXC4vZ2ksICdkb3QnKTtcbiAgICAgIHpvbmVOYW1lID0gem9uZU5hbWUucmVwbGFjZSgvLS9naSwgJ2Rhc2gnKTtcbiAgICAgIC8vY29uc3QgcmVnaW9uID0gY2RrLkF3cy5SRUdJT04ucmVwbGFjZSgvLS9naSwgJycpO1xuXG4gICAgICBjb25zdCByZXNvbHZlclJ1bGUgPSBuZXcgY3IuQXdzQ3VzdG9tUmVzb3VyY2UodGhpcywgYGxvb2t1cFJlc29sdmVySWQnJHtkb21haW59YCwge1xuICAgICAgICBvbkNyZWF0ZToge1xuICAgICAgICAgIHNlcnZpY2U6ICdSb3V0ZTUzUmVzb2x2ZXInLFxuICAgICAgICAgIGFjdGlvbjogJ2xpc3RSZXNvbHZlclJ1bGVzJyxcbiAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICBGaWx0ZXJzOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBOYW1lOiAnRG9tYWluTmFtZScsXG4gICAgICAgICAgICAgICAgVmFsdWVzOiBbYCR7ZG9tYWlufS5gXSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IGNyLlBoeXNpY2FsUmVzb3VyY2VJZC5vZigncmVzb2x2ZXJJZCcpLFxuICAgICAgICB9LFxuICAgICAgICBwb2xpY3k6IGNyLkF3c0N1c3RvbVJlc291cmNlUG9saWN5LmZyb21TZGtDYWxscyh7XG4gICAgICAgICAgcmVzb3VyY2VzOiBjci5Bd3NDdXN0b21SZXNvdXJjZVBvbGljeS5BTllfUkVTT1VSQ0UsXG4gICAgICAgIH0pLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHJlc29sdmVyUnVsZUlkID0gcmVzb2x2ZXJSdWxlLmdldFJlc3BvbnNlRmllbGQoJ1Jlc29sdmVyUnVsZXMuMC5JZCcpO1xuXG4gICAgICBuZXcgcjUzci5DZm5SZXNvbHZlclJ1bGVBc3NvY2lhdGlvbih0aGlzLCBgJHtkb21haW59UmVzb2x2ZXJSdWxlQXNzb2NpYXRpb25gLCB7XG4gICAgICAgIHJlc29sdmVyUnVsZUlkOiByZXNvbHZlclJ1bGVJZCxcbiAgICAgICAgdnBjSWQ6IHByb3BzLnZwYy52cGNJZCxcbiAgICAgIH0pO1xuXG4gICAgfSk7XG5cblxuICB9XG59XG4iXX0=