fix
parent
9b842af7bb
commit
dca01ea4a0
|
|
@ -959,14 +959,11 @@ const cloud_runner_logger_1 = __importDefault(__webpack_require__(22855));
|
||||||
const core = __importStar(__webpack_require__(42186));
|
const core = __importStar(__webpack_require__(42186));
|
||||||
class AWSError {
|
class AWSError {
|
||||||
static handleStackCreationFailure(error, CF, taskDefStackName) {
|
static handleStackCreationFailure(error, CF, taskDefStackName) {
|
||||||
var _a;
|
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
cloud_runner_logger_1.default.log('aws error: ');
|
cloud_runner_logger_1.default.log('aws error: ');
|
||||||
core.error(JSON.stringify(error, undefined, 4));
|
core.error(JSON.stringify(error, undefined, 4));
|
||||||
cloud_runner_logger_1.default.log('Getting events and resources for task stack');
|
cloud_runner_logger_1.default.log('Getting events and resources for task stack');
|
||||||
const events = (_a = (yield CF.describeStackEvents({ StackName: taskDefStackName }).promise()).StackEvents) === null || _a === void 0 ? void 0 : _a.map((x) => {
|
const events = (yield CF.describeStackEvents({ StackName: taskDefStackName }).promise()).StackEvents;
|
||||||
x.ResourceStatus, x.ResourceStatusReason, x.ResourceProperties;
|
|
||||||
});
|
|
||||||
cloud_runner_logger_1.default.log(JSON.stringify(events, undefined, 4));
|
cloud_runner_logger_1.default.log(JSON.stringify(events, undefined, 4));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -1030,6 +1027,7 @@ class AWSJobStack {
|
||||||
const cleanupCloudFormation = fs.readFileSync(`${__dirname}/cloud-formations/cloudformation-stack-ttl.yml`, 'utf8');
|
const cleanupCloudFormation = fs.readFileSync(`${__dirname}/cloud-formations/cloudformation-stack-ttl.yml`, 'utf8');
|
||||||
cloud_runner_logger_1.default.log(JSON.stringify(secrets, undefined, 4));
|
cloud_runner_logger_1.default.log(JSON.stringify(secrets, undefined, 4));
|
||||||
for (const secret of secrets) {
|
for (const secret of secrets) {
|
||||||
|
secret.ParameterKey = `${buildGuid.replace(/[^\dA-Za-z]/g, '')}${secret.ParameterKey.replace(/[^\dA-Za-z]/g, '')}`;
|
||||||
if (typeof secret.ParameterValue == 'number') {
|
if (typeof secret.ParameterValue == 'number') {
|
||||||
secret.ParameterValue = `${secret.ParameterValue}`;
|
secret.ParameterValue = `${secret.ParameterValue}`;
|
||||||
}
|
}
|
||||||
|
|
@ -1037,9 +1035,9 @@ class AWSJobStack {
|
||||||
secrets = secrets.filter((x) => x !== secret);
|
secrets = secrets.filter((x) => x !== secret);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
taskDefCloudFormation = aws_templates_1.AWSTemplates.insertAtTemplate(taskDefCloudFormation, 'p1 - input', aws_templates_1.AWSTemplates.getParameterTemplate(secret.ParameterKey.replace(/[^\dA-Za-z]/g, '')));
|
taskDefCloudFormation = aws_templates_1.AWSTemplates.insertAtTemplate(taskDefCloudFormation, 'p1 - input', aws_templates_1.AWSTemplates.getParameterTemplate(secret.ParameterKey));
|
||||||
taskDefCloudFormation = aws_templates_1.AWSTemplates.insertAtTemplate(taskDefCloudFormation, 'p2 - secret', aws_templates_1.AWSTemplates.getSecretTemplate(secret.ParameterKey.replace(/[^\dA-Za-z]/g, '')));
|
taskDefCloudFormation = aws_templates_1.AWSTemplates.insertAtTemplate(taskDefCloudFormation, 'p2 - secret', aws_templates_1.AWSTemplates.getSecretTemplate(`${secret.ParameterKey}`));
|
||||||
taskDefCloudFormation = aws_templates_1.AWSTemplates.insertAtTemplate(taskDefCloudFormation, 'p3 - container def', aws_templates_1.AWSTemplates.getSecretDefinitionTemplate(secret.EnvironmentVariable, secret.ParameterKey.replace(/[^\dA-Za-z]/g, '')));
|
taskDefCloudFormation = aws_templates_1.AWSTemplates.insertAtTemplate(taskDefCloudFormation, 'p3 - container def', aws_templates_1.AWSTemplates.getSecretDefinitionTemplate(secret.EnvironmentVariable, secret.ParameterKey));
|
||||||
}
|
}
|
||||||
const secretsMappedToCloudFormationParameters = secrets.map((x) => {
|
const secretsMappedToCloudFormationParameters = secrets.map((x) => {
|
||||||
return { ParameterKey: x.ParameterKey.replace(/[^\dA-Za-z]/g, ''), ParameterValue: x.ParameterValue };
|
return { ParameterKey: x.ParameterKey.replace(/[^\dA-Za-z]/g, ''), ParameterValue: x.ParameterValue };
|
||||||
|
|
@ -1403,7 +1401,7 @@ class AWSTemplates {
|
||||||
${p1}Secret:
|
${p1}Secret:
|
||||||
Type: AWS::SecretsManager::Secret
|
Type: AWS::SecretsManager::Secret
|
||||||
Properties:
|
Properties:
|
||||||
Name: !Join [ "", [ '${p1}', !Ref BUILDGUID ] ]
|
Name: '${p1}'
|
||||||
SecretString: !Ref ${p1}
|
SecretString: !Ref ${p1}
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -15,7 +15,7 @@
|
||||||
"cli": "yarn ts-node src/index.ts -m cli",
|
"cli": "yarn ts-node src/index.ts -m cli",
|
||||||
"test-cli": "yarn ts-node src/index.ts -m cli --projectPath test-project",
|
"test-cli": "yarn ts-node src/index.ts -m cli --projectPath test-project",
|
||||||
"test": "jest",
|
"test": "jest",
|
||||||
"test-i": "yarn run test-i-aws",
|
"test-i": "yarn run test-i-aws && yarn run test-i-k8s",
|
||||||
"test-i-aws": "cross-env cloudRunnerTests=true cloudRunnerCluster=aws yarn test -i",
|
"test-i-aws": "cross-env cloudRunnerTests=true cloudRunnerCluster=aws yarn test -i",
|
||||||
"test-i-k8s": "cross-env cloudRunnerTests=true cloudRunnerCluster=k8s yarn test -i"
|
"test-i-k8s": "cross-env cloudRunnerTests=true cloudRunnerCluster=k8s yarn test -i"
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -7,9 +7,7 @@ export class AWSError {
|
||||||
CloudRunnerLogger.log('aws error: ');
|
CloudRunnerLogger.log('aws error: ');
|
||||||
core.error(JSON.stringify(error, undefined, 4));
|
core.error(JSON.stringify(error, undefined, 4));
|
||||||
CloudRunnerLogger.log('Getting events and resources for task stack');
|
CloudRunnerLogger.log('Getting events and resources for task stack');
|
||||||
const events = (await CF.describeStackEvents({ StackName: taskDefStackName }).promise()).StackEvents?.map((x) => {
|
const events = (await CF.describeStackEvents({ StackName: taskDefStackName }).promise()).StackEvents;
|
||||||
x.ResourceStatus, x.ResourceStatusReason, x.ResourceProperties;
|
|
||||||
});
|
|
||||||
CloudRunnerLogger.log(JSON.stringify(events, undefined, 4));
|
CloudRunnerLogger.log(JSON.stringify(events, undefined, 4));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,10 @@ export class AWSJobStack {
|
||||||
const cleanupCloudFormation = fs.readFileSync(`${__dirname}/cloud-formations/cloudformation-stack-ttl.yml`, 'utf8');
|
const cleanupCloudFormation = fs.readFileSync(`${__dirname}/cloud-formations/cloudformation-stack-ttl.yml`, 'utf8');
|
||||||
CloudRunnerLogger.log(JSON.stringify(secrets, undefined, 4));
|
CloudRunnerLogger.log(JSON.stringify(secrets, undefined, 4));
|
||||||
for (const secret of secrets) {
|
for (const secret of secrets) {
|
||||||
|
secret.ParameterKey = `${buildGuid.replace(/[^\dA-Za-z]/g, '')}${secret.ParameterKey.replace(
|
||||||
|
/[^\dA-Za-z]/g,
|
||||||
|
'',
|
||||||
|
)}`;
|
||||||
if (typeof secret.ParameterValue == 'number') {
|
if (typeof secret.ParameterValue == 'number') {
|
||||||
secret.ParameterValue = `${secret.ParameterValue}`;
|
secret.ParameterValue = `${secret.ParameterValue}`;
|
||||||
}
|
}
|
||||||
|
|
@ -38,20 +42,17 @@ export class AWSJobStack {
|
||||||
taskDefCloudFormation = AWSTemplates.insertAtTemplate(
|
taskDefCloudFormation = AWSTemplates.insertAtTemplate(
|
||||||
taskDefCloudFormation,
|
taskDefCloudFormation,
|
||||||
'p1 - input',
|
'p1 - input',
|
||||||
AWSTemplates.getParameterTemplate(secret.ParameterKey.replace(/[^\dA-Za-z]/g, '')),
|
AWSTemplates.getParameterTemplate(secret.ParameterKey),
|
||||||
);
|
);
|
||||||
taskDefCloudFormation = AWSTemplates.insertAtTemplate(
|
taskDefCloudFormation = AWSTemplates.insertAtTemplate(
|
||||||
taskDefCloudFormation,
|
taskDefCloudFormation,
|
||||||
'p2 - secret',
|
'p2 - secret',
|
||||||
AWSTemplates.getSecretTemplate(secret.ParameterKey.replace(/[^\dA-Za-z]/g, '')),
|
AWSTemplates.getSecretTemplate(`${secret.ParameterKey}`),
|
||||||
);
|
);
|
||||||
taskDefCloudFormation = AWSTemplates.insertAtTemplate(
|
taskDefCloudFormation = AWSTemplates.insertAtTemplate(
|
||||||
taskDefCloudFormation,
|
taskDefCloudFormation,
|
||||||
'p3 - container def',
|
'p3 - container def',
|
||||||
AWSTemplates.getSecretDefinitionTemplate(
|
AWSTemplates.getSecretDefinitionTemplate(secret.EnvironmentVariable, secret.ParameterKey),
|
||||||
secret.EnvironmentVariable,
|
|
||||||
secret.ParameterKey.replace(/[^\dA-Za-z]/g, ''),
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
const secretsMappedToCloudFormationParameters = secrets.map((x) => {
|
const secretsMappedToCloudFormationParameters = secrets.map((x) => {
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ export class AWSTemplates {
|
||||||
${p1}Secret:
|
${p1}Secret:
|
||||||
Type: AWS::SecretsManager::Secret
|
Type: AWS::SecretsManager::Secret
|
||||||
Properties:
|
Properties:
|
||||||
Name: !Join [ "", [ '${p1}', !Ref BUILDGUID ] ]
|
Name: '${p1}'
|
||||||
SecretString: !Ref ${p1}
|
SecretString: !Ref ${p1}
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue