@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/.yarn/install-state.gz +0 -0
- package/.yarnrc.yml +1 -0
- package/lib/assets/health-check.js +1 -4
- package/lib/assets/health-check.js.map +1 -1
- package/lib/aws.js +15 -30
- package/lib/aws.js.map +1 -1
- package/lib/certificates.js +2 -9
- package/lib/certificates.js.map +1 -1
- package/lib/command-handlers.js +36 -122
- package/lib/command-handlers.js.map +1 -1
- package/lib/commands.js +19 -51
- package/lib/commands.js.map +1 -1
- package/lib/download.js +0 -4
- package/lib/download.js.map +1 -1
- package/lib/eb-config.js +24 -30
- package/lib/eb-config.js.map +1 -1
- package/lib/env-ready.js +0 -18
- package/lib/env-ready.js.map +1 -1
- package/lib/env-settings.js +1 -4
- package/lib/env-settings.js.map +1 -1
- package/lib/index.js +13 -30
- package/lib/index.js.map +1 -1
- package/lib/policies.js +7 -20
- package/lib/policies.js.map +1 -1
- package/lib/prepare-bundle.js +12 -46
- package/lib/prepare-bundle.js.map +1 -1
- package/lib/recheck.js +1 -4
- package/lib/recheck.js.map +1 -1
- package/lib/upload.js +1 -17
- package/lib/upload.js.map +1 -1
- package/lib/utils.js +33 -122
- package/lib/utils.js.map +1 -1
- package/lib/validate.js +2 -7
- package/lib/validate.js.map +1 -1
- package/lib/versions.js +6 -21
- package/lib/versions.js.map +1 -1
- package/package.json +3 -2
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.
|
|
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
|
|
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
|
-
|
|
144
|
-
|
|
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
|
-
|
|
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
|
|
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,
|
package/lib/eb-config.js.map
CHANGED
|
@@ -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
|
}
|
package/lib/env-ready.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
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":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAIA,IAAAC,IAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAMO,eAAeG,YAAYA,CAACC,MAAM,EAAE;EACzC,MAAM;IACJC;EACF,CAAC,GAAG,IAAAC,YAAK,EAACF,MAAM,CAAC;EAEjB,MAAM;IACJG;EACF,CAAC,GAAG,MAAMC,cAAS,CAACC,cAAc,CAAC;IACjCC,eAAe,EAAEL,WAAW;IAC5BM,UAAU,EAAE;EACd,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC;EAEZ,OAAOL,MAAM,CAAC,CAAC,CAAC,CAACM,SAAS;AAC5B;AAEO,eAAeC,UAAUA,CAACV,MAAM,EAAEW,aAAa,EAAE;EACtD,MAAM;IACJV,WAAW;IACXW;EACF,CAAC,GAAG,IAAAV,YAAK,EAACF,MAAM,CAAC;EAEjB,MAAM;IACJG;EACF,CAAC,GAAG,MAAMC,cAAS,CAACC,cAAc,CAAC;IACjCC,eAAe,EAAEL,WAAW;IAC5BY,eAAe,EAAED,GAAG;IACpBE,SAAS,EAAEH;EACb,CAAC,CAAC,CAACH,OAAO,CAAC,CAAC;EAEZL,MAAM,CAACY,OAAO,CAAEC,KAAK,IAAK;IACxB,IAAIA,KAAK,CAACP,SAAS,CAACQ,QAAQ,CAAC,CAAC,KAAKN,aAAa,CAACM,QAAQ,CAAC,CAAC,EAAE;MAC3D;IACF;IACAC,OAAO,CAACC,GAAG,CAAC,gBAAgBH,KAAK,CAACI,OAAO,EAAE,CAAC;EAC9C,CAAC,CAAC;EAEF,OAAO,IAAIC,IAAI,CAAClB,MAAM,CAAC,CAAC,CAAC,CAACM,SAAS,CAAC;AACtC;AAEA,eAAea,OAAOA,CAACtB,MAAM,EAAEuB,IAAI,EAAEC,WAAW,EAAEC,YAAY,EAAE;EAC9D,MAAM;IACJxB,WAAW;IACXW;EACF,CAAC,GAAG,IAAAV,YAAK,EAACF,MAAM,CAAC;EAEjB,IAAIW,aAAa,GAAG,IAAI;EACxB,IAAIe,UAAU,GAAG,IAAI;EAErB,IAAID,YAAY,EAAE;IAChBd,aAAa,GAAG,MAAMZ,YAAY,CAACC,MAAM,CAAC;EAC5C;EAEA,OAAO,IAAI2B,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;IACtC,eAAeC,KAAKA,CAAA,EAAG;MACrB,IAAIC,MAAM;MACV,IAAI;QACFA,MAAM,GAAG,MAAM3B,cAAS,CAAC4B,oBAAoB,CAAC;UAC5CC,gBAAgB,EAAE,CAAChC,WAAW,CAAC;UAC/BY,eAAe,EAAED;QACnB,CAAC,CAAC,CAACJ,OAAO,CAAC,CAAC;MACd,CAAC,CAAC,OAAO0B,CAAC,EAAE;QACV,IAAI,IAAAC,oCAA2B,EAACD,CAAC,CAAC,EAAE;UAClC,IAAAE,kCAAyB,EAAC,CAAC;UAC3B,OAAOC,UAAU,CAACP,KAAK,EAAE,IAAAQ,2BAAkB,EAAC,CAAC,CAAC;QAChD;QAEApB,OAAO,CAACC,GAAG,CAACe,CAAC,CAAC;QACdL,MAAM,CAACK,CAAC,CAAC;MACX;MACA,MAAMK,KAAK,GAAGR,MAAM,CAACS,YAAY,CAAC,CAAC,CAAC,CAACjB,IAAI,CAAC;MAC1C,IAAIgB,KAAK,KAAKf,WAAW,IAAIe,KAAK,KAAKb,UAAU,EAAE;QACjD,MAAMe,IAAI,GAAGlB,IAAI,KAAK,QAAQ,GAAG,MAAMC,WAAW,EAAE,GAAG,UAAUe,KAAK,EAAE;QAExE,IAAAG,cAAO,EAAC,2CAA2CD,IAAI,CAACE,iBAAiB,CAAC,CAAC,EAAE,CAAC;QAC9EjB,UAAU,GAAGa,KAAK;MACpB,CAAC,MAAM,IAAIA,KAAK,KAAKf,WAAW,EAAE;QAChC;QACAI,OAAO,CAAC,CAAC;QAET;MACF;MAEA,IAAIH,YAAY,EAAE;QAChB,IAAI;UACFd,aAAa,GAAG,MAAMD,UAAU,CAACV,MAAM,EAAEW,aAAa,CAAC;QACzD,CAAC,CAAC,OAAOuB,CAAC,EAAE;UACV,IAAI,IAAAC,oCAA2B,EAACD,CAAC,CAAC,EAAE;YAClC,IAAAE,kCAAyB,EAAC,CAAC;UAC7B,CAAC,MAAM;YACLlB,OAAO,CAACC,GAAG,CAACe,CAAC,CAAC;UAChB;QACF;MACF;MAEAG,UAAU,CAACP,KAAK,EAAE,IAAAQ,2BAAkB,EAAC,CAAC,CAAC;IACzC;IAEAR,KAAK,CAAC,CAAC;EACT,CAAC,CAAC;AACJ;AAEO,eAAec,eAAeA,CAAC5C,MAAM,EAAEyB,YAAY,EAAE;EAC1D,MAAMH,OAAO,CAACtB,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAEyB,YAAY,CAAC;AACxD;AAEO,eAAeoB,aAAaA,CAAC7C,MAAM,EAAE8C,MAAM,GAAG,OAAO,EAAErB,YAAY,EAAE;EAC1E,MAAMH,OAAO,CAACtB,MAAM,EAAE,QAAQ,EAAE8C,MAAM,EAAErB,YAAY,CAAC;AACvD","ignoreList":[]}
|
package/lib/env-settings.js
CHANGED
|
@@ -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));
|
package/lib/env-settings.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
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.
|
|
8
|
-
|
|
8
|
+
exports.validate = void 0;
|
|
9
9
|
var _commands = _interopRequireWildcard(require("./commands"));
|
|
10
|
-
|
|
11
10
|
var _validate = _interopRequireDefault(require("./validate"));
|
|
12
|
-
|
|
13
|
-
function
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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;
|
|
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,"
|
|
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":";;;;;;;;AAAA,IAAAA,SAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAC,sBAAA,CAAAF,OAAA;AAAmC,SAAAE,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,yBAAAH,CAAA,6BAAAI,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAD,wBAAA,YAAAA,CAAAH,CAAA,WAAAA,CAAA,GAAAM,CAAA,GAAAD,CAAA,KAAAL,CAAA;AAAA,SAAAJ,wBAAAI,CAAA,EAAAK,CAAA,SAAAA,CAAA,IAAAL,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAE,OAAA,EAAAF,CAAA,QAAAM,CAAA,GAAAH,wBAAA,CAAAE,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAC,GAAA,CAAAP,CAAA,UAAAM,CAAA,CAAAE,GAAA,CAAAR,CAAA,OAAAS,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAf,CAAA,oBAAAe,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAe,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAd,CAAA,EAAAe,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAf,CAAA,CAAAe,CAAA,YAAAN,CAAA,CAAAP,OAAA,GAAAF,CAAA,EAAAM,CAAA,IAAAA,CAAA,CAAAa,GAAA,CAAAnB,CAAA,EAAAS,CAAA,GAAAA,CAAA;AAE5B,MAAMW,IAAI,GAAAC,OAAA,CAAAD,IAAA,GAAG,WAAW;AACxB,MAAME,WAAW,GAAAD,OAAA,CAAAC,WAAA,GAAG,4CAA4C;AAChE,MAAMC,QAAQ,GAAAF,OAAA,CAAAE,QAAA,GAAG5B,SAAS;AAE1B,MAAM6B,QAAQ,GAAAH,OAAA,CAAAG,QAAA,GAAG;EACtBC,GAAGA,CAACC,MAAM,EAAEC,KAAK,EAAE;IACjB,IAAID,MAAM,CAACD,GAAG,IAAIC,MAAM,CAACD,GAAG,CAACG,IAAI,KAAK,eAAe,EAAE;MACrD,OAAO,IAAAC,iBAAS,EAACH,MAAM,EAAEC,KAAK,CAAC;IACjC;IAEA,OAAO,EAAE;EACX;AACF,CAAC;AAEM,SAASG,aAAaA,CAACJ,MAAM,EAAE;EACpC,IAAI,CAACA,MAAM,CAACD,GAAG,IAAIC,MAAM,CAACD,GAAG,CAACG,IAAI,KAAK,eAAe,EAAE;IACtD,OAAOF,MAAM;EACf;EAEA,MAAMK,mBAAmB,GAAG;IAC1BC,UAAU,EAAE;EACd,CAAC;EAEDN,MAAM,CAACD,GAAG,CAACQ,YAAY,GAAGP,MAAM,CAACD,GAAG,CAACQ,YAAY,IAAIF,mBAAmB;;EAExE;EACA;EACAL,MAAM,CAACD,GAAG,CAACS,YAAY,GAAGR,MAAM,CAACD,GAAG,CAACS,YAAY,IAAI,CAAC;EACtDR,MAAM,CAACD,GAAG,CAACU,YAAY,GAAGT,MAAM,CAACD,GAAG,CAACU,YAAY,IAAIT,MAAM,CAACD,GAAG,CAACS,YAAY;EAE5ER,MAAM,CAACD,GAAG,CAACW,YAAY,GAAGV,MAAM,CAACD,GAAG,CAACW,YAAY,IAAI,UAAU;EAE/DV,MAAM,CAACD,GAAG,CAACY,GAAG,GAAGX,MAAM,CAACD,GAAG,CAACY,GAAG,IAAI,CAAC,CAAC;EACrCX,MAAM,CAACD,GAAG,CAACY,GAAG,CAACC,IAAI,GAAG,IAAI;EAC1BZ,MAAM,CAACD,GAAG,CAACY,GAAG,CAACE,mCAAmC,GAAG,EAAE;EAEvDb,MAAM,CAACD,GAAG,CAACe,WAAW,GAAGd,MAAM,CAACD,GAAG,CAACe,WAAW,IAAI,CAAC;EAEpD,OAAOd,MAAM;AACf;AAEA,SAASe,cAAcA,CAACC,GAAG,EAAE;EAC3B,MAAMhB,MAAM,GAAGgB,GAAG,CAACC,SAAS,CAAC,CAAC;EAE9B,IAAIjB,MAAM,CAACD,GAAG,IAAIC,MAAM,CAACD,GAAG,CAACG,IAAI,KAAK,eAAe,EAAE;IACrD,OAAO,IAAI;EACb;EAEA,OAAO,KAAK;AACd;AAEO,MAAMgB,KAAK,GAAAvB,OAAA,CAAAuB,KAAA,GAAG;EACnB,YAAY,EAAGF,GAAG,IAAK;IACrB,IAAID,cAAc,CAACC,GAAG,CAAC,EAAE;MACvB,OAAOA,GAAG,CAACG,UAAU,CAAC,iBAAiB,CAAC;IAC1C;EACF,CAAC;EACD,aAAa,EAAGH,GAAG,IAAK;IACtB,IAAID,cAAc,CAACC,GAAG,CAAC,EAAE;MACvB,OAAOA,GAAG,CAACG,UAAU,CAAC,kBAAkB,CAAC;IAC3C;EACF,CAAC;EACD,WAAW,EAAGH,GAAG,IAAK;IACpB,IAAID,cAAc,CAACC,GAAG,CAAC,EAAE;MACvB,OAAOA,GAAG,CAACG,UAAU,CAAC,gBAAgB,CAAC;IACzC;EACF,CAAC;EACD,YAAY,EAAGH,GAAG,IAAK;IACrB,IAAID,cAAc,CAACC,GAAG,CAAC,EAAE;MACvB,OAAOA,GAAG,CAACG,UAAU,CAAC,iBAAiB,CAAC;IAC1C;EACF,CAAC;EACD,WAAW,EAAGH,GAAG,IAAK;IACpB,IAAID,cAAc,CAACC,GAAG,CAAC,EAAE;MACvB,OAAOA,GAAG,CAACG,UAAU,CAAC,gBAAgB,CAAC;IACzC;EACF,CAAC;EACD,cAAc,EAAGH,GAAG,IAAK;IACvB,IAAID,cAAc,CAACC,GAAG,CAAC,EAAE;MACvB,OAAOA,GAAG,CAACG,UAAU,CAAC,mBAAmB,CAAC;IAC5C;EACF,CAAC;EACD,eAAe,EAAGH,GAAG,IAAK;IACxB,IAAID,cAAc,CAACC,GAAG,CAAC,EAAE;MACvB,OAAOA,GAAG,CAACG,UAAU,CAAC,oBAAoB,CAAC;IAC7C;EACF,CAAC;EACD,aAAa,EAAGH,GAAG,IAAK;IACtB,IAAID,cAAc,CAACC,GAAG,CAAC,EAAE;MACvB,OAAOA,GAAG,CAACG,UAAU,CAAC,kBAAkB,CAAC;IAC3C;EACF;AACF,CAAC","ignoreList":[]}
|
package/lib/policies.js
CHANGED
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.eventTargetRole = exports.deregisterEventTarget = exports.DeregisterEvent = void 0;
|
|
7
7
|
exports.eventTargetRolePolicy = eventTargetRolePolicy;
|
|
8
|
-
exports.
|
|
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
|
|
40
|
-
exports.
|
|
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
|