raindancers-network
Version:
Extensions to the ec2.Vpc Constructs
37 lines • 5.36 kB
JavaScript
;
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CentralResolverRules = void 0;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
const aws_cdk_lib_1 = require("aws-cdk-lib");
const cdk = require("aws-cdk-lib");
const constructs = require("constructs");
class CentralResolverRules extends constructs.Construct {
constructor(scope, id, props) {
super(scope, id);
props.domains.forEach((domain) => {
var zoneName = domain.replace(/\./gi, 'dot');
zoneName = zoneName.replace(/-/gi, 'dash');
const region = cdk.Aws.REGION.replace(/-/gi, '');
new aws_cdk_lib_1.aws_route53resolver.CfnResolverRule(this, `${zoneName}SharedResolverRule`, {
domainName: domain,
ruleType: 'FORWARD',
name: `${zoneName}${region}`,
resolverEndpointId: props.resolvers.outboundResolver.attrResolverEndpointId,
targetIps: props.resolvers.inboundResolversIp,
tags: [{
key: 'r53rrule',
value: domain,
}],
});
// if a searchTag is not provided use the default.
const searchTag = props.vpcSearchTag ?? new cdk.Tag('centralVPCSearchTag', 'RegionalDNSHub');
// tag the vpc as a central resolver rule.
cdk.Tags.of(props.vpc).add(searchTag.key, searchTag.value);
});
}
}
exports.CentralResolverRules = CentralResolverRules;
_a = JSII_RTTI_SYMBOL_1;
CentralResolverRules[_a] = { fqn: "raindancers-network.dns.CentralResolverRules", version: "1.29.3" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZXJSdWxlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kbnMvcmVzb2x2ZXJSdWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUlxQjtBQUNyQixtQ0FBbUM7QUFDbkMseUNBQXlDO0FBV3pDLE1BQWEsb0JBQXFCLFNBQVEsVUFBVSxDQUFDLFNBQVM7SUFFNUQsWUFBWSxLQUEyQixFQUFFLEVBQVUsRUFBRSxLQUFnQztRQUNwRixLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDOUIsSUFBSSxRQUFRLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDN0MsUUFBUSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzNDLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFFakQsSUFBSSxpQ0FBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxRQUFRLG9CQUFvQixFQUFFO2dCQUM5RCxVQUFVLEVBQUUsTUFBTTtnQkFDbEIsUUFBUSxFQUFFLFNBQVM7Z0JBQ25CLElBQUksRUFBRSxHQUFHLFFBQVEsR0FBRyxNQUFNLEVBQUU7Z0JBQzVCLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCO2dCQUMzRSxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxrQkFBa0I7Z0JBQzdDLElBQUksRUFBRSxDQUFDO3dCQUNMLEdBQUcsRUFBRSxVQUFVO3dCQUNmLEtBQUssRUFBRSxNQUFNO3FCQUNkLENBQUM7YUFDSCxDQUFDLENBQUM7WUFFSCxrREFBa0Q7WUFDbEQsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFlBQVksSUFBSSxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMscUJBQXFCLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztZQUU3RiwwQ0FBMEM7WUFDMUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUvRCxDQUFDLENBQUMsQ0FBQztJQUNILENBQUM7O0FBN0JILG9EQThCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGF3c19yb3V0ZTUzcmVzb2x2ZXIgYXMgcjUzcixcbiAgYXdzX2VjMiBhcyBlYzIsXG59XG4gIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBjb25zdHJ1Y3RzIGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgUjUzUmVzb2x2ZXJlbmRwb2ludHMgfSBmcm9tICcuL2Ruc1Jlc29sdmVycyc7XG5cblxuZXhwb3J0IGludGVyZmFjZSBDZW50cmFsUmVzb2x2ZXJSdWxlc1Byb3BzIHtcbiAgcmVhZG9ubHkgZG9tYWluczogc3RyaW5nW107XG4gIHJlYWRvbmx5IHJlc29sdmVyczogUjUzUmVzb2x2ZXJlbmRwb2ludHM7XG4gIHJlYWRvbmx5IHZwYzogZWMyLlZwYyB8IGVjMi5JVnBjO1xuICByZWFkb25seSB2cGNTZWFyY2hUYWc/OiBjZGsuVGFnIHwgdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgY2xhc3MgQ2VudHJhbFJlc29sdmVyUnVsZXMgZXh0ZW5kcyBjb25zdHJ1Y3RzLkNvbnN0cnVjdCB7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ2VudHJhbFJlc29sdmVyUnVsZXNQcm9wcykge1xuXHQgIHN1cGVyKHNjb3BlLCBpZCk7XG5cblx0ICBwcm9wcy5kb21haW5zLmZvckVhY2goKGRvbWFpbikgPT4ge1xuICAgICAgdmFyIHpvbmVOYW1lID0gZG9tYWluLnJlcGxhY2UoL1xcLi9naSwgJ2RvdCcpO1xuICAgICAgem9uZU5hbWUgPSB6b25lTmFtZS5yZXBsYWNlKC8tL2dpLCAnZGFzaCcpO1xuICAgICAgY29uc3QgcmVnaW9uID0gY2RrLkF3cy5SRUdJT04ucmVwbGFjZSgvLS9naSwgJycpO1xuXG4gICAgICBuZXcgcjUzci5DZm5SZXNvbHZlclJ1bGUodGhpcywgYCR7em9uZU5hbWV9U2hhcmVkUmVzb2x2ZXJSdWxlYCwge1xuICAgICAgICBkb21haW5OYW1lOiBkb21haW4sXG4gICAgICAgIHJ1bGVUeXBlOiAnRk9SV0FSRCcsXG4gICAgICAgIG5hbWU6IGAke3pvbmVOYW1lfSR7cmVnaW9ufWAsXG4gICAgICAgIHJlc29sdmVyRW5kcG9pbnRJZDogcHJvcHMucmVzb2x2ZXJzLm91dGJvdW5kUmVzb2x2ZXIuYXR0clJlc29sdmVyRW5kcG9pbnRJZCxcbiAgICAgICAgdGFyZ2V0SXBzOiBwcm9wcy5yZXNvbHZlcnMuaW5ib3VuZFJlc29sdmVyc0lwLFxuICAgICAgICB0YWdzOiBbe1xuICAgICAgICAgIGtleTogJ3I1M3JydWxlJyxcbiAgICAgICAgICB2YWx1ZTogZG9tYWluLFxuICAgICAgICB9XSxcbiAgICAgIH0pO1xuXG4gICAgICAvLyBpZiBhIHNlYXJjaFRhZyBpcyBub3QgcHJvdmlkZWQgdXNlIHRoZSBkZWZhdWx0LlxuICAgICAgY29uc3Qgc2VhcmNoVGFnID0gcHJvcHMudnBjU2VhcmNoVGFnID8/IG5ldyBjZGsuVGFnKCdjZW50cmFsVlBDU2VhcmNoVGFnJywgJ1JlZ2lvbmFsRE5TSHViJyk7XG5cbiAgICAgIC8vIHRhZyB0aGUgdnBjIGFzIGEgY2VudHJhbCByZXNvbHZlciBydWxlLlxuICAgICAgY2RrLlRhZ3Mub2YocHJvcHMudnBjKS5hZGQoc2VhcmNoVGFnLmtleSwgc2VhcmNoVGFnLnZhbHVlKTtcblxuXHQgfSk7XG4gIH1cbn0iXX0=