@brunwig/mup-aws-beanstalk 0.8.4 → 0.8.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/eb-config.js CHANGED
@@ -3,30 +3,26 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.createDesiredConfig = createDesiredConfig;
7
- exports.scalingConfigChanged = scalingConfigChanged;
8
- exports.scalingConfig = scalingConfig;
9
6
  exports.convertToObject = convertToObject;
10
- exports.mergeConfigs = mergeConfigs;
7
+ exports.createDesiredConfig = createDesiredConfig;
11
8
  exports.diffConfig = diffConfig;
9
+ exports.mergeConfigs = mergeConfigs;
12
10
  exports.prepareUpdateEnvironment = prepareUpdateEnvironment;
13
-
11
+ exports.scalingConfig = scalingConfig;
12
+ exports.scalingConfigChanged = scalingConfigChanged;
14
13
  var _lodash = require("lodash");
15
-
16
14
  var _aws = require("./aws");
17
-
18
15
  var _download = _interopRequireDefault(require("./download"));
19
-
20
16
  var _envSettings = require("./env-settings");
21
-
22
17
  var _upload = require("./upload");
23
-
24
18
  var _utils = require("./utils");
25
-
26
19
  var _versions = require("./versions");
27
-
28
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
-
20
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
21
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
22
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
23
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
24
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
25
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
30
26
  function createDesiredConfig(mupConfig, settings, longEnvVarsVersion) {
31
27
  const {
32
28
  env,
@@ -66,6 +62,10 @@ function createDesiredConfig(mupConfig, settings, longEnvVarsVersion) {
66
62
  Namespace: 'aws:autoscaling:launchconfiguration',
67
63
  OptionName: 'IamInstanceProfile',
68
64
  Value: instanceProfile
65
+ }, {
66
+ Namespace: 'aws:autoscaling:launchconfiguration',
67
+ OptionName: 'DisableIMDSv1',
68
+ Value: 'true'
69
69
  }, {
70
70
  Namespace: 'aws:elasticbeanstalk:environment:process:default',
71
71
  OptionName: 'HealthyThresholdCount',
@@ -121,7 +121,6 @@ function createDesiredConfig(mupConfig, settings, longEnvVarsVersion) {
121
121
  }]
122
122
  };
123
123
  const settingsString = JSON.stringify(settings);
124
-
125
124
  if (longEnvVarsVersion) {
126
125
  config.OptionSettings.push({
127
126
  Namespace: 'aws:elasticbeanstalk:application:environment',
@@ -139,16 +138,17 @@ function createDesiredConfig(mupConfig, settings, longEnvVarsVersion) {
139
138
  });
140
139
  });
141
140
  }
