UNPKG

mup-aws-beanstalk

Version:

Deploy apps to AWS Elastic Beanstalk using Meteor Up

64 lines (54 loc) 1.7 kB
"use strict"; 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