Add maxmind license key (#12)

* Add MaxMindLicenseKey

* fix lint errors

* fix update
This commit is contained in:
Anders Gustafsson
2022-11-15 14:12:08 +01:00
committed by GitHub
parent 42a3109441
commit 02beda5a40
3 changed files with 31 additions and 26 deletions
@@ -39,7 +39,7 @@ const getDownloadFileFromRepoCommand = (token: string, org: string, repo: string
return `curl -o /tmp/${file} -H 'Authorization: token ${token} ' -H 'Accept: application/vnd.github.v3.raw' -O -L https://api.github.com/repos/${org}/${repo}/contents/${path}`; return `curl -o /tmp/${file} -H 'Authorization: token ${token} ' -H 'Accept: application/vnd.github.v3.raw' -O -L https://api.github.com/repos/${org}/${repo}/contents/${path}`;
} }
const getCreateStackCommand = (stackName: string, branch: string, templateFile: string, dockerImage: string, githubToken: string, composerAuth: string) => { const getCreateStackCommand = (stackName: string, branch: string, templateFile: string, dockerImage: string, githubToken: string, composerAuth: string, maxmindLicenseKey: string) => {
const stackDomain = stackName.replace('photowall-', ''); const stackDomain = stackName.replace('photowall-', '');
const cmd = [ const cmd = [
`aws cloudformation create-stack --stack-name ${stackName}`, `aws cloudformation create-stack --stack-name ${stackName}`,
@@ -65,6 +65,7 @@ const getCreateStackCommand = (stackName: string, branch: string, templateFile:
`ParameterKey=StaticCdnCertificateArn,ParameterValue=${STACK_DEFAULTS.STATIC_CDN_CERTIFICATE_ARN}`, `ParameterKey=StaticCdnCertificateArn,ParameterValue=${STACK_DEFAULTS.STATIC_CDN_CERTIFICATE_ARN}`,
`ParameterKey=AwsAccessKeyParamNameEnvironment,ParameterValue=${STACK_DEFAULTS.AWS_KEY_ENVIRONMENT}`, `ParameterKey=AwsAccessKeyParamNameEnvironment,ParameterValue=${STACK_DEFAULTS.AWS_KEY_ENVIRONMENT}`,
`ParameterKey=DatabaseSecurityGroup,ParameterValue=${STACK_DEFAULTS.DB_SECURITY_GROUP_ID}`, `ParameterKey=DatabaseSecurityGroup,ParameterValue=${STACK_DEFAULTS.DB_SECURITY_GROUP_ID}`,
`ParameterKey=MaxMindLicenseKey,ParameterValue=${maxmindLicenseKey}`,
]; ];
return cmd.join(' '); return cmd.join(' ');
@@ -196,6 +197,7 @@ module.exports = {
const awsAccountId = strings.trim(await system.run(`aws sts get-caller-identity --query Account --output text`)); const awsAccountId = strings.trim(await system.run(`aws sts get-caller-identity --query Account --output text`));
const awsRegion = strings.trim(await system.run(`aws configure get region`)); const awsRegion = strings.trim(await system.run(`aws configure get region`));
const githubToken = strings.trim(await system.run(`aws ssm get-parameter --with-decryption --name /github/CODE_PIPELINE_TOKEN --output text --query Parameter.Value`)); const githubToken = strings.trim(await system.run(`aws ssm get-parameter --with-decryption --name /github/CODE_PIPELINE_TOKEN --output text --query Parameter.Value`));
const maxmindLicenseKey = strings.trim(await system.run(`aws ssm get-parameter --with-decryption --name /maxmind/MAXMIND_LICENSE_KEY --output text --query Parameter.Value`));
print.fancy(await system.run(`aws ecr create-repository --repository ${stackName}`)); print.fancy(await system.run(`aws ecr create-repository --repository ${stackName}`));
print.fancy(await system.run(`aws ecr get-login-password --region ${awsRegion} | docker login --username AWS --password-stdin ${awsAccountId}.dkr.ecr.${awsRegion}.amazonaws.com`)); print.fancy(await system.run(`aws ecr get-login-password --region ${awsRegion} | docker login --username AWS --password-stdin ${awsAccountId}.dkr.ecr.${awsRegion}.amazonaws.com`));
@@ -208,7 +210,7 @@ module.exports = {
composerAuthToken = composerAuthToken.replace('\n', ''); composerAuthToken = composerAuthToken.replace('\n', '');
const composerAuth = `'{\\\"github-oauth\\\":{\\\"github.com\\\":\\\"${composerAuthToken}\\\"}}'`; const composerAuth = `'{\\\"github-oauth\\\":{\\\"github.com\\\":\\\"${composerAuthToken}\\\"}}'`;
const createCommand = getCreateStackCommand(stackName, branchName, 'file://ecs-service.yaml', dockerImage, githubToken, composerAuth); const createCommand = getCreateStackCommand(stackName, branchName, 'file://ecs-service.yaml', dockerImage, githubToken, composerAuth, maxmindLicenseKey);
print.fancy(await system.run(createCommand, {cwd: '/tmp/', trim: true})); print.fancy(await system.run(createCommand, {cwd: '/tmp/', trim: true}));
} }
} catch (e) { } catch (e) {
@@ -78,9 +78,9 @@ module.exports = {
const timeSince = (date: number) => { const timeSince = (date: number) => {
const now = Date.now(); const now = Date.now();
var seconds = Math.floor((now - date) / 1000); let seconds = Math.floor((now - date) / 1000);
var interval = seconds / 31536000; let interval = seconds / 31536000;
if (interval > 1) { if (interval > 1) {
return Math.floor(interval) + " years"; return Math.floor(interval) + " years";
@@ -39,7 +39,7 @@ const getLifeCyclePolicyCommand = (stackName: string, policyFile: string) => {
return `aws ecr put-lifecycle-policy --repository-name ${stackName} --lifecycle-policy-text "${policyFile}"`; return `aws ecr put-lifecycle-policy --repository-name ${stackName} --lifecycle-policy-text "${policyFile}"`;
} }
const getUpdateStackCommand = (stackName: string, branch: string, templateFile: string) => { const getUpdateStackCommand = (stackName: string, branch: string, templateFile: string, maxmindLicenseKey: string) => {
const cmd = [ const cmd = [
`aws cloudformation update-stack --stack-name ${stackName}`, `aws cloudformation update-stack --stack-name ${stackName}`,
`--template-body ${templateFile}`, `--template-body ${templateFile}`,
@@ -63,7 +63,8 @@ const getUpdateStackCommand = (stackName: string, branch: string, templateFile:
`ParameterKey=StaticCdnHostName,ParameterValue=${STACK_DEFAULTS.STATIC_CDN_HOSTNAME}`, `ParameterKey=StaticCdnHostName,ParameterValue=${STACK_DEFAULTS.STATIC_CDN_HOSTNAME}`,
`ParameterKey=StaticCdnCertificateArn,ParameterValue=${STACK_DEFAULTS.STATIC_CDN_CERTIFICATE_ARN}`, `ParameterKey=StaticCdnCertificateArn,ParameterValue=${STACK_DEFAULTS.STATIC_CDN_CERTIFICATE_ARN}`,
`ParameterKey=AwsAccessKeyParamNameEnvironment,ParameterValue=${STACK_DEFAULTS.AWS_KEY_ENVIRONMENT}`, `ParameterKey=AwsAccessKeyParamNameEnvironment,ParameterValue=${STACK_DEFAULTS.AWS_KEY_ENVIRONMENT}`,
`ParameterKey=DatabaseSecurityGroup,ParameterValue=${STACK_DEFAULTS.DB_SECURITY_GROUP_ID}` `ParameterKey=DatabaseSecurityGroup,ParameterValue=${STACK_DEFAULTS.DB_SECURITY_GROUP_ID}`,
`ParameterKey=MaxMindLicenseKey,ParameterValue=${maxmindLicenseKey}`,
]; ];
return cmd.join(' '); return cmd.join(' ');
} }
@@ -191,8 +192,10 @@ module.exports = {
const stackName = await prompt.run(); const stackName = await prompt.run();
const maxmindLicenseKey = strings.trim(await system.run(`aws ssm get-parameter --with-decryption --name /maxmind/MAXMIND_LICENSE_KEY --output text --query Parameter.Value`));
const lifeCycleCommand = getLifeCyclePolicyCommand(stackName, `file://ecr-lifecycle-policy.json`); const lifeCycleCommand = getLifeCyclePolicyCommand(stackName, `file://ecr-lifecycle-policy.json`);
const updateStackCommand = getUpdateStackCommand(stackName, branchName, `file://ecs-service.yaml`); const updateStackCommand = getUpdateStackCommand(stackName, branchName, `file://ecs-service.yaml`, maxmindLicenseKey);
const shouldRun = await getConfirmation(branchName, stackName); const shouldRun = await getConfirmation(branchName, stackName);