@brunwig/mup-aws-beanstalk 0.8.7 → 2.0.3
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/.babelrc +15 -4
- package/.eslintrc.yml +2 -2
- package/.yarn/install-state.gz +0 -0
- package/docs/getting-started.md +1 -1
- package/docs/index.md +22 -6
- package/index.js +1 -1
- package/lib/assets/Procfile +1 -0
- package/lib/assets/health-check.js +9 -1
- package/lib/assets/health-check.js.map +1 -1
- package/lib/assets/nginx-server.conf +14 -0
- package/lib/assets/node.sh +37 -7
- package/lib/assets/npm.sh +14 -0
- package/lib/assets/prevent-npm.sh +4 -0
- package/lib/assets/role-start.sh +61 -0
- package/lib/assets/start.sh +1 -1
- package/lib/assets/yarn.sh +17 -0
- package/lib/aws.js +43 -77
- package/lib/aws.js.map +1 -1
- package/lib/certificates.js +56 -59
- package/lib/certificates.js.map +1 -1
- package/lib/command-handlers.js +613 -637
- package/lib/command-handlers.js.map +1 -1
- package/lib/commands.js +144 -111
- package/lib/commands.js.map +1 -1
- package/lib/deployment-logs.js +127 -0
- package/lib/deployment-logs.js.map +1 -0
- package/lib/download.js +11 -18
- package/lib/download.js.map +1 -1
- package/lib/eb-config.js +246 -242
- package/lib/eb-config.js.map +1 -1
- package/lib/env-ready.js +87 -88
- package/lib/env-ready.js.map +1 -1
- package/lib/env-settings.js +13 -14
- package/lib/env-settings.js.map +1 -1
- package/lib/index.js +111 -81
- package/lib/index.js.map +1 -1
- package/lib/policies.js +130 -115
- package/lib/policies.js.map +1 -1
- package/lib/prepare-bundle.js +187 -194
- package/lib/prepare-bundle.js.map +1 -1
- package/lib/recheck.js +16 -13
- package/lib/recheck.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -0
- package/lib/types.js +3 -0
- package/lib/types.js.map +1 -0
- package/lib/upload.js +35 -49
- package/lib/upload.js.map +1 -1
- package/lib/utils.js +556 -577
- package/lib/utils.js.map +1 -1
- package/lib/validate.js +61 -59
- package/lib/validate.js.map +1 -1
- package/lib/versions.js +74 -81
- package/lib/versions.js.map +1 -1
- package/package.json +60 -26
- package/readme.md +2 -1
- package/tsconfig.json +41 -0
package/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":["_axios","_interopRequireDefault","require","_chalk","_fs","_path","_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","requestTime","infoType","getConfig","EnvironmentInfo","beanstalk","EnvironmentName","InfoType","promise","newestEntries","sampeDate","SampleTimestamp","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","downloadFullServerLogs","logsFolder","mkdirSync","latestData","filePaths","allSettled","bundleInfo","response","responseType","timestamp","toISOString","toTimeString","filename","filePath","path","join","writeFileSync","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","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","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 path from 'path';\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\n\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, requestTime = new Date(Date.now() - 60 * 60 * 1000), infoType = 'tail') {\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: infoType\n }).promise();\n\n // Filter logs by the initial request timestamp\n const newestEntries = EnvironmentInfo.filter((log) => {\n const sampeDate = new Date(log.SampleTimestamp);\n // console.log(' - ', count, sampeDate >= requestTime, sampeDate\" - \", requestTime);\n return sampeDate >= requestTime;\n });\n\n if (newestEntries.length > 0) {\n return newestEntries;\n } else if (count > 5) {\n throw new Error('No logs');\n }\n\n return new Promise((resolve, reject) => {\n setTimeout(() => {\n logStep(` - retrieveEnvironmentInfo retry [${count}]`);\n\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, requestTime, infoType)\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 async function downloadFullServerLogs(api) {\n const config = api.getConfig();\n const { environment } = names(config);\n\n // Ensure the logs folder exists\n const logsFolder = './fullLogs/';\n if (!fs.existsSync(logsFolder)) {\n fs.mkdirSync(logsFolder);\n }\n\n await waitForEnvReady(config, false);\n\n // Record the time of the request\n const requestTime = new Date();\n logStep('=> Requesting FullServerLogs');\n\n\n await beanstalk.requestEnvironmentInfo({\n EnvironmentName: environment,\n InfoType: 'bundle' // Request full logs instead of just the tail\n }).promise();\n\n const latestData = await retrieveEnvironmentInfo(api, 0, requestTime, 'bundle');\n\n logStep('=> Downloading Logs Bundle');\n if (!latestData) {\n throw new Error('No logs bundle found.');\n }\n\n const filePaths = Promise.allSettled(latestData.map(async (bundleInfo) => {\n // Download the zip file\n const response = await axios.get(bundleInfo.Message, {\n responseType: 'arraybuffer'\n });\n const timestamp = `${bundleInfo.SampleTimestamp.toISOString()\n .split('T')[0]}_${bundleInfo.SampleTimestamp.toTimeString().split(' ')[0]}`;\n\n const filename = `${timestamp}__${bundleInfo.Ec2InstanceId}.zip`;\n const filePath = path.join(logsFolder, filename);\n fs.writeFileSync(filePath, response.data);\n\n // logStep(`Logs bundle saved to ${filePath}`);\n return filePath;\n }));\n // console.log('filePaths', filePaths);\n\n return filePaths;\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":[]}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/lib/validate.js
CHANGED
|
@@ -1,63 +1,65 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.default = default_1;
|
|
7
|
+
const joi_1 = __importDefault(require("joi"));
|
|
8
|
+
const schema = joi_1.default.object().keys({
|
|
9
|
+
name: joi_1.default.string().min(1).required(),
|
|
10
|
+
path: joi_1.default.string().min(1).required(),
|
|
11
|
+
type: joi_1.default.string().required(),
|
|
12
|
+
envName: joi_1.default.string().min(1),
|
|
13
|
+
envType: joi_1.default.string().valid('webserver', 'worker'),
|
|
14
|
+
buildOptions: joi_1.default.object().keys({
|
|
15
|
+
serverOnly: joi_1.default.bool(),
|
|
16
|
+
debug: joi_1.default.bool(),
|
|
17
|
+
buildLocation: joi_1.default.string(),
|
|
18
|
+
mobileSettings: joi_1.default.object(),
|
|
19
|
+
server: joi_1.default.string().uri(),
|
|
20
|
+
allowIncompatibleUpdates: joi_1.default.boolean(),
|
|
21
|
+
executable: joi_1.default.string()
|
|
22
|
+
}),
|
|
23
|
+
// The meteor plugin adds the docker object, which is a bug in mup
|
|
24
|
+
docker: joi_1.default.object(),
|
|
25
|
+
env: joi_1.default.object(),
|
|
26
|
+
auth: joi_1.default.object().keys({
|
|
27
|
+
id: joi_1.default.string().required(),
|
|
28
|
+
secret: joi_1.default.string().required()
|
|
29
|
+
}).required(),
|
|
30
|
+
sslDomains: joi_1.default.array().items(joi_1.default.string()),
|
|
31
|
+
forceSSL: joi_1.default.bool(),
|
|
32
|
+
streamLogs: joi_1.default.bool(),
|
|
33
|
+
region: joi_1.default.string(),
|
|
34
|
+
minInstances: joi_1.default.number().min(1).required(),
|
|
35
|
+
maxInstances: joi_1.default.number().min(1),
|
|
36
|
+
instanceType: joi_1.default.string(),
|
|
37
|
+
gracefulShutdown: joi_1.default.bool(),
|
|
38
|
+
longEnvVars: joi_1.default.bool(),
|
|
39
|
+
requireInstanceRole: joi_1.default.bool(),
|
|
40
|
+
yumPackages: joi_1.default.object().pattern(/[/s/S]*/, [joi_1.default.string().allow('')]),
|
|
41
|
+
oldVersions: joi_1.default.number(),
|
|
42
|
+
customBeanstalkConfig: joi_1.default.array().items(joi_1.default.object({
|
|
43
|
+
namespace: joi_1.default.string().trim().required(),
|
|
44
|
+
resource: joi_1.default.string().trim().optional(),
|
|
45
|
+
option: joi_1.default.string().trim().required(),
|
|
46
|
+
value: joi_1.default.string().trim().required()
|
|
47
|
+
})),
|
|
48
|
+
sshKey: {
|
|
49
|
+
privateKey: joi_1.default.string().required(),
|
|
50
|
+
publicKey: joi_1.default.string().required()
|
|
51
|
+
},
|
|
52
|
+
awsPlatformBranchName: joi_1.default.string().min(1).required()
|
|
5
53
|
});
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
debug: _joi.default.bool(),
|
|
17
|
-
buildLocation: _joi.default.string(),
|
|
18
|
-
mobileSettings: _joi.default.object(),
|
|
19
|
-
server: _joi.default.string().uri(),
|
|
20
|
-
allowIncompatibleUpdates: _joi.default.boolean(),
|
|
21
|
-
executable: _joi.default.string()
|
|
22
|
-
}),
|
|
23
|
-
// The meteor plugin adds the docker object, which is a bug in mup
|
|
24
|
-
docker: _joi.default.object(),
|
|
25
|
-
env: _joi.default.object(),
|
|
26
|
-
auth: _joi.default.object().keys({
|
|
27
|
-
id: _joi.default.string().required(),
|
|
28
|
-
secret: _joi.default.string().required()
|
|
29
|
-
}).required(),
|
|
30
|
-
sslDomains: _joi.default.array().items(_joi.default.string()),
|
|
31
|
-
forceSSL: _joi.default.bool(),
|
|
32
|
-
region: _joi.default.string(),
|
|
33
|
-
minInstances: _joi.default.number().min(1).required(),
|
|
34
|
-
maxInstances: _joi.default.number().min(1),
|
|
35
|
-
instanceType: _joi.default.string(),
|
|
36
|
-
gracefulShutdown: _joi.default.bool(),
|
|
37
|
-
longEnvVars: _joi.default.bool(),
|
|
38
|
-
yumPackages: _joi.default.object().pattern(/[/s/S]*/, [_joi.default.string().allow('')]),
|
|
39
|
-
oldVersions: _joi.default.number(),
|
|
40
|
-
customBeanstalkConfig: _joi.default.array().items(_joi.default.object({
|
|
41
|
-
namespace: _joi.default.string().trim().required(),
|
|
42
|
-
resource: _joi.default.string().trim().optional(),
|
|
43
|
-
option: _joi.default.string().trim().required(),
|
|
44
|
-
value: _joi.default.string().trim().required()
|
|
45
|
-
})),
|
|
46
|
-
sshKey: {
|
|
47
|
-
privateKey: _joi.default.string().required(),
|
|
48
|
-
publicKey: _joi.default.string().required()
|
|
49
|
-
},
|
|
50
|
-
awsPlatformBranchName: _joi.default.string().min(1).required()
|
|
51
|
-
});
|
|
52
|
-
function _default(config, utils) {
|
|
53
|
-
let details = [];
|
|
54
|
-
details = utils.combineErrorDetails(details, _joi.default.validate(config.app, schema, utils.VALIDATE_OPTIONS));
|
|
55
|
-
if (config.app && config.app.name && config.app.name.length < 4) {
|
|
56
|
-
details.push({
|
|
57
|
-
message: 'must have at least 4 characters',
|
|
58
|
-
path: 'name'
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
return utils.addLocation(details, 'app');
|
|
54
|
+
function default_1(config, utils) {
|
|
55
|
+
let details = [];
|
|
56
|
+
details = utils.combineErrorDetails(details, schema.validate(config.app, utils.VALIDATE_OPTIONS));
|
|
57
|
+
if (config.app && config.app.name && config.app.name.length < 4) {
|
|
58
|
+
details.push({
|
|
59
|
+
message: 'must have at least 4 characters',
|
|
60
|
+
path: 'name'
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
return utils.addLocation(details, 'app');
|
|
62
64
|
}
|
|
63
65
|
//# sourceMappingURL=validate.js.map
|
package/lib/validate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"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"}
|
package/lib/versions.js
CHANGED
|
@@ -1,101 +1,94 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.ebVersions = ebVersions;
|
|
7
|
-
exports.
|
|
4
|
+
exports.s3Versions = s3Versions;
|
|
8
5
|
exports.largestVersion = largestVersion;
|
|
6
|
+
exports.largestEnvVersion = largestEnvVersion;
|
|
9
7
|
exports.oldEnvVersions = oldEnvVersions;
|
|
10
8
|
exports.oldVersions = oldVersions;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
var _utils = require("./utils");
|
|
9
|
+
const lodash_1 = require("lodash");
|
|
10
|
+
const aws_1 = require("./aws");
|
|
11
|
+
const utils_1 = require("./utils");
|
|
15
12
|
async function ebVersions(api) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const appVersions = await _aws.beanstalk.describeApplicationVersions({
|
|
22
|
-
ApplicationName: app
|
|
23
|
-
}).promise();
|
|
24
|
-
if (appVersions.ApplicationVersions.length > 0) {
|
|
25
|
-
appVersions.ApplicationVersions.forEach(({
|
|
26
|
-
VersionLabel
|
|
27
|
-
}) => {
|
|
28
|
-
const parsedVersion = parseInt(VersionLabel, 10);
|
|
29
|
-
versions.push(parsedVersion);
|
|
13
|
+
const config = api.getConfig();
|
|
14
|
+
const versions = [0];
|
|
15
|
+
const { app } = (0, utils_1.names)(config);
|
|
16
|
+
const appVersions = await aws_1.beanstalk.describeApplicationVersions({
|
|
17
|
+
ApplicationName: app
|
|
30
18
|
});
|
|
31
|
-
|
|
32
|
-
|
|
19
|
+
if (appVersions.ApplicationVersions
|
|
20
|
+
&& appVersions.ApplicationVersions.length > 0) {
|
|
21
|
+
appVersions.ApplicationVersions.forEach(({ VersionLabel }) => {
|
|
22
|
+
const parsedVersion = parseInt(VersionLabel || "0", 10);
|
|
23
|
+
versions.push(parsedVersion);
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
return versions.sort((a, b) => b - a);
|
|
33
27
|
}
|
|
34
|
-
async function s3Versions(api,
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
const uploadedBundles = await _aws.s3.listObjectsV2({
|
|
43
|
-
Bucket: bucket,
|
|
44
|
-
Prefix: prefix
|
|
45
|
-
}).promise();
|
|
46
|
-
if (uploadedBundles.Contents.length > 0) {
|
|
47
|
-
uploadedBundles.Contents.forEach(bundle => {
|
|
48
|
-
const bundleVersion = parseInt(bundle.Key.split(prefix)[1], 10);
|
|
49
|
-
versions.push(bundleVersion);
|
|
28
|
+
async function s3Versions(api, providedPrefix) {
|
|
29
|
+
const config = api.getConfig();
|
|
30
|
+
const versions = [0];
|
|
31
|
+
const { bucket, bundlePrefix } = (0, utils_1.names)(config);
|
|
32
|
+
const prefix = providedPrefix || bundlePrefix;
|
|
33
|
+
const uploadedBundles = await aws_1.s3.listObjects({
|
|
34
|
+
Bucket: bucket,
|
|
35
|
+
Prefix: prefix
|
|
50
36
|
});
|
|
51
|
-
|
|
52
|
-
|
|
37
|
+
if (uploadedBundles.Contents
|
|
38
|
+
&& uploadedBundles.Contents.length > 0) {
|
|
39
|
+
uploadedBundles.Contents.forEach((bundle) => {
|
|
40
|
+
if (!bundle.Key)
|
|
41
|
+
return;
|
|
42
|
+
const bundleVersion = parseInt(bundle.Key.split(prefix)[1], 10);
|
|
43
|
+
versions.push(bundleVersion);
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
return versions.sort((a, b) => b - a);
|
|
53
47
|
}
|
|
54
48
|
async function largestVersion(api) {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
49
|
+
let [version] = await s3Versions(api);
|
|
50
|
+
const [appVersion] = await ebVersions(api);
|
|
51
|
+
if (appVersion > version) {
|
|
52
|
+
version = appVersion;
|
|
53
|
+
}
|
|
54
|
+
return version;
|
|
61
55
|
}
|
|
62
56
|
async function largestEnvVersion(api) {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
Bucket: bucketName,
|
|
71
|
-
Prefix: prefix
|
|
72
|
-
}).promise();
|
|
73
|
-
if (uploadedBundles.Contents.length > 0) {
|
|
74
|
-
uploadedBundles.Contents.forEach(bundle => {
|
|
75
|
-
const bundleVersion = parseInt(bundle.Key.split(prefix)[1], 10);
|
|
76
|
-
versions.push(bundleVersion);
|
|
57
|
+
const versions = [0];
|
|
58
|
+
const prefix = 'env/';
|
|
59
|
+
const config = api.getConfig();
|
|
60
|
+
const { bucket: bucketName } = (0, utils_1.names)(config);
|
|
61
|
+
const uploadedBundles = await aws_1.s3.listObjectsV2({
|
|
62
|
+
Bucket: bucketName,
|
|
63
|
+
Prefix: prefix
|
|
77
64
|
});
|
|
78
|
-
|
|
79
|
-
|
|
65
|
+
if (uploadedBundles.Contents
|
|
66
|
+
&& uploadedBundles.Contents.length > 0) {
|
|
67
|
+
uploadedBundles.Contents.forEach((bundle) => {
|
|
68
|
+
if (!bundle.Key)
|
|
69
|
+
return;
|
|
70
|
+
const bundleVersion = parseInt(bundle.Key.split(prefix)[1], 10);
|
|
71
|
+
versions.push(bundleVersion);
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
return versions.sort((a, b) => b - a)[0];
|
|
80
75
|
}
|
|
81
76
|
async function oldEnvVersions(api) {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
77
|
+
const keep = 10;
|
|
78
|
+
const versions = await s3Versions(api, 'env/');
|
|
79
|
+
return versions.slice(keep);
|
|
85
80
|
}
|
|
86
81
|
async function oldVersions(api) {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
versions: oldAppVersions
|
|
99
|
-
};
|
|
82
|
+
const keep = api.getConfig().app.oldVersions;
|
|
83
|
+
const appVersions = await ebVersions(api);
|
|
84
|
+
const bundleVersions = await s3Versions(api);
|
|
85
|
+
// find unused bundles
|
|
86
|
+
const oldBundleVersions = (0, lodash_1.difference)(bundleVersions, appVersions);
|
|
87
|
+
// keep the 3 newest versions
|
|
88
|
+
const oldAppVersions = appVersions.slice(keep);
|
|
89
|
+
return {
|
|
90
|
+
bundles: oldBundleVersions,
|
|
91
|
+
versions: oldAppVersions
|
|
92
|
+
};
|
|
100
93
|
}
|
|
101
94
|
//# sourceMappingURL=versions.js.map
|
package/lib/versions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"versions.js","
|
|
1
|
+
{"version":3,"file":"versions.js","sourceRoot":"","sources":["../src/versions.ts"],"names":[],"mappings":"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"}
|