insert secrets dynamically, expect uniqueness to fail

pull/263/head
Frostebite 2021-05-02 02:28:58 +01:00
parent 97d1a5bb54
commit d4099caeff
3 changed files with 71 additions and 63 deletions

66
dist/index.js vendored
View File

@ -478,40 +478,44 @@ class AWS {
`;
const taskDefStackName = `${stackName}-${buildUid}`;
let taskDefCloudFormation = fs.readFileSync(`${__dirname}/cloud-formations/task-def-formation.yml`, 'utf8');
const p1string = 'p1 - input';
const p2string = 'p2 - secret';
const p3string = 'p3 - container def';
const indexp1 = taskDefCloudFormation.search(p1string) + p1string.length + '\n'.length;
const template1 = `
AWSSecretAccessKeyssss:
for (const secret of secrets) {
const p1string = 'p1 - input';
const p2string = 'p2 - secret';
const p3string = 'p3 - container def';
const indexp1 = taskDefCloudFormation.search(p1string) + p1string.length + '\n'.length;
const template1 = `
${secret.ParameterKey}:
Type: String
Default: '0'`;
taskDefCloudFormation = [
taskDefCloudFormation.slice(0, indexp1),
template1,
taskDefCloudFormation.slice(indexp1),
].join('');
const indexp2 = taskDefCloudFormation.search(p2string) + p2string.length + '\n'.length;
const template2 = `
TestSec:
Default: ''
`;
taskDefCloudFormation = [
taskDefCloudFormation.slice(0, indexp1),
template1,
taskDefCloudFormation.slice(indexp1),
].join('');
const indexp2 = taskDefCloudFormation.search(p2string) + p2string.length + '\n'.length;
const template2 = `
${secret.ParameterKey}Secret:
Type: AWS::SecretsManager::Secret
Properties:
Name: !Join [ "", [ 'testsec', !Ref BUILDID ] ]
SecretString: !Ref AWSSecretAccessKey`;
taskDefCloudFormation = [
taskDefCloudFormation.slice(0, indexp2),
template2,
taskDefCloudFormation.slice(indexp2),
].join('');
const indexp3 = taskDefCloudFormation.search(p3string) + p3string.length + '\n'.length;
const template3 = `
- Name: 'test'
ValueFrom: !Ref GithubTokenSecret`;
taskDefCloudFormation = [
taskDefCloudFormation.slice(0, indexp3),
template3,
taskDefCloudFormation.slice(indexp3),
].join('');
Name: !Join [ "", [ '${secret.ParameterKey}', !Ref BUILDID ] ]
SecretString: !Ref ${secret.ParameterKey}
`;
taskDefCloudFormation = [
taskDefCloudFormation.slice(0, indexp2),
template2,
taskDefCloudFormation.slice(indexp2),
].join('');
const indexp3 = taskDefCloudFormation.search(p3string) + p3string.length + '\n'.length;
const template3 = `
- Name: '${secret.ParameterKey.toUpperCase()}'
ValueFrom: !Ref ${secret.ParameterKey}Secret`;
taskDefCloudFormation = [
taskDefCloudFormation.slice(0, indexp3),
template3,
taskDefCloudFormation.slice(indexp3),
].join('');
}
core.info(taskDefCloudFormation);
yield CF.createStack({
StackName: taskDefStackName,

2
dist/index.js.map vendored

File diff suppressed because one or more lines are too long

View File

@ -333,40 +333,44 @@ class AWS {
`;
const taskDefStackName = `${stackName}-${buildUid}`;
let taskDefCloudFormation = fs.readFileSync(`${__dirname}/cloud-formations/task-def-formation.yml`, 'utf8');
const p1string = 'p1 - input';
const p2string = 'p2 - secret';
const p3string = 'p3 - container def';
const indexp1 = taskDefCloudFormation.search(p1string) + p1string.length + '\n'.length;
const template1 = `
AWSSecretAccessKeyssss:
for (const secret of secrets) {
const p1string = 'p1 - input';
const p2string = 'p2 - secret';
const p3string = 'p3 - container def';
const indexp1 = taskDefCloudFormation.search(p1string) + p1string.length + '\n'.length;
const template1 = `
${secret.ParameterKey}:
Type: String
Default: '0'`;
taskDefCloudFormation = [
taskDefCloudFormation.slice(0, indexp1),
template1,
taskDefCloudFormation.slice(indexp1),
].join('');
const indexp2 = taskDefCloudFormation.search(p2string) + p2string.length + '\n'.length;
const template2 = `
TestSec:
Default: ''
`;
taskDefCloudFormation = [
taskDefCloudFormation.slice(0, indexp1),
template1,
taskDefCloudFormation.slice(indexp1),
].join('');
const indexp2 = taskDefCloudFormation.search(p2string) + p2string.length + '\n'.length;
const template2 = `
${secret.ParameterKey}Secret:
Type: AWS::SecretsManager::Secret
Properties:
Name: !Join [ "", [ 'testsec', !Ref BUILDID ] ]
SecretString: !Ref AWSSecretAccessKey`;
taskDefCloudFormation = [
taskDefCloudFormation.slice(0, indexp2),
template2,
taskDefCloudFormation.slice(indexp2),
].join('');
const indexp3 = taskDefCloudFormation.search(p3string) + p3string.length + '\n'.length;
const template3 = `
- Name: 'test'
ValueFrom: !Ref GithubTokenSecret`;
taskDefCloudFormation = [
taskDefCloudFormation.slice(0, indexp3),
template3,
taskDefCloudFormation.slice(indexp3),
].join('');
Name: !Join [ "", [ '${secret.ParameterKey}', !Ref BUILDID ] ]
SecretString: !Ref ${secret.ParameterKey}
`;
taskDefCloudFormation = [
taskDefCloudFormation.slice(0, indexp2),
template2,
taskDefCloudFormation.slice(indexp2),
].join('');
const indexp3 = taskDefCloudFormation.search(p3string) + p3string.length + '\n'.length;
const template3 = `
- Name: '${secret.ParameterKey.toUpperCase()}'
ValueFrom: !Ref ${secret.ParameterKey}Secret`;
taskDefCloudFormation = [
taskDefCloudFormation.slice(0, indexp3),
template3,
taskDefCloudFormation.slice(indexp3),
].join('');
}
core.info(taskDefCloudFormation);