142
-
143
- const customOptions = customBeanstalkConfig.map(option => ({
144
- Namespace: option.namespace,
141
+ const customOptions = customBeanstalkConfig.map(option => _objectSpread(_objectSpread({
142
+ Namespace: option.namespace
143
+ }, option?.resource && {
144
+ ResourceName: option.resource
145
+ }), {}, {
145
146
  OptionName: option.option,
146
147
  Value: option.value
147
148
  }));
148
149
  config.OptionSettings = mergeConfigs(config.OptionSettings, customOptions);
149
150
  return config;
150
151
  }
151
-
152
152
  function scalingConfigChanged(currentConfig, mupConfig) {
153
153
  const {
154
154
  minInstances,
@@ -167,7 +167,6 @@ function scalingConfigChanged(currentConfig, mupConfig) {
167
167
  });
168
168
  return currentMinInstances !== minInstances.toString() || currentMaxInstances !== maxInstances.toString();
169
169
  }
170
-
171
170
  function scalingConfig({
172
171
  minInstances,
173
172
  maxInstances
@@ -184,21 +183,21 @@ function scalingConfig({
184
183
  }]
185
184
  };
186
185
  }
187
-
188
186
  function convertToObject(result, option) {
189
- result[`${option.Namespace}-${option.OptionName}`] = option;
187
+ const resourceKey = option.ResourceName ? `-${option.ResourceName}` : '';
188
+ const key = [`${option.Namespace}-${option.OptionName}${resourceKey}`];
189
+ result[key] = option;
190
190
  return result;
191
191
  }
192
-
193
192
  function mergeConfigs(config1, config2) {
194
193
  config1 = config1.reduce(convertToObject, {});
195
194
  config2.forEach(option => {
196
- const key = [`${option.Namespace}-${option.OptionName}`];
195
+ const resourceKey = option.ResourceName ? `-${option.ResourceName}` : '';
196
+ const key = [`${option.Namespace}-${option.OptionName}${resourceKey}`];
197
197
  config1[key] = option;
198
198
  });
199
199
  return Object.values(config1);
200
200
  }
201
-
202
201
  function diffConfig(current, desired) {
203
202
  current = current.reduce(convertToObject, {});
204
203
  desired = desired.reduce(convertToObject, {});
@@ -213,7 +212,6 @@ function diffConfig(current, desired) {
213
212
  if (key in current && current[key].Value === desired[key].Value) {
214
213
  return false;
215
214
  }
216
-
217
215
  return true;
218
216
  }).map(key => desired[key]);
219
217
  return {
@@ -221,7 +219,6 @@ function diffConfig(current, desired) {
221
219
  toUpdate
222
220
  };
223
221
  }
224
-
225
222
  async function prepareUpdateEnvironment(api) {
226
223
  const config = api.getConfig();
227
224
  const {
@@ -241,13 +238,11 @@ async function prepareUpdateEnvironment(api) {
241
238
  let nextEnvVersion = 0;
242
239
  let envSettingsChanged;
243
240
  let desiredSettings;
244
-
245
241
  if (longEnvVars) {
246
242
  const currentEnvVersion = await (0, _versions.largestEnvVersion)(api);
247
243
  const currentSettings = await (0, _download.default)(bucket, currentEnvVersion);
248
244
  desiredSettings = (0, _envSettings.createEnvFile)(config.app.env, api.getSettings());
249
245
  envSettingsChanged = currentSettings !== desiredSettings;
250
-
251
246
  if (envSettingsChanged) {
252
247
  nextEnvVersion = currentEnvVersion + 1;
253
248
  await (0, _upload.uploadEnvFile)(bucket, nextEnvVersion, desiredSettings);
@@ -255,7 +250,6 @@ async function prepareUpdateEnvironment(api) {
255
250
  nextEnvVersion = currentEnvVersion;
256
251
  }
257
252
  }
258
-
259
253
  const desiredEbConfig = createDesiredConfig(api.getConfig(), api.getSettings(), nextEnvVersion);
260
254
  const {
261
255
  toRemove,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/eb-config.js"],"names":["createDesiredConfig","mupConfig","settings","longEnvVarsVersion","env","instanceType","customBeanstalkConfig","app","instanceProfile","serviceRole","config","OptionSettings","Namespace","OptionName","Value","settingsString","JSON","stringify","push","toString","METEOR_SETTINGS_ENCODED","encodeURIComponent","Object","keys","forEach","envName","value","customOptions","map","option","namespace","mergeConfigs","scalingConfigChanged","currentConfig","minInstances","maxInstances","currentMinInstances","currentMaxInstances","item","scalingConfig","convertToObject","result","config1","config2","reduce","key","values","diffConfig","current","desired","toRemove","filter","indexOf","toUpdate","prepareUpdateEnvironment","api","getConfig","environment","bucket","ConfigurationSettings","beanstalk","describeConfigurationSettings","EnvironmentName","ApplicationName","promise","longEnvVars","nextEnvVersion","envSettingsChanged","desiredSettings","currentEnvVersion","currentSettings","getSettings","desiredEbConfig"],"mappings":"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","sourcesContent":["import { difference } from 'lodash';\nimport { beanstalk } from './aws';\nimport downloadEnvFile from './download';\nimport { createEnvFile } from './env-settings';\nimport { uploadEnvFile } from './upload';\nimport { names } from './utils';\nimport { largestEnvVersion } from './versions';\n\nexport function createDesiredConfig(mupConfig, settings, longEnvVarsVersion) {\n const {\n env,\n instanceType,\n customBeanstalkConfig = []\n } = mupConfig.app;\n const {\n instanceProfile,\n serviceRole\n } = names(mupConfig);\n\n const config = {\n OptionSettings: [{\n Namespace: 'aws:autoscaling:trigger',\n OptionName: 'MeasureName',\n Value: 'CPUUtilization'\n }, {\n Namespace: 'aws:autoscaling:trigger',\n OptionName: 'Statistic',\n Value: 'Average'\n }, {\n Namespace: 'aws:autoscaling:trigger',\n OptionName: 'Unit',\n Value: 'Percent'\n }, {\n Namespace: 'aws:autoscaling:trigger',\n OptionName: 'UpperThreshold',\n Value: '75'\n }, {\n Namespace: 'aws:autoscaling:trigger',\n OptionName: 'LowerThreshold',\n Value: '35'\n }, {\n Namespace: 'aws:autoscaling:launchconfiguration',\n OptionName: 'InstanceType',\n Value: instanceType\n }, {\n Namespace: 'aws:autoscaling:launchconfiguration',\n OptionName: 'IamInstanceProfile',\n Value: instanceProfile\n }, {\n Namespace: 'aws:elasticbeanstalk:environment:process:default',\n OptionName: 'HealthyThresholdCount',\n Value: '2'\n }, {\n Namespace: 'aws:elasticbeanstalk:environment:process:default',\n OptionName: 'HealthCheckPath',\n Value: '/aws-health-check-3984729847289743128904723'\n }, {\n Namespace: 'aws:elasticbeanstalk:environment',\n OptionName: 'EnvironmentType',\n Value: 'LoadBalanced'\n }, {\n Namespace: 'aws:elasticbeanstalk:environment',\n OptionName: 'LoadBalancerType',\n Value: 'application'\n }, {\n Namespace: 'aws:elasticbeanstalk:command',\n OptionName: 'DeploymentPolicy',\n Value: 'RollingWithAdditionalBatch'\n }, {\n Namespace: 'aws:elasticbeanstalk:command',\n OptionName: 'BatchSizeType',\n Value: 'Percentage'\n }, {\n Namespace: 'aws:elasticbeanstalk:command',\n OptionName: 'BatchSize',\n Value: '30'\n }, {\n Namespace: 'aws:autoscaling:updatepolicy:rollingupdate',\n OptionName: 'RollingUpdateEnabled',\n Value: 'true'\n }, {\n Namespace: 'aws:autoscaling:updatepolicy:rollingupdate',\n OptionName: 'RollingUpdateType',\n Value: 'Health'\n }, {\n Namespace: 'aws:elasticbeanstalk:environment',\n OptionName: 'ServiceRole',\n Value: serviceRole\n }, {\n Namespace: 'aws:elasticbeanstalk:healthreporting:system',\n OptionName: 'SystemType',\n Value: 'enhanced'\n }, {\n Namespace: 'aws:elasticbeanstalk:environment:process:default',\n OptionName: 'StickinessEnabled',\n Value: 'true'\n }, {\n Namespace: 'aws:elasticbeanstalk:environment:process:default',\n OptionName: 'DeregistrationDelay',\n Value: '75'\n }]\n };\n\n const settingsString = JSON.stringify(settings);\n\n if (longEnvVarsVersion) {\n config.OptionSettings.push({\n Namespace: 'aws:elasticbeanstalk:application:environment',\n OptionName: 'MUP_ENV_FILE_VERSION',\n Value: longEnvVarsVersion.toString()\n });\n } else {\n env.METEOR_SETTINGS_ENCODED = encodeURIComponent(settingsString);\n\n Object.keys(env).forEach((envName) => {\n const value = env[envName];\n\n config.OptionSettings.push({\n Namespace: 'aws:elasticbeanstalk:application:environment',\n OptionName: envName,\n Value: value.toString()\n });\n });\n }\n\n const customOptions = customBeanstalkConfig.map(option => ({\n Namespace: option.namespace,\n OptionName: option.option,\n Value: option.value\n }));\n\n config.OptionSettings = mergeConfigs(config.OptionSettings, customOptions);\n\n return config;\n}\n\nexport function scalingConfigChanged(currentConfig, mupConfig) {\n const {\n minInstances,\n maxInstances\n } = mupConfig.app;\n\n let currentMinInstances = 0;\n let currentMaxInstances = 0;\n\n currentConfig.forEach((item) => {\n if (item.Namespace === 'aws:autoscaling:asg') {\n if (item.OptionName === 'MinSize') {\n currentMinInstances = item.Value;\n } else if (item.OptionName === 'MaxSize') {\n currentMaxInstances = item.Value;\n }\n }\n });\n\n return currentMinInstances !== minInstances.toString() ||\n currentMaxInstances !== maxInstances.toString();\n}\n\nexport function scalingConfig({ minInstances, maxInstances }) {\n return {\n OptionSettings: [\n {\n Namespace: 'aws:autoscaling:asg',\n OptionName: 'MinSize',\n Value: minInstances.toString()\n }, {\n Namespace: 'aws:autoscaling:asg',\n OptionName: 'MaxSize',\n Value: maxInstances.toString()\n }\n ]\n };\n}\n\nexport function convertToObject(result, option) {\n result[`${option.Namespace}-${option.OptionName}`] = option;\n\n return result;\n}\n\nexport function mergeConfigs(config1, config2) {\n config1 = config1.reduce(convertToObject, {});\n\n config2.forEach((option) => {\n const key = [`${option.Namespace}-${option.OptionName}`];\n config1[key] = option;\n });\n\n return Object.values(config1);\n}\n\nexport function diffConfig(current, desired) {\n current = current.reduce(convertToObject, {});\n\n desired = desired.reduce(convertToObject, {});\n\n const toRemove = difference(Object.keys(current), Object.keys(desired))\n .filter(key => key.indexOf('aws:elasticbeanstalk:application:environment-') === 0)\n .map((key) => {\n const option = current[key];\n return {\n Namespace: option.Namespace,\n OptionName: option.OptionName\n };\n });\n\n const toUpdate = Object.keys(desired).filter((key) => {\n if (key in current && current[key].Value === desired[key].Value) {\n return false;\n }\n\n return true;\n }).map(key => desired[key]);\n\n return {\n toRemove,\n toUpdate\n };\n}\n\nexport async function prepareUpdateEnvironment(api) {\n const config = api.getConfig();\n const {\n app,\n environment,\n bucket\n } = names(config);\n const {\n ConfigurationSettings\n } = await beanstalk.describeConfigurationSettings({\n EnvironmentName: environment,\n ApplicationName: app\n }).promise();\n const { longEnvVars } = config.app;\n let nextEnvVersion = 0;\n let envSettingsChanged;\n let desiredSettings;\n\n if (longEnvVars) {\n const currentEnvVersion = await largestEnvVersion(api);\n const currentSettings = await downloadEnvFile(bucket, currentEnvVersion);\n desiredSettings = createEnvFile(config.app.env, api.getSettings());\n envSettingsChanged = currentSettings !== desiredSettings;\n if (envSettingsChanged) {\n nextEnvVersion = currentEnvVersion + 1;\n await uploadEnvFile(bucket, nextEnvVersion, desiredSettings);\n } else {\n nextEnvVersion = currentEnvVersion;\n }\n }\n const desiredEbConfig = createDesiredConfig(\n api.getConfig(),\n api.getSettings(),\n nextEnvVersion\n );\n const {\n toRemove,\n toUpdate\n } = diffConfig(\n ConfigurationSettings[0].OptionSettings,\n desiredEbConfig.OptionSettings\n );\n\n return {\n toRemove,\n toUpdate\n };\n}\n"],"file":"eb-config.js"}
1
+ {"version":3,"file":"eb-config.js","names":["_lodash","require","_aws","_download","_interopRequireDefault","_envSettings","_upload","_utils","_versions","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","createDesiredConfig","mupConfig","settings","longEnvVarsVersion","env","instanceType","customBeanstalkConfig","app","instanceProfile","serviceRole","names","config","OptionSettings","Namespace","OptionName","Value","settingsString","JSON","stringify","toString","METEOR_SETTINGS_ENCODED","encodeURIComponent","envName","customOptions","map","option","namespace","resource","ResourceName","mergeConfigs","scalingConfigChanged","currentConfig","minInstances","maxInstances","currentMinInstances","currentMaxInstances","item","scalingConfig","convertToObject","result","resourceKey","key","config1","config2","reduce","values","diffConfig","current","desired","toRemove","difference","indexOf","toUpdate","prepareUpdateEnvironment","api","getConfig","environment","bucket","ConfigurationSettings","beanstalk","describeConfigurationSettings","EnvironmentName","ApplicationName","promise","longEnvVars","nextEnvVersion","envSettingsChanged","desiredSettings","currentEnvVersion","largestEnvVersion","currentSettings","downloadEnvFile","createEnvFile","getSettings","uploadEnvFile","desiredEbConfig"],"sources":["../src/eb-config.js"],"sourcesContent":["import { difference } from 'lodash';\nimport { beanstalk } from './aws';\nimport downloadEnvFile from './download';\nimport { createEnvFile } from './env-settings';\nimport { uploadEnvFile } from './upload';\nimport { names } from './utils';\nimport { largestEnvVersion } from './versions';\n\nexport function createDesiredConfig(mupConfig, settings, longEnvVarsVersion) {\n const {\n env,\n instanceType,\n customBeanstalkConfig = []\n } = mupConfig.app;\n const {\n instanceProfile,\n serviceRole\n } = names(mupConfig);\n\n const config = {\n OptionSettings: [{\n Namespace: 'aws:autoscaling:trigger',\n OptionName: 'MeasureName',\n Value: 'CPUUtilization'\n }, {\n Namespace: 'aws:autoscaling:trigger',\n OptionName: 'Statistic',\n Value: 'Average'\n }, {\n Namespace: 'aws:autoscaling:trigger',\n OptionName: 'Unit',\n Value: 'Percent'\n }, {\n Namespace: 'aws:autoscaling:trigger',\n OptionName: 'UpperThreshold',\n Value: '75'\n }, {\n Namespace: 'aws:autoscaling:trigger',\n OptionName: 'LowerThreshold',\n Value: '35'\n }, {\n Namespace: 'aws:autoscaling:launchconfiguration',\n OptionName: 'InstanceType',\n Value: instanceType\n }, {\n Namespace: 'aws:autoscaling:launchconfiguration',\n OptionName: 'IamInstanceProfile',\n Value: instanceProfile\n }, {\n Namespace: 'aws:autoscaling:launchconfiguration',\n OptionName: 'DisableIMDSv1',\n Value: 'true'\n }, {\n Namespace: 'aws:elasticbeanstalk:environment:process:default',\n OptionName: 'HealthyThresholdCount',\n Value: '2'\n }, {\n Namespace: 'aws:elasticbeanstalk:environment:process:default',\n OptionName: 'HealthCheckPath',\n Value: '/aws-health-check-3984729847289743128904723'\n }, {\n Namespace: 'aws:elasticbeanstalk:environment',\n OptionName: 'EnvironmentType',\n Value: 'LoadBalanced'\n }, {\n Namespace: 'aws:elasticbeanstalk:environment',\n OptionName: 'LoadBalancerType',\n Value: 'application'\n }, {\n Namespace: 'aws:elasticbeanstalk:command',\n OptionName: 'DeploymentPolicy',\n Value: 'RollingWithAdditionalBatch'\n }, {\n Namespace: 'aws:elasticbeanstalk:command',\n OptionName: 'BatchSizeType',\n Value: 'Percentage'\n }, {\n Namespace: 'aws:elasticbeanstalk:command',\n OptionName: 'BatchSize',\n Value: '30'\n }, {\n Namespace: 'aws:autoscaling:updatepolicy:rollingupdate',\n OptionName: 'RollingUpdateEnabled',\n Value: 'true'\n }, {\n Namespace: 'aws:autoscaling:updatepolicy:rollingupdate',\n OptionName: 'RollingUpdateType',\n Value: 'Health'\n }, {\n Namespace: 'aws:elasticbeanstalk:environment',\n OptionName: 'ServiceRole',\n Value: serviceRole\n }, {\n Namespace: 'aws:elasticbeanstalk:healthreporting:system',\n OptionName: 'SystemType',\n Value: 'enhanced'\n }, {\n Namespace: 'aws:elasticbeanstalk:environment:process:default',\n OptionName: 'StickinessEnabled',\n Value: 'true'\n }, {\n Namespace: 'aws:elasticbeanstalk:environment:process:default',\n OptionName: 'DeregistrationDelay',\n Value: '75'\n }]\n };\n\n const settingsString = JSON.stringify(settings);\n\n if (longEnvVarsVersion) {\n config.OptionSettings.push({\n Namespace: 'aws:elasticbeanstalk:application:environment',\n OptionName: 'MUP_ENV_FILE_VERSION',\n Value: longEnvVarsVersion.toString()\n });\n } else {\n env.METEOR_SETTINGS_ENCODED = encodeURIComponent(settingsString);\n\n Object.keys(env).forEach((envName) => {\n const value = env[envName];\n\n config.OptionSettings.push({\n Namespace: 'aws:elasticbeanstalk:application:environment',\n OptionName: envName,\n Value: value.toString()\n });\n });\n }\n\n const customOptions = customBeanstalkConfig.map(option => ({\n Namespace: option.namespace,\n ...(option?.resource && { ResourceName: option.resource }),\n OptionName: option.option,\n Value: option.value\n }));\n\n config.OptionSettings = mergeConfigs(config.OptionSettings, customOptions);\n return config;\n}\n\nexport function scalingConfigChanged(currentConfig, mupConfig) {\n const {\n minInstances,\n maxInstances\n } = mupConfig.app;\n\n let currentMinInstances = 0;\n let currentMaxInstances = 0;\n\n currentConfig.forEach((item) => {\n if (item.Namespace === 'aws:autoscaling:asg') {\n if (item.OptionName === 'MinSize') {\n currentMinInstances = item.Value;\n } else if (item.OptionName === 'MaxSize') {\n currentMaxInstances = item.Value;\n }\n }\n });\n\n return currentMinInstances !== minInstances.toString() ||\n currentMaxInstances !== maxInstances.toString();\n}\n\nexport function scalingConfig({ minInstances, maxInstances }) {\n return {\n OptionSettings: [\n {\n Namespace: 'aws:autoscaling:asg',\n OptionName: 'MinSize',\n Value: minInstances.toString()\n }, {\n Namespace: 'aws:autoscaling:asg',\n OptionName: 'MaxSize',\n Value: maxInstances.toString()\n }\n ]\n };\n}\n\nexport function convertToObject(result, option) {\n const resourceKey = option.ResourceName ? `-${option.ResourceName}` : '';\n const key = [`${option.Namespace}-${option.OptionName}${resourceKey}`];\n result[key] = option;\n\n return result;\n}\n\nexport function mergeConfigs(config1, config2) {\n config1 = config1.reduce(convertToObject, {});\n\n config2.forEach((option) => {\n const resourceKey = option.ResourceName ? `-${option.ResourceName}` : '';\n const key = [`${option.Namespace}-${option.OptionName}${resourceKey}`];\n config1[key] = option;\n });\n\n return Object.values(config1);\n}\n\nexport function diffConfig(current, desired) {\n current = current.reduce(convertToObject, {});\n\n desired = desired.reduce(convertToObject, {});\n\n const toRemove = difference(Object.keys(current), Object.keys(desired))\n .filter(key => key.indexOf('aws:elasticbeanstalk:application:environment-') === 0)\n .map((key) => {\n const option = current[key];\n return {\n Namespace: option.Namespace,\n OptionName: option.OptionName\n };\n });\n\n const toUpdate = Object.keys(desired).filter((key) => {\n if (key in current && current[key].Value === desired[key].Value) {\n return false;\n }\n\n return true;\n }).map(key => desired[key]);\n\n return {\n toRemove,\n toUpdate\n };\n}\n\nexport async function prepareUpdateEnvironment(api) {\n const config = api.getConfig();\n const {\n app,\n environment,\n bucket\n } = names(config);\n const {\n ConfigurationSettings\n } = await beanstalk.describeConfigurationSettings({\n EnvironmentName: environment,\n ApplicationName: app\n }).promise();\n const { longEnvVars } = config.app;\n let nextEnvVersion = 0;\n let envSettingsChanged;\n let desiredSettings;\n\n if (longEnvVars) {\n const currentEnvVersion = await largestEnvVersion(api);\n const currentSettings = await downloadEnvFile(bucket, currentEnvVersion);\n desiredSettings = createEnvFile(config.app.env, api.getSettings());\n envSettingsChanged = currentSettings !== desiredSettings;\n if (envSettingsChanged) {\n nextEnvVersion = currentEnvVersion + 1;\n await uploadEnvFile(bucket, nextEnvVersion, desiredSettings);\n } else {\n nextEnvVersion = currentEnvVersion;\n }\n }\n const desiredEbConfig = createDesiredConfig(\n api.getConfig(),\n api.getSettings(),\n nextEnvVersion\n );\n const {\n toRemove,\n toUpdate\n } = diffConfig(\n ConfigurationSettings[0].OptionSettings,\n desiredEbConfig.OptionSettings\n );\n\n return {\n toRemove,\n toUpdate\n };\n}\n"],"mappings":"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","ignoreList":[]}
package/lib/env-ready.js CHANGED
@@ -7,13 +7,9 @@ exports.getLastEvent = getLastEvent;
7
7
  exports.showEvents = showEvents;
8
8
  exports.waitForEnvReady = waitForEnvReady;
9
9
  exports.waitForHealth = waitForHealth;
10
-
11
10
  var _utils = require("./utils");
12
-
13
11
  var _aws = require("./aws");
14
-
15
12
  var _recheck = require("./recheck");
16
-
17
13
  async function getLastEvent(config) {
18
14
  const {
19
15
  environment
@@ -26,7 +22,6 @@ async function getLastEvent(config) {
26
22
  }).promise();
27
23
  return Events[0].EventDate;
28
24
  }
29
-
30
25
  async function showEvents(config, lastEventDate) {
31
26
  const {
32
27
  environment,
@@ -43,12 +38,10 @@ async function showEvents(config, lastEventDate) {
43
38
  if (event.EventDate.toString() === lastEventDate.toString()) {
44
39
  return;
45
40
  }
46
-
47
41
  console.log(` Env Event: ${event.Message}`);
48
42
  });
49
43
  return new Date(Events[0].EventDate);
50
44
  }
51
-
52
45
  async function checker(config, prop, wantedValue, showProgress) {
53
46
  const {
54
47
  environment,
@@ -56,15 +49,12 @@ async function checker(config, prop, wantedValue, showProgress) {
56
49
  } = (0, _utils.names)(config);
57
50
  let lastEventDate = null;
58
51
  let lastStatus = null;
59
-
60
52
  if (showProgress) {
61
53
  lastEventDate = await getLastEvent(config);
62
54
  }
63
-
64
55
  return new Promise((resolve, reject) => {
65
56
  async function check() {
66
57
  let result;
67
-
68
58
  try {
69
59
  result = await _aws.beanstalk.describeEnvironments({
70
60
  EnvironmentNames: [environment],
@@ -75,13 +65,10 @@ async function checker(config, prop, wantedValue, showProgress) {
75
65
  (0, _recheck.handleThrottlingException)();
76
66
  return setTimeout(check, (0, _recheck.getRecheckInterval)());
77
67
  }
78
-
79
68
  console.log(e);
80
69
  reject(e);
81
70
  }
82
-
83
71
  const value = result.Environments[0][prop];
84
-
85
72
  if (value !== wantedValue && value !== lastStatus) {
86
73
  const text = prop === 'Health' ? `be ${wantedValue}` : `finish ${value}`;
87
74
  (0, _utils.logStep)(`=> Waiting for Beanstalk environment to ${text.toLocaleLowerCase()}`);
@@ -91,7 +78,6 @@ async function checker(config, prop, wantedValue, showProgress) {
91
78
  resolve();
92
79
  return;
93
80
  }
94
-
95
81
  if (showProgress) {
96
82
  try {
97
83
  lastEventDate = await showEvents(config, lastEventDate);
@@ -103,18 +89,14 @@ async function checker(config, prop, wantedValue, showProgress) {
103
89
  }
104
90
  }
105
91
  }
106
-
107
92
  setTimeout(check, (0, _recheck.getRecheckInterval)());
108
93
  }
109
-
110
94
  check();
111
95
  });
112
96
  }
113
-
114
97
  async function waitForEnvReady(config, showProgress) {
115
98
  await checker(config, 'Status', 'Ready', showProgress);
116
99
  }
117
-
118
100
  async function waitForHealth(config, health = 'Green', showProgress) {
119
101
  await checker(config, 'Health', health, showProgress);
120
102
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/env-ready.js"],"names":["getLastEvent","config","environment","Events","beanstalk","describeEvents","EnvironmentName","MaxRecords","promise","EventDate","showEvents","lastEventDate","app","ApplicationName","StartTime","forEach","event","toString","console","log","Message","Date","checker","prop","wantedValue","showProgress","lastStatus","Promise","resolve","reject","check","result","describeEnvironments","EnvironmentNames","e","setTimeout","value","Environments","text","toLocaleLowerCase","waitForEnvReady","waitForHealth","health"],"mappings":"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","sourcesContent":["import {\n logStep,\n names\n} from './utils';\nimport { beanstalk } from './aws';\nimport {\n getRecheckInterval,\n checkForThrottlingException,\n handleThrottlingException\n} from './recheck';\n\nexport async function getLastEvent(config) {\n const {\n environment\n } = names(config);\n\n const {\n Events\n } = await beanstalk.describeEvents({\n EnvironmentName: environment,\n MaxRecords: 5\n }).promise();\n\n return Events[0].EventDate;\n}\n\nexport async function showEvents(config, lastEventDate) {\n const {\n environment,\n app\n } = names(config);\n\n const {\n Events\n } = await beanstalk.describeEvents({\n EnvironmentName: environment,\n ApplicationName: app,\n StartTime: lastEventDate\n }).promise();\n\n Events.forEach((event) => {\n if (event.EventDate.toString() === lastEventDate.toString()) {\n return;\n }\n console.log(` Env Event: ${event.Message}`);\n });\n\n return new Date(Events[0].EventDate);\n}\n\nasync function checker(config, prop, wantedValue, showProgress) {\n const {\n environment,\n app\n } = names(config);\n\n let lastEventDate = null;\n let lastStatus = null;\n\n if (showProgress) {\n lastEventDate = await getLastEvent(config);\n }\n\n return new Promise((resolve, reject) => {\n async function check() {\n let result;\n try {\n result = await beanstalk.describeEnvironments({\n EnvironmentNames: [environment],\n ApplicationName: app\n }).promise();\n } catch (e) {\n if (checkForThrottlingException(e)) {\n handleThrottlingException();\n return setTimeout(check, getRecheckInterval());\n }\n\n console.log(e);\n reject(e);\n }\n const value = result.Environments[0][prop];\n if (value !== wantedValue && value !== lastStatus) {\n const text = prop === 'Health' ? `be ${wantedValue}` : `finish ${value}`;\n\n logStep(`=> Waiting for Beanstalk environment to ${text.toLocaleLowerCase()}`);\n lastStatus = value;\n } else if (value === wantedValue) {\n // TODO: run showEvents one last time\n resolve();\n\n return;\n }\n\n if (showProgress) {\n try {\n lastEventDate = await showEvents(config, lastEventDate);\n } catch (e) {\n if (checkForThrottlingException(e)) {\n handleThrottlingException();\n } else {\n console.log(e);\n }\n }\n }\n\n setTimeout(check, getRecheckInterval());\n }\n\n check();\n });\n}\n\nexport async function waitForEnvReady(config, showProgress) {\n await checker(config, 'Status', 'Ready', showProgress);\n}\n\nexport async function waitForHealth(config, health = 'Green', showProgress) {\n await checker(config, 'Health', health, showProgress);\n}\n"],"file":"env-ready.js"}
1
+ {"version":3,"file":"env-ready.js","names":["_utils","require","_aws","_recheck","getLastEvent","config","environment","names","Events","beanstalk","describeEvents","EnvironmentName","MaxRecords","promise","EventDate","showEvents","lastEventDate","app","ApplicationName","StartTime","forEach","event","toString","console","log","Message","Date","checker","prop","wantedValue","showProgress","lastStatus","Promise","resolve","reject","check","result","describeEnvironments","EnvironmentNames","e","checkForThrottlingException","handleThrottlingException","setTimeout","getRecheckInterval","value","Environments","text","logStep","toLocaleLowerCase","waitForEnvReady","waitForHealth","health"],"sources":["../src/env-ready.js"],"sourcesContent":["import {\n logStep,\n names\n} from './utils';\nimport { beanstalk } from './aws';\nimport {\n getRecheckInterval,\n checkForThrottlingException,\n handleThrottlingException\n} from './recheck';\n\nexport async function getLastEvent(config) {\n const {\n environment\n } = names(config);\n\n const {\n Events\n } = await beanstalk.describeEvents({\n EnvironmentName: environment,\n MaxRecords: 5\n }).promise();\n\n return Events[0].EventDate;\n}\n\nexport async function showEvents(config, lastEventDate) {\n const {\n environment,\n app\n } = names(config);\n\n const {\n Events\n } = await beanstalk.describeEvents({\n EnvironmentName: environment,\n ApplicationName: app,\n StartTime: lastEventDate\n }).promise();\n\n Events.forEach((event) => {\n if (event.EventDate.toString() === lastEventDate.toString()) {\n return;\n }\n console.log(` Env Event: ${event.Message}`);\n });\n\n return new Date(Events[0].EventDate);\n}\n\nasync function checker(config, prop, wantedValue, showProgress) {\n const {\n environment,\n app\n } = names(config);\n\n let lastEventDate = null;\n let lastStatus = null;\n\n if (showProgress) {\n lastEventDate = await getLastEvent(config);\n }\n\n return new Promise((resolve, reject) => {\n async function check() {\n let result;\n try {\n result = await beanstalk.describeEnvironments({\n EnvironmentNames: [environment],\n ApplicationName: app\n }).promise();\n } catch (e) {\n if (checkForThrottlingException(e)) {\n handleThrottlingException();\n return setTimeout(check, getRecheckInterval());\n }\n\n console.log(e);\n reject(e);\n }\n const value = result.Environments[0][prop];\n if (value !== wantedValue && value !== lastStatus) {\n const text = prop === 'Health' ? `be ${wantedValue}` : `finish ${value}`;\n\n logStep(`=> Waiting for Beanstalk environment to ${text.toLocaleLowerCase()}`);\n lastStatus = value;\n } else if (value === wantedValue) {\n // TODO: run showEvents one last time\n resolve();\n\n return;\n }\n\n if (showProgress) {\n try {\n lastEventDate = await showEvents(config, lastEventDate);\n } catch (e) {\n if (checkForThrottlingException(e)) {\n handleThrottlingException();\n } else {\n console.log(e);\n }\n }\n }\n\n setTimeout(check, getRecheckInterval());\n }\n\n check();\n });\n}\n\nexport async function waitForEnvReady(config, showProgress) {\n await checker(config, 'Status', 'Ready', showProgress);\n}\n\nexport async function waitForHealth(config, health = 'Green', showProgress) {\n await checker(config, 'Health', health, showProgress);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -4,11 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.createEnvFile = createEnvFile;
7
-
8
7
  var _shellEscape = _interopRequireDefault(require("shell-escape"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
9
  function createEnvFile(env, settings) {
13
10
  let content = '';
14
11
  const settingsString = encodeURIComponent(JSON.stringify(settings));
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/env-settings.js"],"names":["createEnvFile","env","settings","content","settingsString","encodeURIComponent","JSON","stringify","Object","keys","forEach","key","value"],"mappings":";;;;;;;AAAA;;;;AAEO,SAASA,aAAT,CAAuBC,GAAvB,EAA4BC,QAA5B,EAAsC;AAC3C,MAAIC,OAAO,GAAG,EAAd;AACA,QAAMC,cAAc,GAAGC,kBAAkB,CAACC,IAAI,CAACC,SAAL,CAAeL,QAAf,CAAD,CAAzC;AAEAM,EAAAA,MAAM,CAACC,IAAP,CAAYR,GAAZ,EAAiBS,OAAjB,CAA0BC,GAAD,IAAS;AAChC,UAAMC,KAAK,GAAG,0BAAY,CAACX,GAAG,CAACU,GAAD,CAAJ,CAAZ,CAAd;AACAR,IAAAA,OAAO,IAAK,UAASQ,GAAI,IAAGC,KAAM,IAAlC;AACD,GAHD;AAKAT,EAAAA,OAAO,IAAK,kCAAiC,0BAAY,CAACC,cAAD,CAAZ,CAA8B,EAA3E;AACA,SAAOD,OAAP;AACD","sourcesContent":["import shellEscape from 'shell-escape';\n\nexport function createEnvFile(env, settings) {\n let content = '';\n const settingsString = encodeURIComponent(JSON.stringify(settings));\n\n Object.keys(env).forEach((key) => {\n const value = shellEscape([env[key]]);\n content += `export ${key}=${value}\\n`;\n });\n\n content += `export METEOR_SETTINGS_ENCODED=${shellEscape([settingsString])}`;\n return content\n}\n"],"file":"env-settings.js"}
1
+ {"version":3,"file":"env-settings.js","names":["_shellEscape","_interopRequireDefault","require","e","__esModule","default","createEnvFile","env","settings","content","settingsString","encodeURIComponent","JSON","stringify","Object","keys","forEach","key","value","shellEscape"],"sources":["../src/env-settings.js"],"sourcesContent":["import shellEscape from 'shell-escape';\n\nexport function createEnvFile(env, settings) {\n let content = '';\n const settingsString = encodeURIComponent(JSON.stringify(settings));\n\n Object.keys(env).forEach((key) => {\n const value = shellEscape([env[key]]);\n content += `export ${key}=${value}\\n`;\n });\n\n content += `export METEOR_SETTINGS_ENCODED=${shellEscape([settingsString])}`;\n return content\n}\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAuC,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEhC,SAASG,aAAaA,CAACC,GAAG,EAAEC,QAAQ,EAAE;EAC3C,IAAIC,OAAO,GAAG,EAAE;EAChB,MAAMC,cAAc,GAAGC,kBAAkB,CAACC,IAAI,CAACC,SAAS,CAACL,QAAQ,CAAC,CAAC;EAEnEM,MAAM,CAACC,IAAI,CAACR,GAAG,CAAC,CAACS,OAAO,CAAEC,GAAG,IAAK;IAChC,MAAMC,KAAK,GAAG,IAAAC,oBAAW,EAAC,CAACZ,GAAG,CAACU,GAAG,CAAC,CAAC,CAAC;IACrCR,OAAO,IAAI,UAAUQ,GAAG,IAAIC,KAAK,IAAI;EACvC,CAAC,CAAC;EAEFT,OAAO,IAAI,kCAAkC,IAAAU,oBAAW,EAAC,CAACT,cAAc,CAAC,CAAC,EAAE;EAC5E,OAAOD,OAAO;AAChB","ignoreList":[]}
package/lib/index.js CHANGED
@@ -3,48 +3,36 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.name = exports.hooks = exports.description = exports.commands = void 0;
6
7
  exports.prepareConfig = prepareConfig;
7
- exports.hooks = exports.validate = exports.commands = exports.description = exports.name = void 0;
8
-
8
+ exports.validate = void 0;
9
9
  var _commands = _interopRequireWildcard(require("./commands"));
10
-
11
10
  var _validate = _interopRequireDefault(require("./validate"));
12
-
13
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
-
15
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
16
-
17
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
18
-
19
- const name = 'beanstalk';
20
- exports.name = name;
21
- const description = 'Deploy Meteor app to AWS Elastic Beanstalk';
22
- exports.description = description;
23
- const commands = _commands;
24
- exports.commands = commands;
25
- const validate = {
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
13
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
14
+ const name = exports.name = 'beanstalk';
15
+ const description = exports.description = 'Deploy Meteor app to AWS Elastic Beanstalk';
16
+ const commands = exports.commands = _commands;
17
+ const validate = exports.validate = {
26
18
  app(config, utils) {
27
19
  if (config.app && config.app.type === 'aws-beanstalk') {
28
20
  return (0, _validate.default)(config, utils);
29
21
  }
30
-
31
22
  return [];
32
23
  }
33
-
34
24
  };
35
- exports.validate = validate;
36
-
37
25
  function prepareConfig(config) {
38
26
  if (!config.app || config.app.type !== 'aws-beanstalk') {
39
27
  return config;
40
28
  }
41
-
42
29
  const defaultBuildOptions = {
43
30
  serverOnly: true
44
31
  };
45
- config.app.buildOptions = config.app.buildOptions || defaultBuildOptions; // This will change 0 to 1. The validator will warn when the number is 0
46
- // To have 0 instances, `mup stop` should be used
32
+ config.app.buildOptions = config.app.buildOptions || defaultBuildOptions;
47
33
 
34
+ // This will change 0 to 1. The validator will warn when the number is 0
35
+ // To have 0 instances, `mup stop` should be used
48
36
  config.app.minInstances = config.app.minInstances || 1;
49
37
  config.app.maxInstances = config.app.maxInstances || config.app.minInstances;
50
38
  config.app.instanceType = config.app.instanceType || 't2.micro';
@@ -54,18 +42,14 @@ function prepareConfig(config) {
54
42
  config.app.oldVersions = config.app.oldVersions || 3;
55
43
  return config;
56
44
  }
57
-
58
45
  function isBeanstalkApp(api) {
59
46
  const config = api.getConfig();
60
-
61
47
  if (config.app && config.app.type === 'aws-beanstalk') {
62
48
  return true;
63
49
  }
64
-
65
50
  return false;
66
51
  }
67
-
68
- const hooks = {
52
+ const hooks = exports.hooks = {
69
53
  'post.setup': api => {
70
54
  if (isBeanstalkApp(api)) {
71
55
  return api.runCommand('beanstalk.setup');
@@ -107,5 +91,4 @@ const hooks = {
107
91
  }
108
92
  }
109
93
  };
110
- exports.hooks = hooks;
111
94
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["name","description","commands","_commands","validate","app","config","utils","type","prepareConfig","defaultBuildOptions","serverOnly","buildOptions","minInstances","maxInstances","instanceType","env","PORT","METEOR_SIGTERM_GRACE_PERIOD_SECONDS","oldVersions","isBeanstalkApp","api","getConfig","hooks","runCommand"],"mappings":"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","sourcesContent":["import * as _commands from './commands';\nimport validator from './validate';\n\nexport const name = 'beanstalk';\nexport const description = 'Deploy Meteor app to AWS Elastic Beanstalk';\nexport const commands = _commands;\n\nexport const validate = {\n app(config, utils) {\n if (config.app && config.app.type === 'aws-beanstalk') {\n return validator(config, utils);\n }\n\n return [];\n }\n};\n\nexport function prepareConfig(config) {\n if (!config.app || config.app.type !== 'aws-beanstalk') {\n return config;\n }\n\n const defaultBuildOptions = {\n serverOnly: true\n };\n\n config.app.buildOptions = config.app.buildOptions || defaultBuildOptions;\n\n // This will change 0 to 1. The validator will warn when the number is 0\n // To have 0 instances, `mup stop` should be used\n config.app.minInstances = config.app.minInstances || 1;\n config.app.maxInstances = config.app.maxInstances || config.app.minInstances;\n\n config.app.instanceType = config.app.instanceType || 't2.micro';\n\n config.app.env = config.app.env || {};\n config.app.env.PORT = 8081;\n config.app.env.METEOR_SIGTERM_GRACE_PERIOD_SECONDS = 30;\n\n config.app.oldVersions = config.app.oldVersions || 3;\n\n return config;\n}\n\nfunction isBeanstalkApp(api) {\n const config = api.getConfig();\n\n if (config.app && config.app.type === 'aws-beanstalk') {\n return true;\n }\n\n return false;\n}\n\nexport const hooks = {\n 'post.setup': (api) => {\n if (isBeanstalkApp(api)) {\n return api.runCommand('beanstalk.setup');\n }\n },\n 'post.deploy': (api) => {\n if (isBeanstalkApp(api)) {\n return api.runCommand('beanstalk.deploy');\n }\n },\n 'post.logs': (api) => {\n if (isBeanstalkApp(api)) {\n return api.runCommand('beanstalk.logs');\n }\n },\n 'post.start': (api) => {\n if (isBeanstalkApp(api)) {\n return api.runCommand('beanstalk.start');\n }\n },\n 'post.stop': (api) => {\n if (isBeanstalkApp(api)) {\n return api.runCommand('beanstalk.stop');\n }\n },\n 'post.restart': (api) => {\n if (isBeanstalkApp(api)) {\n return api.runCommand('beanstalk.restart');\n }\n },\n 'post.reconfig': (api) => {\n if (isBeanstalkApp(api)) {\n return api.runCommand('beanstalk.reconfig');\n }\n },\n 'post.status': (api) => {\n if (isBeanstalkApp(api)) {\n return api.runCommand('beanstalk.status');\n }\n }\n};\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["_commands","_interopRequireWildcard","require","_validate","_interopRequireDefault","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","name","exports","description","commands","validate","app","config","utils","type","validator","prepareConfig","defaultBuildOptions","serverOnly","buildOptions","minInstances","maxInstances","instanceType","env","PORT","METEOR_SIGTERM_GRACE_PERIOD_SECONDS","oldVersions","isBeanstalkApp","api","getConfig","hooks","runCommand"],"sources":["../src/index.js"],"sourcesContent":["import * as _commands from './commands';\nimport validator from './validate';\n\nexport const name = 'beanstalk';\nexport const description = 'Deploy Meteor app to AWS Elastic Beanstalk';\nexport const commands = _commands;\n\nexport const validate = {\n app(config, utils) {\n if (config.app && config.app.type === 'aws-beanstalk') {\n return validator(config, utils);\n }\n\n return [];\n }\n};\n\nexport function prepareConfig(config) {\n if (!config.app || config.app.type !== 'aws-beanstalk') {\n return config;\n }\n\n const defaultBuildOptions = {\n serverOnly: true\n };\n\n config.app.buildOptions = config.app.buildOptions || defaultBuildOptions;\n\n // This will change 0 to 1. The validator will warn when the number is 0\n // To have 0 instances, `mup stop` should be used\n config.app.minInstances = config.app.minInstances || 1;\n config.app.maxInstances = config.app.maxInstances || config.app.minInstances;\n\n config.app.instanceType = config.app.instanceType || 't2.micro';\n\n config.app.env = config.app.env || {};\n config.app.env.PORT = 8081;\n config.app.env.METEOR_SIGTERM_GRACE_PERIOD_SECONDS = 30;\n\n config.app.oldVersions = config.app.oldVersions || 3;\n\n return config;\n}\n\nfunction isBeanstalkApp(api) {\n const config = api.getConfig();\n\n if (config.app && config.app.type === 'aws-beanstalk') {\n return true;\n }\n\n return false;\n}\n\nexport const hooks = {\n 'post.setup': (api) => {\n if (isBeanstalkApp(api)) {\n return api.runCommand('beanstalk.setup');\n }\n },\n 'post.deploy': (api) => {\n if (isBeanstalkApp(api)) {\n return api.runCommand('beanstalk.deploy');\n }\n },\n 'post.logs': (api) => {\n if (isBeanstalkApp(api)) {\n return api.runCommand('beanstalk.logs');\n }\n },\n 'post.start': (api) => {\n if (isBeanstalkApp(api)) {\n return api.runCommand('beanstalk.start');\n }\n },\n 'post.stop': (api) => {\n if (isBeanstalkApp(api)) {\n return api.runCommand('beanstalk.stop');\n }\n },\n 'post.restart': (api) => {\n if (isBeanstalkApp(api)) {\n return api.runCommand('beanstalk.restart');\n }\n },\n 'post.reconfig': (api) => {\n if (isBeanstalkApp(api)) {\n return api.runCommand('beanstalk.reconfig');\n }\n },\n 'post.status': (api) => {\n if (isBeanstalkApp(api)) {\n return api.runCommand('beanstalk.status');\n }\n }\n};\n"],"mappings":"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","ignoreList":[]}
package/lib/policies.js CHANGED
@@ -3,10 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.trailBucketPolicy = trailBucketPolicy;
6
+ exports.eventTargetRole = exports.deregisterEventTarget = exports.DeregisterEvent = void 0;
7
7
  exports.eventTargetRolePolicy = eventTargetRolePolicy;
8
- exports.gracefulShutdownAutomationDocument = exports.deregisterEventTarget = exports.DeregisterEvent = exports.passRolePolicy = exports.eventTargetRole = exports.serviceRole = exports.rolePolicy = void 0;
9
-
8
+ exports.serviceRole = exports.rolePolicy = exports.passRolePolicy = exports.gracefulShutdownAutomationDocument = void 0;
9
+ exports.trailBucketPolicy = trailBucketPolicy;
10
10
  function trailBucketPolicy(accountId, bucketName) {
11
11
  const policy = {
12
12
  Version: '2012-10-17',
@@ -35,14 +35,9 @@ function trailBucketPolicy(accountId, bucketName) {
35
35
  };
36
36
  return JSON.stringify(policy);
37
37
  }
38
-
39
- const rolePolicy = '{ "Version": "2008-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }';
40
- exports.rolePolicy = rolePolicy;
41
- const serviceRole = '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "elasticbeanstalk.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "elasticbeanstalk" } } } ] }';
42
- exports.serviceRole = serviceRole;
43
- const eventTargetRole = '{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" }, { "Effect": "Allow", "Principal": { "Service": [ "ssm.amazonaws.com", "ec2.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }';
44
- exports.eventTargetRole = eventTargetRole;
45
-
38
+ const rolePolicy = exports.rolePolicy = '{ "Version": "2008-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }';
39
+ const serviceRole = exports.serviceRole = '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "elasticbeanstalk.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "elasticbeanstalk" } } } ] }';
40
+ const eventTargetRole = exports.eventTargetRole = '{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" }, { "Effect": "Allow", "Principal": { "Service": [ "ssm.amazonaws.com", "ec2.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }';
46
41
  const passRolePolicy = (accountId, role) => {
47
42
  const policy = {
48
43
  Version: '2012-10-17',
@@ -54,9 +49,7 @@ const passRolePolicy = (accountId, role) => {
54
49
  };
55
50
  return JSON.stringify(policy);
56
51
  };
57
-
58
52
  exports.passRolePolicy = passRolePolicy;
59
-
60
53
  function eventTargetRolePolicy(accountId, env, region) {
61
54
  const policy = {
62
55
  Version: '2012-10-17',
@@ -81,10 +74,7 @@ function eventTargetRolePolicy(accountId, env, region) {
81
74
  };
82
75
  return JSON.stringify(policy);
83
76
  }
84
-
85
- const DeregisterEvent = '{ "source": [ "aws.elasticloadbalancing" ], "detail-type": [ "AWS API Call via CloudTrail" ], "detail": { "eventSource": [ "elasticloadbalancing.amazonaws.com" ], "eventName": [ "DeregisterTargets" ] } }';
86
- exports.DeregisterEvent = DeregisterEvent;
87
-
77
+ const DeregisterEvent = exports.DeregisterEvent = '{ "source": [ "aws.elasticloadbalancing" ], "detail-type": [ "AWS API Call via CloudTrail" ], "detail": { "eventSource": [ "elasticloadbalancing.amazonaws.com" ], "eventName": [ "DeregisterTargets" ] } }';
88
78
  const deregisterEventTarget = (envName, role, accountId, region) => ({
89
79
  Id: `mup-target-${envName}`,
90
80
  Arn: `arn:aws:ssm:${region}:${accountId}:automation-definition/mup-graceful-shutdown:$LATEST`,
@@ -96,9 +86,7 @@ const deregisterEventTarget = (envName, role, accountId, region) => ({
96
86
  InputTemplate: `{"InstanceId":[<instance>], "AutomationAssumeRole": ["arn:aws:iam::${accountId}:role/${role}"], "ServiceRole": ["arn:aws:iam::${accountId}:role/${role}"], "Commands": ["cd /mup_graceful_shutdown || exit 1", "ls", "PATH='/mup_graceful_shutdown'", <instance>]}`
97
87
  }
98
88
  });
99
-
100
89
  exports.deregisterEventTarget = deregisterEventTarget;
101
-
102
90
  const gracefulShutdownAutomationDocument = () => {
103
91
  const document = {
104
92
  description: 'Automation document for mup-aws-beanstalk graceful shutdown',
@@ -139,6 +127,5 @@ const gracefulShutdownAutomationDocument = () => {
139
127
  };
140
128
  return JSON.stringify(document);
141
129
  };
142
-
143
130
  exports.gracefulShutdownAutomationDocument = gracefulShutdownAutomationDocument;
144
131
  //# sourceMappingURL=policies.js.map