mup-aws-beanstalk
Version:
Deploy apps to AWS Elastic Beanstalk using Meteor Up
64 lines (54 loc) • 1.7 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = ensureSSLConfigured;
var _aws = require("./aws");
var _utils = require("./utils");
var _ebConfig = require("./eb-config");
var _envReady = require("./env-ready");
async function ensureSSLConfigured(config, certificateArn) {
const {
app,
environment
} = (0, _utils.names)(config);
const ebConfig = [{
Namespace: 'aws:elbv2:listener:443',
OptionName: 'SSLCertificateArns',
Value: certificateArn
}, {
Namespace: 'aws:elbv2:listener:443',
OptionName: 'DefaultProcess',
Value: 'default'
}, {
Namespace: 'aws:elbv2:listener:443',
OptionName: 'ListenerEnabled',
Value: 'true'
}, {
Namespace: 'aws:elbv2:listener:443',
OptionName: 'Protocol',
Value: 'HTTPS'
}];
const domains = config.app.sslDomains; // we use domains to decide if we need to do something about SSL
if (!domains || domains.length === 0) {
return;
}
const {
ConfigurationSettings
} = await _aws.beanstalk.describeConfigurationSettings({
EnvironmentName: environment,
ApplicationName: app
}).promise();
const current = ConfigurationSettings[0].OptionSettings.reduce(_ebConfig.convertToObject, {});
const desired = ebConfig.reduce(_ebConfig.convertToObject, {});
const needToUpdate = Object.keys(desired).find(key => !current[key] || current[key].Value !== desired[key].Value);
if (!needToUpdate) {
return;
}
await _aws.beanstalk.updateEnvironment({
EnvironmentName: environment,
OptionSettings: ebConfig
}).promise();
await (0, _envReady.waitForEnvReady)(config, true);
}
//# sourceMappingURL=certificates.js.map
;