briareus
Version:
Briareus assists with Feature Branch deploys to ECS
58 lines (51 loc) • 1.49 kB
JavaScript
const AWS = require('aws-sdk');
const _ = require('lodash');
let action = module.exports = function (pipeline, payload, cb) {
const route53 = new AWS.Route53();
const params = {
ChangeBatch: {
Changes: [
{
Action: "UPSERT",
ResourceRecordSet: {
Name: payload.endpoint.host,
AliasTarget: {
DNSName: payload.alb.dnsName,
EvaluateTargetHealth: false,
HostedZoneId: payload.alb.canonicalHostedZoneId
},
Type: 'A'
}
},
{
Action: "UPSERT",
ResourceRecordSet: {
Name: `*.${payload.endpoint.host}`,
AliasTarget: {
DNSName: payload.alb.dnsName,
EvaluateTargetHealth: false,
HostedZoneId: payload.alb.canonicalHostedZoneId
},
Type: 'A'
}
}
],
Comment: `Briarius DNS Records. payload: ${payload.uuid}`
},
HostedZoneId: payload.hostedZoneId
};
route53.changeResourceRecordSets(params, (err, data) => {
if (err) return cb(err);
const patches = _.map(params.ChangeBatch.Changes, (change) => {
return {
op: 'add',
path: '/assets/dnsRecords/-',
value: change.ResourceRecordSet
}
});
cb(null, patches);
});
};
action.waiting = 'Creating DNS records for endpoints';
action.done = 'DNS records for endpoints have been created';