@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/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils.js"],"names":["logStep","message","console","log","chalk","blue","shouldRebuild","bundlePath","useCachedBuild","fs","existsSync","tmpBuildPath","appPath","api","rand","random","create","uuidNumbers","i","push","resolvePath","os","tmpdir","uuid","v4","names","config","name","app","toLowerCase","bucket","environment","envName","bundlePrefix","instanceProfile","serviceRole","trailBucketPrefix","trailName","deregisterRuleName","eventTargetRole","eventTargetPolicyName","eventTargetPassRoleName","automationDocument","createUniqueName","prefix","randomNumbers","Math","floor","Date","now","retrieveEnvironmentInfo","count","getConfig","EnvironmentInfo","beanstalk","EnvironmentName","InfoType","promise","length","Error","Promise","resolve","reject","setTimeout","then","catch","getLogs","logNames","requestEnvironmentInfo","logsForServer","reduce","result","info","Ec2InstanceId","Message","all","Object","keys","map","key","axios","get","data","parts","split","find","part","trim","startsWith","instance","getNodeVersion","star","readFileSync","toString","nodeVersionTxt","JSON","parse","npmVersion","nodeVersion","substr","selectPlatformArn","awsPlatformBranchName","PlatformBranchSummaryList","listPlatformBranches","Filters","Attribute","Operator","Values","branchName","BranchName","PlatformSummaryList","listPlatformVersions","Type","arn","PlatformArn","attachPolicies","roleName","policies","promises","forEach","policy","iam","attachRolePolicy","RoleName","PolicyArn","getAccountId","sts","getCallerIdentity","Account","ensureRoleExists","assumeRolePolicyDocument","ensureAssumeRolePolicy","exists","updateAssumeRolePolicy","Role","getRole","currentAssumeRolePolicy","decodeURIComponent","AssumeRolePolicyDocument","stringify","e","createRole","PolicyDocument","ensureInstanceProfileExists","getInstanceProfile","InstanceProfileName","createInstanceProfile","ensureRoleAdded","role","added","InstanceProfile","Roles","addRoleToInstanceProfile","ensurePoliciesAttached","AttachedPolicies","listAttachedRolePolicies","unattachedPolicies","indexOf","ensureInlinePolicyAttached","policyName","policyDocument","needsUpdating","getRolePolicy","PolicyName","currentPolicyDocument","putRolePolicy","ensureBucketExists","buckets","bucketName","region","Name","s3","createBucket","Bucket","CreateBucketConfiguration","LocationConstraint","findBucketWithPrefix","ensureBucketPolicyAttached","error","currentPolicy","Policy","getBucketPolicy","params","putBucketPolicy","ensureCloudWatchRule","description","eventPattern","cloudWatchEvents","describeRule","putRule","Description","EventPattern","ensureRuleTargetExists","ruleName","target","Targets","listTargetsByRule","Rule","_target","putTargets","coloredStatusText","envColor","text","green","yellow","red","createVersionDescription","appConfig","getBasePath","path","cwd","stdio","toUTCString","slice","ensureSsmDocument","content","ssm","getDocument","DocumentVersion","currentContent","Content","replace","createDocument","DocumentType","updateDocument","code","updateDocumentDefaultVersion","pickInstance","EnvironmentResources","describeEnvironmentResources","instanceIds","Instances","Id","id","join","selected","includes","connectToInstance","instanceId","commandLabel","sshKey","solution","Reservations","ec2","describeInstances","InstanceIds","availabilityZone","Placement","AvailabilityZone","securityGroups","SecurityGroups","g","GroupId","ipAddress","warn","ruleIds","SecurityGroupRules","authorizeSecurityGroupIngress","IpPermissions","FromPort","IpProtocol","IpRanges","CidrIp","ToPort","rule","SecurityGroupRuleId","ec2InstanceConnect","sendSSHPublicKey","InstanceId","InstanceOSUser","SSHPublicKey","publicKey","sshOptions","host","PublicDnsName","port","username","privateKey","removeSSHAccess","revokeSecurityGroupIngress","SecurityGroupRuleIds","executeSSHCommand","conn","command","exec","err","outputStream","end","output","on","stderr","once"],"mappings":"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","sourcesContent":["import axios from 'axios';\nimport chalk from 'chalk';\nimport fs from 'fs';\nimport { isEqual } from 'lodash';\nimport os from 'os';\nimport random from 'random-seed';\nimport uuid from 'uuid';\nimport { execSync } from 'child_process';\nimport { beanstalk, cloudWatchEvents, iam, s3, sts, ssm, ec2, ec2InstanceConnect } from './aws';\nimport { getRecheckInterval } from './recheck';\nimport { waitForEnvReady } from './env-ready';\n\nexport function logStep(message) {\n console.log(chalk.blue(message));\n}\n\nexport function shouldRebuild(bundlePath, useCachedBuild) {\n if (fs.existsSync(bundlePath) && useCachedBuild) {\n return false;\n }\n\n return true;\n}\n\nexport function tmpBuildPath(appPath, api) {\n const rand = random.create(appPath);\n const uuidNumbers = [];\n\n for (let i = 0; i < 16; i++) {\n uuidNumbers.push(rand(255));\n }\n\n return api.resolvePath(\n os.tmpdir(),\n `mup-meteor-${uuid.v4({ random: uuidNumbers })}`\n );\n}\n\nexport function names(config) {\n const name = config.app.name.toLowerCase();\n\n return {\n bucket: `mup-${name}`,\n environment: config.app.envName || `mup-env-${name}`,\n app: `mup-${name}`,\n bundlePrefix: `mup/bundles/${name}/`,\n instanceProfile: 'aws-elasticbeanstalk-ec2-role',\n serviceRole: 'aws-elasticbeanstalk-service-role',\n trailBucketPrefix: 'mup-graceful-shutdown-trail',\n trailName: 'mup-graceful-shutdown-trail',\n deregisterRuleName: 'mup-target-deregister',\n eventTargetRole: `mup-envoke-run-command-${name}`,\n eventTargetPolicyName: 'Invoke_Run_Command',\n eventTargetPassRoleName: 'Pass_Role',\n automationDocument: 'mup-graceful-shutdown'\n };\n}\n\nexport function createUniqueName(prefix = '') {\n const randomNumbers = Math.floor(Math.random() * 10000);\n\n return `${prefix}-${Date.now()}-${randomNumbers}`;\n}\n\nasync function retrieveEnvironmentInfo(api, count) {\n const config = api.getConfig();\n const {\n environment\n } = names(config);\n\n const {\n EnvironmentInfo\n } = await beanstalk.retrieveEnvironmentInfo({\n EnvironmentName: environment,\n InfoType: 'tail'\n }).promise();\n\n if (EnvironmentInfo.length > 0) {\n return EnvironmentInfo;\n } else if (count > 5) {\n throw new Error('No logs');\n }\n\n return new Promise((resolve, reject) => {\n setTimeout(() => {\n // The logs aren't always available, so retry until they are\n // Another option is to look for the event that says it is ready\n retrieveEnvironmentInfo(api, count + 1)\n .then(resolve)\n .catch(reject);\n }, getRecheckInterval());\n });\n}\n\nexport async function getLogs(api, logNames) {\n const config = api.getConfig();\n const {\n environment\n } = names(config);\n\n await waitForEnvReady(config, false);\n\n logStep('=> Requesting Logs');\n\n await beanstalk.requestEnvironmentInfo({\n EnvironmentName: environment,\n InfoType: 'tail'\n }).promise();\n\n const EnvironmentInfo = await retrieveEnvironmentInfo(api, 0);\n\n logStep('=> Downloading Logs');\n\n const logsForServer = EnvironmentInfo.reduce((result, info) => {\n result[info.Ec2InstanceId] = info.Message;\n\n return result;\n }, {});\n\n return Promise.all(Object.keys(logsForServer).map(key =>\n new Promise((resolve, reject) => {\n axios.get(logsForServer[key]).then(({ data }) => {\n // The separator changed with Amazon Linux 2\n let parts = data.split('----------------------------------------\\n/var/log/');\n if (parts.length === 1) {\n parts = data.split('-------------------------------------\\n/var/log/');\n }\n\n data = logNames.map(name =>\n parts.find(part => part.trim().startsWith(name)));\n\n resolve({\n data,\n instance: key\n });\n }).catch(reject);\n })));\n}\n\nexport function getNodeVersion(api, bundlePath) {\n let star = fs.readFileSync(api.resolvePath(bundlePath, 'bundle/star.json')).toString();\n const nodeVersionTxt = fs.readFileSync(api.resolvePath(bundlePath, 'bundle/.node_version.txt')).toString();\n\n star = JSON.parse(star);\n\n if (star.npmVersion) {\n return {\n nodeVersion: star.nodeVersion,\n npmVersion: star.npmVersion\n };\n }\n\n const nodeVersion = nodeVersionTxt.substr(1);\n\n if (nodeVersion.startsWith('4')) {\n return {\n nodeVersion,\n npmVersion: '4.6.1'\n };\n }\n\n return {\n nodeVersion,\n npmVersion: '3.10.5'\n };\n}\n\nexport async function selectPlatformArn(awsPlatformBranchName) {\n console.log('----> Amazon BranchName:', awsPlatformBranchName);\n\n const {\n PlatformBranchSummaryList\n } = await beanstalk.listPlatformBranches({\n Filters: [\n {\n Attribute: 'PlatformName',\n Operator: '=',\n Values: ['Node.js']\n }, {\n Attribute: 'TierType',\n Operator: '=',\n Values: ['WebServer/Standard']\n }, {\n Attribute: 'BranchName',\n Operator: 'begins_with',\n Values: [awsPlatformBranchName]\n }]\n }).promise();\n\n if (PlatformBranchSummaryList.length === 0) {\n throw new Error('Unable to find supported Node.js platform');\n }\n\n const branchName = PlatformBranchSummaryList[0].BranchName;\n console.log('----> Amazon Platform:', branchName);\n\n const {\n PlatformSummaryList\n } = await beanstalk.listPlatformVersions({\n Filters: [\n {\n Type: 'PlatformBranchName',\n Operator: '=',\n Values: [branchName]\n },\n {\n Type: 'PlatformStatus',\n Operator: '=',\n Values: ['Ready']\n }\n ]\n }).promise();\n\n const arn = PlatformSummaryList[0].PlatformArn;\n console.log('----> Amazon ARN:', arn);\n\n return arn;\n}\n\nexport async function attachPolicies(config, roleName, policies) {\n const promises = [];\n\n policies.forEach((policy) => {\n const promise = iam.attachRolePolicy({\n RoleName: roleName,\n PolicyArn: policy\n }).promise();\n\n promises.push(promise);\n });\n\n await Promise.all(promises);\n}\n\nexport function getAccountId() {\n return sts.getCallerIdentity()\n .promise()\n .then(({ Account }) => Account);\n}\n\nexport async function ensureRoleExists(name, assumeRolePolicyDocument, ensureAssumeRolePolicy) {\n let exists = true;\n let updateAssumeRolePolicy = false;\n\n try {\n const { Role } = await iam.getRole({\n RoleName: name\n }).promise();\n\n\n const currentAssumeRolePolicy = decodeURIComponent(Role.AssumeRolePolicyDocument);\n // Make the whitespace consistent with the current document\n assumeRolePolicyDocument = JSON.stringify(JSON.parse(assumeRolePolicyDocument));\n\n if (currentAssumeRolePolicy !== assumeRolePolicyDocument && ensureAssumeRolePolicy) {\n updateAssumeRolePolicy = true;\n }\n } catch (e) {\n exists = false;\n }\n\n if (!exists) {\n await iam.createRole({\n RoleName: name,\n AssumeRolePolicyDocument: assumeRolePolicyDocument\n }).promise();\n } else if (updateAssumeRolePolicy) {\n await iam.updateAssumeRolePolicy({\n RoleName: name,\n PolicyDocument: assumeRolePolicyDocument\n }).promise();\n }\n}\n\nexport async function ensureInstanceProfileExists(config, name) {\n let exists = true;\n\n try {\n await iam.getInstanceProfile({\n InstanceProfileName: name\n }).promise();\n } catch (e) {\n exists = false;\n }\n\n if (!exists) {\n await iam.createInstanceProfile({\n InstanceProfileName: name\n }).promise();\n }\n}\n\nexport async function ensureRoleAdded(config, instanceProfile, role) {\n let added = true;\n\n\n const {\n InstanceProfile\n } = await iam.getInstanceProfile({\n InstanceProfileName: instanceProfile\n }).promise();\n\n if (InstanceProfile.Roles.length === 0 || InstanceProfile.Roles[0].RoleName !== role) {\n added = false;\n }\n\n if (!added) {\n await iam.addRoleToInstanceProfile({\n InstanceProfileName: instanceProfile,\n RoleName: role\n }).promise();\n }\n}\n\nexport async function ensurePoliciesAttached(config, role, policies) {\n let {\n AttachedPolicies\n } = await iam.listAttachedRolePolicies({\n RoleName: role\n }).promise();\n\n AttachedPolicies = AttachedPolicies.map(policy => policy.PolicyArn);\n\n const unattachedPolicies = policies.reduce((result, policy) => {\n if (AttachedPolicies.indexOf(policy) === -1) {\n result.push(policy);\n }\n\n return result;\n }, []);\n\n if (unattachedPolicies.length > 0) {\n await attachPolicies(config, role, unattachedPolicies);\n }\n}\n\nexport async function ensureInlinePolicyAttached(role, policyName, policyDocument) {\n let exists = true;\n let needsUpdating = false;\n\n try {\n const result = await iam.getRolePolicy({\n RoleName: role,\n PolicyName: policyName\n }).promise();\n const currentPolicyDocument = decodeURIComponent(result.PolicyDocument);\n\n if (currentPolicyDocument !== policyDocument) {\n needsUpdating = true;\n }\n } catch (e) {\n exists = false;\n }\n\n if (!exists || needsUpdating) {\n await iam.putRolePolicy({\n RoleName: role,\n PolicyName: policyName,\n PolicyDocument: policyDocument\n }).promise();\n }\n}\n\nexport async function ensureBucketExists(buckets, bucketName, region) {\n if (!buckets.find(bucket => bucket.Name === bucketName)) {\n await s3.createBucket({\n Bucket: bucketName,\n ...(region ? {\n CreateBucketConfiguration: {\n LocationConstraint: region\n }\n } : {})\n }).promise();\n\n return true;\n }\n}\n\nexport function findBucketWithPrefix(buckets, prefix) {\n return buckets.find(bucket => bucket.Name.indexOf(prefix) === 0);\n}\n\nexport async function ensureBucketPolicyAttached(bucketName, policy) {\n let error = false;\n let currentPolicy;\n\n try {\n const { Policy } = await s3.getBucketPolicy({ Bucket: bucketName }).promise();\n currentPolicy = Policy;\n } catch (e) {\n error = true;\n }\n\n if (error || currentPolicy !== policy) {\n const params = {\n Bucket: bucketName,\n Policy: policy\n };\n\n await s3.putBucketPolicy(params).promise();\n }\n}\n\nexport async function ensureCloudWatchRule(name, description, eventPattern) {\n let error = false;\n\n try {\n await cloudWatchEvents.describeRule({ Name: name }).promise();\n } catch (e) {\n error = true;\n }\n\n if (error) {\n await cloudWatchEvents.putRule({\n Name: name,\n Description: description,\n EventPattern: eventPattern\n }).promise();\n\n return true;\n }\n\n return false;\n}\n\nexport async function ensureRuleTargetExists(ruleName, target) {\n const {\n Targets\n } = await cloudWatchEvents.listTargetsByRule({\n Rule: ruleName\n }).promise();\n\n if (!Targets.find(_target => isEqual(_target, target))) {\n const params = {\n Rule: ruleName,\n Targets: [target]\n };\n await cloudWatchEvents.putTargets(params).promise();\n\n return true;\n }\n}\n\nexport function coloredStatusText(envColor, text) {\n if (envColor === 'Green') {\n return chalk.green(text);\n } else if (envColor === 'Yellow') {\n return chalk.yellow(text);\n } else if (envColor === 'Red') {\n return chalk.red(text);\n }\n return text;\n}\n\nexport function createVersionDescription(api, appConfig) {\n const appPath = api.resolvePath(api.getBasePath(), appConfig.path);\n let description = '';\n\n try {\n description = execSync('git log -1 --pretty=%B', {\n cwd: appPath,\n stdio: 'pipe'\n }).toString();\n } catch (e) {\n description = `Deployed by Mup on ${new Date().toUTCString()}`;\n }\n return description.split('\\n')[0].slice(0, 195);\n}\n\nexport async function ensureSsmDocument(name, content) {\n let exists = true;\n let needsUpdating = false;\n\n try {\n const result = await ssm.getDocument({ Name: name, DocumentVersion: '$DEFAULT' }).promise();\n // If the document was created or edited on the AWS console, there is extra new\n // line characters and whitespace\n const currentContent = JSON.stringify(JSON.parse(result.Content.replace(/\\r?\\n|\\r/g, '')));\n if (currentContent !== content) {\n needsUpdating = true;\n }\n } catch (e) {\n exists = false;\n }\n\n if (!exists) {\n await ssm.createDocument({\n Content: content,\n Name: name,\n DocumentType: 'Automation'\n }).promise();\n\n return true;\n } else if (needsUpdating) {\n try {\n await ssm.updateDocument({\n Content: content,\n Name: name,\n DocumentVersion: '$LATEST'\n }).promise();\n } catch (e) {\n // If the latest document version has the correct content\n // then it must not be the default version. Ignore the error\n // so we can fix the default version\n if (e.code !== 'DuplicateDocumentContent') {\n throw e;\n }\n }\n\n const result = await ssm.getDocument({ Name: name, DocumentVersion: '$LATEST' }).promise();\n await ssm.updateDocumentDefaultVersion({\n DocumentVersion: result.DocumentVersion,\n Name: name\n }).promise();\n }\n}\n\nexport async function pickInstance(config, instance) {\n const {\n environment\n } = names(config);\n\n const { EnvironmentResources } = await beanstalk.describeEnvironmentResources({\n EnvironmentName: environment\n }).promise();\n const instanceIds = EnvironmentResources.Instances.map(({ Id }) => Id);\n const description = [\n 'Available instances',\n ...instanceIds.map(id => ` - ${id}`)\n ].join('\\n');\n\n return {\n selected: instanceIds.includes(instance) ? instance : null,\n description\n };\n}\n\nexport async function connectToInstance(api, instanceId, commandLabel) {\n const {\n sshKey\n } = api.getConfig().app;\n\n if (!sshKey) {\n const error = new Error('missing sshKey config');\n error.solution = 'Learn how to configure sshKey at https://github.com/zodern/mup-aws-beanstalk/blob/master/docs/index.md#meteor-shell-and-debug';\n\n throw error;\n }\n\n const { Reservations } = await ec2.describeInstances({\n InstanceIds: [\n instanceId\n ]\n }).promise();\n\n const instance = Reservations[0].Instances[0];\n const availabilityZone = instance.Placement.AvailabilityZone;\n const securityGroups = instance.SecurityGroups.map(g => g.GroupId);\n\n let { data: ipAddress } = await axios.get('https://ipv4.icanhazip.com');\n ipAddress = ipAddress.trim();\n\n if (securityGroups.length > 1) {\n console.warn('Instance has more than one security group. Please open a GitHub issue for mup-aws-beanstalk');\n }\n\n let ruleIds = [];\n\n try {\n const { SecurityGroupRules } = await ec2.authorizeSecurityGroupIngress({\n GroupId: securityGroups[0],\n IpPermissions: [\n {\n FromPort: 22,\n IpProtocol: 'tcp',\n IpRanges: [\n {\n CidrIp: `${ipAddress}/32`,\n Description: `Temporary SSH access for ${commandLabel}`\n }\n ],\n ToPort: 22\n }\n ]\n }).promise();\n\n ruleIds = SecurityGroupRules.map(rule => rule.SecurityGroupRuleId);\n } catch (e) {\n if (e.code === 'InvalidPermission.Duplicate') {\n // This rule already exists\n // TODO: should we find the rule id so we can remove it, or leave it in\n // case the user had manually added this rule?\n } else {\n throw e;\n }\n }\n\n await ec2InstanceConnect.sendSSHPublicKey({\n InstanceId: instanceId,\n AvailabilityZone: availabilityZone,\n InstanceOSUser: 'ec2-user',\n SSHPublicKey: fs.readFileSync(api.resolvePath(sshKey.publicKey), 'utf-8')\n }).promise();\n\n const sshOptions = {\n host: instance.PublicDnsName,\n port: 22,\n username: 'ec2-user',\n privateKey: fs.readFileSync(api.resolvePath(sshKey.privateKey), 'utf-8')\n };\n\n return {\n sshOptions,\n removeSSHAccess() {\n if (ruleIds.length === 0) {\n return;\n }\n\n console.log('Removing temporary security group rule for SSH');\n return ec2.revokeSecurityGroupIngress({\n GroupId: securityGroups[0],\n SecurityGroupRuleIds: ruleIds\n }).promise();\n }\n };\n}\n\nexport async function executeSSHCommand(conn, command) {\n return new Promise((resolve, reject) => {\n conn.exec(command, (err, outputStream) => {\n if (err) {\n conn.end();\n reject(err);\n\n return;\n }\n\n let output = '';\n\n outputStream.on('data', (data) => {\n output += data;\n });\n\n outputStream.stderr.on('data', (data) => {\n output += data;\n });\n\n outputStream.once('close', (code) => {\n conn.end();\n resolve({ code, output });\n });\n });\n });\n}\n"],"file":"utils.js"}
|
|
1
|
+
{"version":3,"file":"utils.js","names":["_axios","_interopRequireDefault","require","_chalk","_fs","_lodash","_os","_randomSeed","_uuid","_child_process","_aws","_recheck","_envReady","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","pkg","logStep","message","console","log","version","chalk","blue","shouldRebuild","bundlePath","useCachedBuild","fs","existsSync","tmpBuildPath","appPath","api","rand","random","create","uuidNumbers","resolvePath","os","tmpdir","uuid","v4","names","config","name","app","toLowerCase","bucket","environment","envName","bundlePrefix","instanceProfile","serviceRole","trailBucketPrefix","trailName","deregisterRuleName","eventTargetRole","eventTargetPolicyName","eventTargetPassRoleName","automationDocument","createUniqueName","prefix","randomNumbers","Math","floor","Date","now","retrieveEnvironmentInfo","count","getConfig","EnvironmentInfo","beanstalk","EnvironmentName","InfoType","promise","Error","Promise","resolve","reject","setTimeout","then","catch","getRecheckInterval","getLogs","logNames","waitForEnvReady","requestEnvironmentInfo","logsForServer","reduce","result","info","Ec2InstanceId","Message","all","map","key","axios","get","data","parts","split","find","part","trim","startsWith","instance","getNodeVersion","star","readFileSync","toString","nodeVersionTxt","JSON","parse","npmVersion","nodeVersion","substr","selectPlatformArn","awsPlatformBranchName","PlatformBranchSummaryList","listPlatformBranches","Filters","Attribute","Operator","Values","branchName","BranchName","PlatformSummaryList","listPlatformVersions","Type","arn","PlatformArn","attachPolicies","roleName","policies","promises","policy","iam","attachRolePolicy","RoleName","PolicyArn","getAccountId","sts","getCallerIdentity","Account","ensureRoleExists","assumeRolePolicyDocument","ensureAssumeRolePolicy","exists","updateAssumeRolePolicy","Role","getRole","currentAssumeRolePolicy","decodeURIComponent","AssumeRolePolicyDocument","stringify","createRole","PolicyDocument","ensureInstanceProfileExists","getInstanceProfile","InstanceProfileName","createInstanceProfile","ensureRoleAdded","role","added","InstanceProfile","Roles","addRoleToInstanceProfile","ensurePoliciesAttached","AttachedPolicies","listAttachedRolePolicies","unattachedPolicies","indexOf","ensureInlinePolicyAttached","policyName","policyDocument","needsUpdating","getRolePolicy","PolicyName","currentPolicyDocument","putRolePolicy","ensureBucketExists","buckets","bucketName","region","Name","s3","createBucket","Bucket","CreateBucketConfiguration","LocationConstraint","findBucketWithPrefix","ensureBucketPolicyAttached","error","currentPolicy","Policy","getBucketPolicy","params","putBucketPolicy","ensureCloudWatchRule","description","eventPattern","cloudWatchEvents","describeRule","putRule","Description","EventPattern","ensureRuleTargetExists","ruleName","target","Targets","listTargetsByRule","Rule","_target","isEqual","putTargets","coloredStatusText","envColor","text","green","yellow","red","createVersionDescription","appConfig","getBasePath","path","execSync","cwd","stdio","toUTCString","slice","ensureSsmDocument","content","ssm","getDocument","DocumentVersion","currentContent","Content","replace","createDocument","DocumentType","updateDocument","code","updateDocumentDefaultVersion","pickInstance","EnvironmentResources","describeEnvironmentResources","instanceIds","Instances","Id","id","join","selected","includes","connectToInstance","instanceId","commandLabel","sshKey","solution","Reservations","ec2","describeInstances","InstanceIds","availabilityZone","Placement","AvailabilityZone","securityGroups","SecurityGroups","g","GroupId","ipAddress","warn","ruleIds","SecurityGroupRules","authorizeSecurityGroupIngress","IpPermissions","FromPort","IpProtocol","IpRanges","CidrIp","ToPort","rule","SecurityGroupRuleId","ec2InstanceConnect","sendSSHPublicKey","InstanceId","InstanceOSUser","SSHPublicKey","publicKey","sshOptions","host","PublicDnsName","port","username","privateKey","removeSSHAccess","revokeSecurityGroupIngress","SecurityGroupRuleIds","executeSSHCommand","conn","command","exec","err","outputStream","end","output","on","stderr","once"],"sources":["../src/utils.js"],"sourcesContent":["import axios from 'axios';\nimport chalk from 'chalk';\nimport fs from 'fs';\nimport { isEqual } from 'lodash';\nimport os from 'os';\nimport random from 'random-seed';\nimport uuid from 'uuid';\nimport { execSync } from 'child_process';\nimport { beanstalk, cloudWatchEvents, iam, s3, sts, ssm, ec2, ec2InstanceConnect } from './aws';\nimport { getRecheckInterval } from './recheck';\nimport { waitForEnvReady } from './env-ready';\n\nconst pkg = require('../package.json'); // Adjust the path as needed\n\nexport function logStep(message) {\n console.log(`v${pkg?.version} ${chalk.blue(message)}`);\n}\n\nexport function shouldRebuild(bundlePath, useCachedBuild) {\n if (fs.existsSync(bundlePath) && useCachedBuild) {\n return false;\n }\n\n return true;\n}\n\nexport function tmpBuildPath(appPath, api) {\n const rand = random.create(appPath);\n const uuidNumbers = [];\n\n for (let i = 0; i < 16; i++) {\n uuidNumbers.push(rand(255));\n }\n\n return api.resolvePath(\n os.tmpdir(),\n `mup-meteor-${uuid.v4({ random: uuidNumbers })}`\n );\n}\n\nexport function names(config) {\n const name = config.app.name.toLowerCase();\n\n return {\n bucket: `mup-${name}`,\n environment: config.app.envName || `mup-env-${name}`,\n app: `mup-${name}`,\n bundlePrefix: `mup/bundles/${name}/`,\n instanceProfile: 'aws-elasticbeanstalk-ec2-role',\n serviceRole: 'aws-elasticbeanstalk-service-role',\n trailBucketPrefix: 'mup-graceful-shutdown-trail',\n trailName: 'mup-graceful-shutdown-trail',\n deregisterRuleName: 'mup-target-deregister',\n eventTargetRole: `mup-envoke-run-command-${name}`,\n eventTargetPolicyName: 'Invoke_Run_Command',\n eventTargetPassRoleName: 'Pass_Role',\n automationDocument: 'mup-graceful-shutdown'\n };\n}\n\nexport function createUniqueName(prefix = '') {\n const randomNumbers = Math.floor(Math.random() * 10000);\n\n return `${prefix}-${Date.now()}-${randomNumbers}`;\n}\n\nasync function retrieveEnvironmentInfo(api, count) {\n const config = api.getConfig();\n const {\n environment\n } = names(config);\n\n const {\n EnvironmentInfo\n } = await beanstalk.retrieveEnvironmentInfo({\n EnvironmentName: environment,\n InfoType: 'tail'\n }).promise();\n\n if (EnvironmentInfo.length > 0) {\n return EnvironmentInfo;\n } else if (count > 5) {\n throw new Error('No logs');\n }\n\n return new Promise((resolve, reject) => {\n setTimeout(() => {\n // The logs aren't always available, so retry until they are\n // Another option is to look for the event that says it is ready\n retrieveEnvironmentInfo(api, count + 1)\n .then(resolve)\n .catch(reject);\n }, getRecheckInterval());\n });\n}\n\nexport async function getLogs(api, logNames) {\n const config = api.getConfig();\n const {\n environment\n } = names(config);\n\n await waitForEnvReady(config, false);\n\n logStep('=> Requesting Logs');\n\n await beanstalk.requestEnvironmentInfo({\n EnvironmentName: environment,\n InfoType: 'tail'\n }).promise();\n\n const EnvironmentInfo = await retrieveEnvironmentInfo(api, 0);\n\n logStep('=> Downloading Logs');\n\n const logsForServer = EnvironmentInfo.reduce((result, info) => {\n result[info.Ec2InstanceId] = info.Message;\n\n return result;\n }, {});\n\n return Promise.all(Object.keys(logsForServer).map(key =>\n new Promise((resolve, reject) => {\n axios.get(logsForServer[key]).then(({ data }) => {\n // The separator changed with Amazon Linux 2\n let parts = data.split('----------------------------------------\\n/var/log/');\n if (parts.length === 1) {\n parts = data.split('-------------------------------------\\n/var/log/');\n }\n\n data = logNames.map(name =>\n parts.find(part => part.trim().startsWith(name)));\n\n resolve({\n data,\n instance: key\n });\n }).catch(reject);\n })));\n}\n\nexport function getNodeVersion(api, bundlePath) {\n let star = fs.readFileSync(api.resolvePath(bundlePath, 'bundle/star.json')).toString();\n const nodeVersionTxt = fs.readFileSync(api.resolvePath(bundlePath, 'bundle/.node_version.txt')).toString();\n\n star = JSON.parse(star);\n\n if (star.npmVersion) {\n return {\n nodeVersion: star.nodeVersion,\n npmVersion: star.npmVersion\n };\n }\n\n const nodeVersion = nodeVersionTxt.substr(1);\n\n if (nodeVersion.startsWith('4')) {\n return {\n nodeVersion,\n npmVersion: '4.6.1'\n };\n }\n\n return {\n nodeVersion,\n npmVersion: '3.10.5'\n };\n}\n\nexport async function selectPlatformArn(awsPlatformBranchName) {\n console.log('----> Amazon BranchName:', awsPlatformBranchName);\n\n const {\n PlatformBranchSummaryList\n } = await beanstalk.listPlatformBranches({\n Filters: [\n {\n Attribute: 'PlatformName',\n Operator: '=',\n Values: ['Node.js']\n }, {\n Attribute: 'TierType',\n Operator: '=',\n Values: ['WebServer/Standard']\n }, {\n Attribute: 'BranchName',\n Operator: 'begins_with',\n Values: [awsPlatformBranchName]\n }]\n }).promise();\n\n if (PlatformBranchSummaryList.length === 0) {\n throw new Error('Unable to find supported Node.js platform');\n }\n\n const branchName = PlatformBranchSummaryList[0].BranchName;\n console.log('----> Amazon Platform:', branchName);\n\n const {\n PlatformSummaryList\n } = await beanstalk.listPlatformVersions({\n Filters: [\n {\n Type: 'PlatformBranchName',\n Operator: '=',\n Values: [branchName]\n },\n {\n Type: 'PlatformStatus',\n Operator: '=',\n Values: ['Ready']\n }\n ]\n }).promise();\n\n const arn = PlatformSummaryList[0].PlatformArn;\n console.log('----> Amazon ARN:', arn);\n\n return arn;\n}\n\nexport async function attachPolicies(config, roleName, policies) {\n const promises = [];\n\n policies.forEach((policy) => {\n const promise = iam.attachRolePolicy({\n RoleName: roleName,\n PolicyArn: policy\n }).promise();\n\n promises.push(promise);\n });\n\n await Promise.all(promises);\n}\n\nexport function getAccountId() {\n return sts.getCallerIdentity()\n .promise()\n .then(({ Account }) => Account);\n}\n\nexport async function ensureRoleExists(name, assumeRolePolicyDocument, ensureAssumeRolePolicy) {\n let exists = true;\n let updateAssumeRolePolicy = false;\n\n try {\n const { Role } = await iam.getRole({\n RoleName: name\n }).promise();\n\n\n const currentAssumeRolePolicy = decodeURIComponent(Role.AssumeRolePolicyDocument);\n // Make the whitespace consistent with the current document\n assumeRolePolicyDocument = JSON.stringify(JSON.parse(assumeRolePolicyDocument));\n\n if (currentAssumeRolePolicy !== assumeRolePolicyDocument && ensureAssumeRolePolicy) {\n updateAssumeRolePolicy = true;\n }\n } catch (e) {\n exists = false;\n }\n\n if (!exists) {\n await iam.createRole({\n RoleName: name,\n AssumeRolePolicyDocument: assumeRolePolicyDocument\n }).promise();\n } else if (updateAssumeRolePolicy) {\n await iam.updateAssumeRolePolicy({\n RoleName: name,\n PolicyDocument: assumeRolePolicyDocument\n }).promise();\n }\n}\n\nexport async function ensureInstanceProfileExists(config, name) {\n let exists = true;\n\n try {\n await iam.getInstanceProfile({\n InstanceProfileName: name\n }).promise();\n } catch (e) {\n exists = false;\n }\n\n if (!exists) {\n await iam.createInstanceProfile({\n InstanceProfileName: name\n }).promise();\n }\n}\n\nexport async function ensureRoleAdded(config, instanceProfile, role) {\n let added = true;\n\n\n const {\n InstanceProfile\n } = await iam.getInstanceProfile({\n InstanceProfileName: instanceProfile\n }).promise();\n\n if (InstanceProfile.Roles.length === 0 || InstanceProfile.Roles[0].RoleName !== role) {\n added = false;\n }\n\n if (!added) {\n await iam.addRoleToInstanceProfile({\n InstanceProfileName: instanceProfile,\n RoleName: role\n }).promise();\n }\n}\n\nexport async function ensurePoliciesAttached(config, role, policies) {\n let {\n AttachedPolicies\n } = await iam.listAttachedRolePolicies({\n RoleName: role\n }).promise();\n\n AttachedPolicies = AttachedPolicies.map(policy => policy.PolicyArn);\n\n const unattachedPolicies = policies.reduce((result, policy) => {\n if (AttachedPolicies.indexOf(policy) === -1) {\n result.push(policy);\n }\n\n return result;\n }, []);\n\n if (unattachedPolicies.length > 0) {\n await attachPolicies(config, role, unattachedPolicies);\n }\n}\n\nexport async function ensureInlinePolicyAttached(role, policyName, policyDocument) {\n let exists = true;\n let needsUpdating = false;\n\n try {\n const result = await iam.getRolePolicy({\n RoleName: role,\n PolicyName: policyName\n }).promise();\n const currentPolicyDocument = decodeURIComponent(result.PolicyDocument);\n\n if (currentPolicyDocument !== policyDocument) {\n needsUpdating = true;\n }\n } catch (e) {\n exists = false;\n }\n\n if (!exists || needsUpdating) {\n await iam.putRolePolicy({\n RoleName: role,\n PolicyName: policyName,\n PolicyDocument: policyDocument\n }).promise();\n }\n}\n\nexport async function ensureBucketExists(buckets, bucketName, region) {\n if (!buckets.find(bucket => bucket.Name === bucketName)) {\n await s3.createBucket({\n Bucket: bucketName,\n ...(region ? {\n CreateBucketConfiguration: {\n LocationConstraint: region\n }\n } : {})\n }).promise();\n\n return true;\n }\n}\n\nexport function findBucketWithPrefix(buckets, prefix) {\n return buckets.find(bucket => bucket.Name.indexOf(prefix) === 0);\n}\n\nexport async function ensureBucketPolicyAttached(bucketName, policy) {\n let error = false;\n let currentPolicy;\n\n try {\n const { Policy } = await s3.getBucketPolicy({ Bucket: bucketName }).promise();\n currentPolicy = Policy;\n } catch (e) {\n error = true;\n }\n\n if (error || currentPolicy !== policy) {\n const params = {\n Bucket: bucketName,\n Policy: policy\n };\n\n await s3.putBucketPolicy(params).promise();\n }\n}\n\nexport async function ensureCloudWatchRule(name, description, eventPattern) {\n let error = false;\n\n try {\n await cloudWatchEvents.describeRule({ Name: name }).promise();\n } catch (e) {\n error = true;\n }\n\n if (error) {\n await cloudWatchEvents.putRule({\n Name: name,\n Description: description,\n EventPattern: eventPattern\n }).promise();\n\n return true;\n }\n\n return false;\n}\n\nexport async function ensureRuleTargetExists(ruleName, target) {\n const {\n Targets\n } = await cloudWatchEvents.listTargetsByRule({\n Rule: ruleName\n }).promise();\n\n if (!Targets.find(_target => isEqual(_target, target))) {\n const params = {\n Rule: ruleName,\n Targets: [target]\n };\n await cloudWatchEvents.putTargets(params).promise();\n\n return true;\n }\n}\n\nexport function coloredStatusText(envColor, text) {\n if (envColor === 'Green') {\n return chalk.green(text);\n } else if (envColor === 'Yellow') {\n return chalk.yellow(text);\n } else if (envColor === 'Red') {\n return chalk.red(text);\n }\n return text;\n}\n\nexport function createVersionDescription(api, appConfig) {\n const appPath = api.resolvePath(api.getBasePath(), appConfig.path);\n let description = '';\n\n try {\n description = execSync('git log -1 --pretty=%B', {\n cwd: appPath,\n stdio: 'pipe'\n }).toString();\n } catch (e) {\n description = `Deployed by Mup on ${new Date().toUTCString()}`;\n }\n return description.split('\\n')[0].slice(0, 195);\n}\n\nexport async function ensureSsmDocument(name, content) {\n let exists = true;\n let needsUpdating = false;\n\n try {\n const result = await ssm.getDocument({ Name: name, DocumentVersion: '$DEFAULT' }).promise();\n // If the document was created or edited on the AWS console, there is extra new\n // line characters and whitespace\n const currentContent = JSON.stringify(JSON.parse(result.Content.replace(/\\r?\\n|\\r/g, '')));\n if (currentContent !== content) {\n needsUpdating = true;\n }\n } catch (e) {\n exists = false;\n }\n\n if (!exists) {\n await ssm.createDocument({\n Content: content,\n Name: name,\n DocumentType: 'Automation'\n }).promise();\n\n return true;\n } else if (needsUpdating) {\n try {\n await ssm.updateDocument({\n Content: content,\n Name: name,\n DocumentVersion: '$LATEST'\n }).promise();\n } catch (e) {\n // If the latest document version has the correct content\n // then it must not be the default version. Ignore the error\n // so we can fix the default version\n if (e.code !== 'DuplicateDocumentContent') {\n throw e;\n }\n }\n\n const result = await ssm.getDocument({ Name: name, DocumentVersion: '$LATEST' }).promise();\n await ssm.updateDocumentDefaultVersion({\n DocumentVersion: result.DocumentVersion,\n Name: name\n }).promise();\n }\n}\n\nexport async function pickInstance(config, instance) {\n const {\n environment\n } = names(config);\n\n const { EnvironmentResources } = await beanstalk.describeEnvironmentResources({\n EnvironmentName: environment\n }).promise();\n const instanceIds = EnvironmentResources.Instances.map(({ Id }) => Id);\n const description = [\n 'Available instances',\n ...instanceIds.map(id => ` - ${id}`)\n ].join('\\n');\n\n return {\n selected: instanceIds.includes(instance) ? instance : null,\n description\n };\n}\n\nexport async function connectToInstance(api, instanceId, commandLabel) {\n const {\n sshKey\n } = api.getConfig().app;\n\n if (!sshKey) {\n const error = new Error('missing sshKey config');\n error.solution = 'Learn how to configure sshKey at https://github.com/zodern/mup-aws-beanstalk/blob/master/docs/index.md#meteor-shell-and-debug';\n\n throw error;\n }\n\n const { Reservations } = await ec2.describeInstances({\n InstanceIds: [\n instanceId\n ]\n }).promise();\n\n const instance = Reservations[0].Instances[0];\n const availabilityZone = instance.Placement.AvailabilityZone;\n const securityGroups = instance.SecurityGroups.map(g => g.GroupId);\n\n let { data: ipAddress } = await axios.get('https://ipv4.icanhazip.com');\n ipAddress = ipAddress.trim();\n\n if (securityGroups.length > 1) {\n console.warn('Instance has more than one security group. Please open a GitHub issue for mup-aws-beanstalk');\n }\n\n let ruleIds = [];\n\n try {\n const { SecurityGroupRules } = await ec2.authorizeSecurityGroupIngress({\n GroupId: securityGroups[0],\n IpPermissions: [\n {\n FromPort: 22,\n IpProtocol: 'tcp',\n IpRanges: [\n {\n CidrIp: `${ipAddress}/32`,\n Description: `Temporary SSH access for ${commandLabel}`\n }\n ],\n ToPort: 22\n }\n ]\n }).promise();\n\n ruleIds = SecurityGroupRules.map(rule => rule.SecurityGroupRuleId);\n } catch (e) {\n if (e.code === 'InvalidPermission.Duplicate') {\n // This rule already exists\n // TODO: should we find the rule id so we can remove it, or leave it in\n // case the user had manually added this rule?\n } else {\n throw e;\n }\n }\n\n await ec2InstanceConnect.sendSSHPublicKey({\n InstanceId: instanceId,\n AvailabilityZone: availabilityZone,\n InstanceOSUser: 'ec2-user',\n SSHPublicKey: fs.readFileSync(api.resolvePath(sshKey.publicKey), 'utf-8')\n }).promise();\n\n const sshOptions = {\n host: instance.PublicDnsName,\n port: 22,\n username: 'ec2-user',\n privateKey: fs.readFileSync(api.resolvePath(sshKey.privateKey), 'utf-8')\n };\n\n return {\n sshOptions,\n removeSSHAccess() {\n if (ruleIds.length === 0) {\n return;\n }\n\n console.log('Removing temporary security group rule for SSH');\n return ec2.revokeSecurityGroupIngress({\n GroupId: securityGroups[0],\n SecurityGroupRuleIds: ruleIds\n }).promise();\n }\n };\n}\n\nexport async function executeSSHCommand(conn, command) {\n return new Promise((resolve, reject) => {\n conn.exec(command, (err, outputStream) => {\n if (err) {\n conn.end();\n reject(err);\n\n return;\n }\n\n let output = '';\n\n outputStream.on('data', (data) => {\n output += data;\n });\n\n outputStream.stderr.on('data', (data) => {\n output += data;\n });\n\n outputStream.once('close', (code) => {\n conn.end();\n resolve({ code, output });\n });\n });\n });\n}\n"],"mappings":"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","ignoreList":[]}
|
package/lib/validate.js
CHANGED
|
@@ -4,11 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = _default;
|
|
7
|
-
|
|
8
7
|
var _joi = _interopRequireDefault(require("@hapi/joi"));
|
|
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
|
const schema = _joi.default.object().keys({
|
|
13
10
|
name: _joi.default.string().min(1).required(),
|
|
14
11
|
path: _joi.default.string().min(1).required(),
|
|
@@ -42,6 +39,7 @@ const schema = _joi.default.object().keys({
|
|
|
42
39
|
oldVersions: _joi.default.number(),
|
|
43
40
|
customBeanstalkConfig: _joi.default.array().items(_joi.default.object({
|
|
44
41
|
namespace: _joi.default.string().trim().required(),
|
|
42
|
+
resource: _joi.default.string().trim().optional(),
|
|
45
43
|
option: _joi.default.string().trim().required(),
|
|
46
44
|
value: _joi.default.string().trim().required()
|
|
47
45
|
})),
|
|
@@ -51,18 +49,15 @@ const schema = _joi.default.object().keys({
|
|
|
51
49
|
},
|
|
52
50
|
awsPlatformBranchName: _joi.default.string().min(1).required()
|
|
53
51
|
});
|
|
54
|
-
|
|
55
52
|
function _default(config, utils) {
|
|
56
53
|
let details = [];
|
|
57
54
|
details = utils.combineErrorDetails(details, _joi.default.validate(config.app, schema, utils.VALIDATE_OPTIONS));
|
|
58
|
-
|
|
59
55
|
if (config.app && config.app.name && config.app.name.length < 4) {
|
|
60
56
|
details.push({
|
|
61
57
|
message: 'must have at least 4 characters',
|
|
62
58
|
path: 'name'
|
|
63
59
|
});
|
|
64
60
|
}
|
|
65
|
-
|
|
66
61
|
return utils.addLocation(details, 'app');
|
|
67
62
|
}
|
|
68
63
|
//# sourceMappingURL=validate.js.map
|
package/lib/validate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"validate.js","names":["_joi","_interopRequireDefault","require","e","__esModule","default","schema","joi","object","keys","name","string","min","required","path","type","envName","buildOptions","serverOnly","bool","debug","buildLocation","mobileSettings","server","uri","allowIncompatibleUpdates","boolean","executable","docker","env","auth","id","secret","sslDomains","array","items","forceSSL","region","minInstances","number","maxInstances","instanceType","gracefulShutdown","longEnvVars","yumPackages","pattern","allow","oldVersions","customBeanstalkConfig","namespace","trim","resource","optional","option","value","sshKey","privateKey","publicKey","awsPlatformBranchName","_default","config","utils","details","combineErrorDetails","validate","app","VALIDATE_OPTIONS","length","push","message","addLocation"],"sources":["../src/validate.js"],"sourcesContent":["import joi from '@hapi/joi';\n\nconst schema = joi.object().keys({\n name: joi.string().min(1).required(),\n path: joi.string().min(1).required(),\n type: joi.string().required(),\n envName: joi.string().min(1),\n buildOptions: joi.object().keys({\n serverOnly: joi.bool(),\n debug: joi.bool(),\n buildLocation: joi.string(),\n mobileSettings: joi.object(),\n server: joi.string().uri(),\n allowIncompatibleUpdates: joi.boolean(),\n executable: joi.string()\n }),\n // The meteor plugin adds the docker object, which is a bug in mup\n docker: joi.object(),\n env: joi.object(),\n auth: joi.object().keys({\n id: joi.string().required(),\n secret: joi.string().required()\n }).required(),\n sslDomains: joi.array().items(joi.string()),\n forceSSL: joi.bool(),\n region: joi.string(),\n minInstances: joi.number().min(1).required(),\n maxInstances: joi.number().min(1),\n instanceType: joi.string(),\n gracefulShutdown: joi.bool(),\n longEnvVars: joi.bool(),\n yumPackages: joi.object().pattern(\n /[/s/S]*/,\n [joi.string().allow('')]\n ),\n oldVersions: joi.number(),\n customBeanstalkConfig: joi.array().items(joi.object({\n namespace: joi.string().trim().required(),\n resource: joi.string().trim().optional(),\n option: joi.string().trim().required(),\n value: joi.string().trim().required()\n })),\n sshKey: {\n privateKey: joi.string().required(),\n publicKey: joi.string().required()\n },\n awsPlatformBranchName: joi.string().min(1).required()\n});\n\nexport default function (config, utils) {\n let details = [];\n details = utils.combineErrorDetails(\n details,\n joi.validate(config.app, schema, utils.VALIDATE_OPTIONS)\n );\n if (config.app && config.app.name && config.app.name.length < 4) {\n details.push({\n message: 'must have at least 4 characters',\n path: 'name'\n });\n }\n\n return utils.addLocation(details, 'app');\n}\n"],"mappings":"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","ignoreList":[]}
|
package/lib/versions.js
CHANGED
|
@@ -4,18 +4,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.ebVersions = ebVersions;
|
|
7
|
-
exports.s3Versions = s3Versions;
|
|
8
|
-
exports.largestVersion = largestVersion;
|
|
9
7
|
exports.largestEnvVersion = largestEnvVersion;
|
|
8
|
+
exports.largestVersion = largestVersion;
|
|
10
9
|
exports.oldEnvVersions = oldEnvVersions;
|
|
11
10
|
exports.oldVersions = oldVersions;
|
|
12
|
-
|
|
11
|
+
exports.s3Versions = s3Versions;
|
|
13
12
|
var _lodash = require("lodash");
|
|
14
|
-
|
|
15
13
|
var _aws = require("./aws");
|
|
16
|
-
|
|
17
14
|
var _utils = require("./utils");
|
|
18
|
-
|
|
19
15
|
async function ebVersions(api) {
|
|
20
16
|
const config = api.getConfig();
|
|
21
17
|
const versions = [0];
|
|
@@ -25,7 +21,6 @@ async function ebVersions(api) {
|
|
|
25
21
|
const appVersions = await _aws.beanstalk.describeApplicationVersions({
|
|
26
22
|
ApplicationName: app
|
|
27
23
|
}).promise();
|
|
28
|
-
|
|
29
24
|
if (appVersions.ApplicationVersions.length > 0) {
|
|
30
25
|
appVersions.ApplicationVersions.forEach(({
|
|
31
26
|
VersionLabel
|
|
@@ -34,10 +29,8 @@ async function ebVersions(api) {
|
|
|
34
29
|
versions.push(parsedVersion);
|
|
35
30
|
});
|
|
36
31
|
}
|
|
37
|
-
|
|
38
32
|
return versions.sort((a, b) => b - a);
|
|
39
33
|
}
|
|
40
|
-
|
|
41
34
|
async function s3Versions(api, prefix) {
|
|
42
35
|
const config = api.getConfig();
|
|
43
36
|
const versions = [0];
|
|
@@ -50,28 +43,22 @@ async function s3Versions(api, prefix) {
|
|
|
50
43
|
Bucket: bucket,
|
|
51
44
|
Prefix: prefix
|
|
52
45
|
}).promise();
|
|
53
|
-
|
|
54
46
|
if (uploadedBundles.Contents.length > 0) {
|
|
55
47
|
uploadedBundles.Contents.forEach(bundle => {
|
|
56
48
|
const bundleVersion = parseInt(bundle.Key.split(prefix)[1], 10);
|
|
57
49
|
versions.push(bundleVersion);
|
|
58
50
|
});
|
|
59
51
|
}
|
|
60
|
-
|
|
61
52
|
return versions.sort((a, b) => b - a);
|
|
62
53
|
}
|
|
63
|
-
|
|
64
54
|
async function largestVersion(api) {
|
|
65
55
|
let [version] = await s3Versions(api);
|
|
66
56
|
const [appVersion] = await ebVersions(api);
|
|
67
|
-
|
|
68
57
|
if (appVersion > version) {
|
|
69
58
|
version = appVersion;
|
|
70
59
|
}
|
|
71
|
-
|
|
72
60
|
return version;
|
|
73
61
|
}
|
|
74
|
-
|
|
75
62
|
async function largestEnvVersion(api) {
|
|
76
63
|
const versions = [0];
|
|
77
64
|
const prefix = 'env/';
|
|
@@ -83,30 +70,28 @@ async function largestEnvVersion(api) {
|
|
|
83
70
|
Bucket: bucketName,
|
|
84
71
|
Prefix: prefix
|
|
85
72
|
}).promise();
|
|
86
|
-
|
|
87
73
|
if (uploadedBundles.Contents.length > 0) {
|
|
88
74
|
uploadedBundles.Contents.forEach(bundle => {
|
|
89
75
|
const bundleVersion = parseInt(bundle.Key.split(prefix)[1], 10);
|
|
90
76
|
versions.push(bundleVersion);
|
|
91
77
|
});
|
|
92
78
|
}
|
|
93
|
-
|
|
94
79
|
return versions.sort((a, b) => b - a)[0];
|
|
95
80
|
}
|
|
96
|
-
|
|
97
81
|
async function oldEnvVersions(api) {
|
|
98
82
|
const keep = 10;
|
|
99
83
|
const versions = await s3Versions(api, 'env/');
|
|
100
84
|
return versions.slice(keep);
|
|
101
85
|
}
|
|
102
|
-
|
|
103
86
|
async function oldVersions(api) {
|
|
104
87
|
const keep = api.getConfig().app.oldVersions;
|
|
105
88
|
const appVersions = await ebVersions(api);
|
|
106
|
-
const bundleVersions = await s3Versions(api);
|
|
89
|
+
const bundleVersions = await s3Versions(api);
|
|
107
90
|
|
|
108
|
-
|
|
91
|
+
// find unused bundles
|
|
92
|
+
const oldBundleVersions = (0, _lodash.difference)(bundleVersions, appVersions);
|
|
109
93
|
|
|
94
|
+
// keep the 3 newest versions
|
|
110
95
|
const oldAppVersions = appVersions.slice(keep);
|
|
111
96
|
return {
|
|
112
97
|
bundles: oldBundleVersions,
|
package/lib/versions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"versions.js","names":["_lodash","require","_aws","_utils","ebVersions","api","config","getConfig","versions","app","names","appVersions","beanstalk","describeApplicationVersions","ApplicationName","promise","ApplicationVersions","length","forEach","VersionLabel","parsedVersion","parseInt","push","sort","a","b","s3Versions","prefix","bucket","bundlePrefix","uploadedBundles","s3","listObjectsV2","Bucket","Prefix","Contents","bundle","bundleVersion","Key","split","largestVersion","version","appVersion","largestEnvVersion","bucketName","oldEnvVersions","keep","slice","oldVersions","bundleVersions","oldBundleVersions","difference","oldAppVersions","bundles"],"sources":["../src/versions.js"],"sourcesContent":["import { difference } from 'lodash';\nimport {\n beanstalk,\n s3\n} from './aws';\nimport { names } from './utils';\n\nexport async function ebVersions(api) {\n const config = api.getConfig();\n const versions = [0];\n const {\n app\n } = names(config);\n\n const appVersions = await beanstalk.describeApplicationVersions({\n ApplicationName: app\n }).promise();\n\n if (appVersions.ApplicationVersions.length > 0) {\n appVersions.ApplicationVersions.forEach(({\n VersionLabel\n }) => {\n const parsedVersion = parseInt(VersionLabel, 10);\n\n versions.push(parsedVersion);\n });\n }\n\n return versions.sort((a, b) => b - a);\n}\n\nexport async function s3Versions(api, prefix) {\n const config = api.getConfig();\n const versions = [0];\n const {\n bucket,\n bundlePrefix\n } = names(config);\n prefix = prefix || bundlePrefix;\n\n const uploadedBundles = await s3.listObjectsV2({\n Bucket: bucket,\n Prefix: prefix\n }).promise();\n\n\n if (uploadedBundles.Contents.length > 0) {\n uploadedBundles.Contents.forEach((bundle) => {\n const bundleVersion = parseInt(bundle.Key.split(prefix)[1], 10);\n\n versions.push(bundleVersion);\n });\n }\n\n return versions.sort((a, b) => b - a);\n}\n\nexport async function largestVersion(api) {\n let [version] = await s3Versions(api);\n const [appVersion] = await ebVersions(api);\n\n if (appVersion > version) {\n version = appVersion;\n }\n\n return version;\n}\n\nexport async function largestEnvVersion(api) {\n const versions = [0];\n const prefix = 'env/';\n const config = api.getConfig();\n\n const {\n bucket: bucketName\n } = names(config);\n\n const uploadedBundles = await s3.listObjectsV2({\n Bucket: bucketName,\n Prefix: prefix\n }).promise();\n\n\n if (uploadedBundles.Contents.length > 0) {\n uploadedBundles.Contents.forEach((bundle) => {\n const bundleVersion = parseInt(bundle.Key.split(prefix)[1], 10);\n\n versions.push(bundleVersion);\n });\n }\n\n return versions.sort((a, b) => b - a)[0];\n}\n\nexport async function oldEnvVersions(api) {\n const keep = 10;\n const versions = await s3Versions(api, 'env/');\n\n return versions.slice(keep);\n}\n\nexport async function oldVersions(api) {\n const keep = api.getConfig().app.oldVersions;\n const appVersions = await ebVersions(api);\n const bundleVersions = await s3Versions(api);\n\n // find unused bundles\n const oldBundleVersions = difference(bundleVersions, appVersions);\n\n // keep the 3 newest versions\n const oldAppVersions = appVersions.slice(keep);\n return {\n bundles: oldBundleVersions,\n versions: oldAppVersions\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@brunwig/mup-aws-beanstalk",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.6",
|
|
4
4
|
"description": "Deploy apps to AWS Elastic Beanstalk using Meteor Up",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -61,5 +61,6 @@
|
|
|
61
61
|
"bugs": {
|
|
62
62
|
"url": "https://github.com/Brunwig/mup-aws-beanstalk/issues"
|
|
63
63
|
},
|
|
64
|
-
"homepage": "https://github.com/Brunwig/mup-aws-beanstalk#readme"
|
|
64
|
+
"homepage": "https://github.com/Brunwig/mup-aws-beanstalk#readme",
|
|
65
|
+
"packageManager": "yarn@4.5.1"
|
|
65
66
|
}
|