Kubernetes use env var based secrets
parent
b847c60ab0
commit
4c923c5609
|
|
@ -2506,6 +2506,168 @@ class CloudRunnerNamespace {
|
|||
exports.default = CloudRunnerNamespace;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 35346:
|
||||
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.TaskParameterSerializer = void 0;
|
||||
const __1 = __webpack_require__(41359);
|
||||
const image_environment_factory_1 = __importDefault(__webpack_require__(25145));
|
||||
const cloud_runner_state_1 = __webpack_require__(70912);
|
||||
const cloud_runner_logger_1 = __importDefault(__webpack_require__(22855));
|
||||
class TaskParameterSerializer {
|
||||
static readBuildEnvironmentVariables() {
|
||||
return [
|
||||
{
|
||||
name: 'ContainerMemory',
|
||||
value: cloud_runner_state_1.CloudRunnerState.buildParams.cloudRunnerMemory,
|
||||
},
|
||||
{
|
||||
name: 'ContainerCpu',
|
||||
value: cloud_runner_state_1.CloudRunnerState.buildParams.cloudRunnerCpu,
|
||||
},
|
||||
{
|
||||
name: 'GITHUB_WORKSPACE',
|
||||
value: `/${cloud_runner_state_1.CloudRunnerState.buildVolumeFolder}/${cloud_runner_state_1.CloudRunnerState.buildGuid}/${cloud_runner_state_1.CloudRunnerState.repositoryFolder}/`,
|
||||
},
|
||||
{
|
||||
name: 'PROJECT_PATH',
|
||||
value: cloud_runner_state_1.CloudRunnerState.buildParams.projectPath,
|
||||
},
|
||||
{
|
||||
name: 'BUILD_PATH',
|
||||
value: cloud_runner_state_1.CloudRunnerState.buildParams.buildPath,
|
||||
},
|
||||
{
|
||||
name: 'BUILD_FILE',
|
||||
value: cloud_runner_state_1.CloudRunnerState.buildParams.buildFile,
|
||||
},
|
||||
{
|
||||
name: 'BUILD_NAME',
|
||||
value: cloud_runner_state_1.CloudRunnerState.buildParams.buildName,
|
||||
},
|
||||
{
|
||||
name: 'BUILD_METHOD',
|
||||
value: cloud_runner_state_1.CloudRunnerState.buildParams.buildMethod,
|
||||
},
|
||||
{
|
||||
name: 'CUSTOM_PARAMETERS',
|
||||
value: cloud_runner_state_1.CloudRunnerState.buildParams.customParameters,
|
||||
},
|
||||
{
|
||||
name: 'BUILD_TARGET',
|
||||
value: cloud_runner_state_1.CloudRunnerState.buildParams.platform,
|
||||
},
|
||||
{
|
||||
name: 'ANDROID_VERSION_CODE',
|
||||
value: cloud_runner_state_1.CloudRunnerState.buildParams.androidVersionCode.toString(),
|
||||
},
|
||||
{
|
||||
name: 'ANDROID_KEYSTORE_NAME',
|
||||
value: cloud_runner_state_1.CloudRunnerState.buildParams.androidKeystoreName,
|
||||
},
|
||||
{
|
||||
name: 'ANDROID_KEYALIAS_NAME',
|
||||
value: cloud_runner_state_1.CloudRunnerState.buildParams.androidKeyaliasName,
|
||||
},
|
||||
...TaskParameterSerializer.serializeBuildParamsAndInput,
|
||||
];
|
||||
}
|
||||
static get serializeBuildParamsAndInput() {
|
||||
let array = new Array();
|
||||
array = TaskParameterSerializer.readBuildParameters(array);
|
||||
array = TaskParameterSerializer.readInput(array);
|
||||
return array;
|
||||
}
|
||||
static readBuildParameters(array) {
|
||||
const keys = Object.keys(cloud_runner_state_1.CloudRunnerState.buildParams);
|
||||
for (const element of keys) {
|
||||
array.push({
|
||||
name: element,
|
||||
value: `${cloud_runner_state_1.CloudRunnerState.buildParams[element]}`,
|
||||
});
|
||||
}
|
||||
array.push({ name: 'buildParameters', value: JSON.stringify(cloud_runner_state_1.CloudRunnerState.buildParams) });
|
||||
return array;
|
||||
}
|
||||
static readInput(array) {
|
||||
const input = Object.getOwnPropertyNames(__1.Input);
|
||||
for (const element of input) {
|
||||
cloud_runner_logger_1.default.log(JSON.stringify({
|
||||
type: `${typeof __1.Input[element]}`,
|
||||
name: __1.Input[element],
|
||||
}, undefined, 4));
|
||||
if (typeof __1.Input[element] !== 'function') {
|
||||
array.push({
|
||||
name: element,
|
||||
value: `${__1.Input[element]}`,
|
||||
});
|
||||
}
|
||||
}
|
||||
return array;
|
||||
}
|
||||
static setupDefaultSecrets() {
|
||||
cloud_runner_state_1.CloudRunnerState.defaultSecrets = [
|
||||
{
|
||||
ParameterKey: 'GithubToken',
|
||||
EnvironmentVariable: 'GITHUB_TOKEN',
|
||||
ParameterValue: cloud_runner_state_1.CloudRunnerState.buildParams.githubToken,
|
||||
},
|
||||
{
|
||||
ParameterKey: 'branch',
|
||||
EnvironmentVariable: 'branch',
|
||||
ParameterValue: cloud_runner_state_1.CloudRunnerState.branchName,
|
||||
},
|
||||
{
|
||||
ParameterKey: 'buildPathFull',
|
||||
EnvironmentVariable: 'buildPathFull',
|
||||
ParameterValue: cloud_runner_state_1.CloudRunnerState.buildPathFull,
|
||||
},
|
||||
{
|
||||
ParameterKey: 'projectPathFull',
|
||||
EnvironmentVariable: 'projectPathFull',
|
||||
ParameterValue: cloud_runner_state_1.CloudRunnerState.projectPathFull,
|
||||
},
|
||||
{
|
||||
ParameterKey: 'libraryFolderFull',
|
||||
EnvironmentVariable: 'libraryFolderFull',
|
||||
ParameterValue: cloud_runner_state_1.CloudRunnerState.libraryFolderFull,
|
||||
},
|
||||
{
|
||||
ParameterKey: 'builderPathFull',
|
||||
EnvironmentVariable: 'builderPathFull',
|
||||
ParameterValue: cloud_runner_state_1.CloudRunnerState.builderPathFull,
|
||||
},
|
||||
{
|
||||
ParameterKey: 'repoPathFull',
|
||||
EnvironmentVariable: 'repoPathFull',
|
||||
ParameterValue: cloud_runner_state_1.CloudRunnerState.repoPathFull,
|
||||
},
|
||||
{
|
||||
ParameterKey: 'steamPathFull',
|
||||
EnvironmentVariable: 'steamPathFull',
|
||||
ParameterValue: cloud_runner_state_1.CloudRunnerState.steamPathFull,
|
||||
},
|
||||
];
|
||||
cloud_runner_state_1.CloudRunnerState.defaultSecrets.push(...image_environment_factory_1.default.getEnvironmentVariables(cloud_runner_state_1.CloudRunnerState.buildParams).map((x) => {
|
||||
return {
|
||||
ParameterKey: x.name,
|
||||
EnvironmentVariable: x.name,
|
||||
ParameterValue: x.value,
|
||||
};
|
||||
}));
|
||||
}
|
||||
}
|
||||
exports.TaskParameterSerializer = TaskParameterSerializer;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 70912:
|
||||
|
|
@ -2520,7 +2682,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|||
exports.CloudRunnerState = void 0;
|
||||
const path_1 = __importDefault(__webpack_require__(85622));
|
||||
const cloud_runner_namespace_1 = __importDefault(__webpack_require__(63287));
|
||||
const task_parameter_serializer_1 = __webpack_require__(43247);
|
||||
const task_parameter_serializer_1 = __webpack_require__(35346);
|
||||
class CloudRunnerState {
|
||||
static setup(buildParameters) {
|
||||
CloudRunnerState.buildParams = buildParameters;
|
||||
|
|
@ -2614,163 +2776,6 @@ class CloudRunnerStepState {
|
|||
exports.CloudRunnerStepState = CloudRunnerStepState;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 43247:
|
||||
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.TaskParameterSerializer = void 0;
|
||||
const __1 = __webpack_require__(41359);
|
||||
const image_environment_factory_1 = __importDefault(__webpack_require__(25145));
|
||||
const cloud_runner_state_1 = __webpack_require__(70912);
|
||||
class TaskParameterSerializer {
|
||||
static readBuildEnvironmentVariables() {
|
||||
return [
|
||||
{
|
||||
name: 'ContainerMemory',
|
||||
value: cloud_runner_state_1.CloudRunnerState.buildParams.cloudRunnerMemory,
|
||||
},
|
||||
{
|
||||
name: 'ContainerCpu',
|
||||
value: cloud_runner_state_1.CloudRunnerState.buildParams.cloudRunnerCpu,
|
||||
},
|
||||
{
|
||||
name: 'GITHUB_WORKSPACE',
|
||||
value: `/${cloud_runner_state_1.CloudRunnerState.buildVolumeFolder}/${cloud_runner_state_1.CloudRunnerState.buildGuid}/${cloud_runner_state_1.CloudRunnerState.repositoryFolder}/`,
|
||||
},
|
||||
{
|
||||
name: 'PROJECT_PATH',
|
||||
value: cloud_runner_state_1.CloudRunnerState.buildParams.projectPath,
|
||||
},
|
||||
{
|
||||
name: 'BUILD_PATH',
|
||||
value: cloud_runner_state_1.CloudRunnerState.buildParams.buildPath,
|
||||
},
|
||||
{
|
||||
name: 'BUILD_FILE',
|
||||
value: cloud_runner_state_1.CloudRunnerState.buildParams.buildFile,
|
||||
},
|
||||
{
|
||||
name: 'BUILD_NAME',
|
||||
value: cloud_runner_state_1.CloudRunnerState.buildParams.buildName,
|
||||
},
|
||||
{
|
||||
name: 'BUILD_METHOD',
|
||||
value: cloud_runner_state_1.CloudRunnerState.buildParams.buildMethod,
|
||||
},
|
||||
{
|
||||
name: 'CUSTOM_PARAMETERS',
|
||||
value: cloud_runner_state_1.CloudRunnerState.buildParams.customParameters,
|
||||
},
|
||||
{
|
||||
name: 'BUILD_TARGET',
|
||||
value: cloud_runner_state_1.CloudRunnerState.buildParams.platform,
|
||||
},
|
||||
{
|
||||
name: 'ANDROID_VERSION_CODE',
|
||||
value: cloud_runner_state_1.CloudRunnerState.buildParams.androidVersionCode.toString(),
|
||||
},
|
||||
{
|
||||
name: 'ANDROID_KEYSTORE_NAME',
|
||||
value: cloud_runner_state_1.CloudRunnerState.buildParams.androidKeystoreName,
|
||||
},
|
||||
{
|
||||
name: 'ANDROID_KEYALIAS_NAME',
|
||||
value: cloud_runner_state_1.CloudRunnerState.buildParams.androidKeyaliasName,
|
||||
},
|
||||
...TaskParameterSerializer.serializeBuildParamsAndInput,
|
||||
];
|
||||
}
|
||||
static get serializeBuildParamsAndInput() {
|
||||
let array = new Array();
|
||||
array = TaskParameterSerializer.readBuildParameters(array);
|
||||
TaskParameterSerializer.readInput(array);
|
||||
return array;
|
||||
}
|
||||
static readBuildParameters(array) {
|
||||
const keys = Object.keys(cloud_runner_state_1.CloudRunnerState.buildParams);
|
||||
for (const element of keys) {
|
||||
array.push({
|
||||
name: element,
|
||||
value: `${cloud_runner_state_1.CloudRunnerState.buildParams[element]}`,
|
||||
});
|
||||
}
|
||||
array.push({ name: 'buildParameters', value: JSON.stringify(cloud_runner_state_1.CloudRunnerState.buildParams) });
|
||||
return array;
|
||||
}
|
||||
static readInput(array) {
|
||||
const input = Object.getOwnPropertyNames(__1.Input);
|
||||
for (const element of input) {
|
||||
if (typeof __1.Input[element] !== 'function') {
|
||||
array.push({
|
||||
name: element,
|
||||
value: `${__1.Input[element]}`,
|
||||
});
|
||||
}
|
||||
}
|
||||
return array;
|
||||
}
|
||||
static setupDefaultSecrets() {
|
||||
cloud_runner_state_1.CloudRunnerState.defaultSecrets = [
|
||||
{
|
||||
ParameterKey: 'GithubToken',
|
||||
EnvironmentVariable: 'GITHUB_TOKEN',
|
||||
ParameterValue: cloud_runner_state_1.CloudRunnerState.buildParams.githubToken,
|
||||
},
|
||||
{
|
||||
ParameterKey: 'branch',
|
||||
EnvironmentVariable: 'branch',
|
||||
ParameterValue: cloud_runner_state_1.CloudRunnerState.branchName,
|
||||
},
|
||||
{
|
||||
ParameterKey: 'buildPathFull',
|
||||
EnvironmentVariable: 'buildPathFull',
|
||||
ParameterValue: cloud_runner_state_1.CloudRunnerState.buildPathFull,
|
||||
},
|
||||
{
|
||||
ParameterKey: 'projectPathFull',
|
||||
EnvironmentVariable: 'projectPathFull',
|
||||
ParameterValue: cloud_runner_state_1.CloudRunnerState.projectPathFull,
|
||||
},
|
||||
{
|
||||
ParameterKey: 'libraryFolderFull',
|
||||
EnvironmentVariable: 'libraryFolderFull',
|
||||
ParameterValue: cloud_runner_state_1.CloudRunnerState.libraryFolderFull,
|
||||
},
|
||||
{
|
||||
ParameterKey: 'builderPathFull',
|
||||
EnvironmentVariable: 'builderPathFull',
|
||||
ParameterValue: cloud_runner_state_1.CloudRunnerState.builderPathFull,
|
||||
},
|
||||
{
|
||||
ParameterKey: 'repoPathFull',
|
||||
EnvironmentVariable: 'repoPathFull',
|
||||
ParameterValue: cloud_runner_state_1.CloudRunnerState.repoPathFull,
|
||||
},
|
||||
{
|
||||
ParameterKey: 'steamPathFull',
|
||||
EnvironmentVariable: 'steamPathFull',
|
||||
ParameterValue: cloud_runner_state_1.CloudRunnerState.steamPathFull,
|
||||
},
|
||||
];
|
||||
cloud_runner_state_1.CloudRunnerState.defaultSecrets.push(...image_environment_factory_1.default.getEnvironmentVariables(cloud_runner_state_1.CloudRunnerState.buildParams).map((x) => {
|
||||
return {
|
||||
ParameterKey: x.name,
|
||||
EnvironmentVariable: x.name,
|
||||
ParameterValue: x.value,
|
||||
};
|
||||
}));
|
||||
}
|
||||
}
|
||||
exports.TaskParameterSerializer = TaskParameterSerializer;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 91491:
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -1,5 +1,5 @@
|
|||
import * as SDK from 'aws-sdk';
|
||||
import CloudRunnerTaskDef from '../services/cloud-runner-task-def';
|
||||
import CloudRunnerAWSTaskDef from './cloud-runner-aws-task-def';
|
||||
import CloudRunnerSecret from '../services/cloud-runner-secret';
|
||||
import { AWSTemplates } from './aws-templates';
|
||||
import CloudRunnerLogger from '../services/cloud-runner-logger';
|
||||
|
|
@ -21,7 +21,7 @@ export class AWSJobStack {
|
|||
mountdir: string,
|
||||
workingdir: string,
|
||||
secrets: CloudRunnerSecret[],
|
||||
): Promise<CloudRunnerTaskDef> {
|
||||
): Promise<CloudRunnerAWSTaskDef> {
|
||||
const taskDefStackName = `${this.baseStackName}-${buildGuid}`;
|
||||
let taskDefCloudFormation = AWSTemplates.readTaskCloudFormationTemplate();
|
||||
const cleanupTaskDefStackName = `${taskDefStackName}-cleanup`;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import * as AWS from 'aws-sdk';
|
||||
import CloudRunnerEnvironmentVariable from '../services/cloud-runner-environment-variable';
|
||||
import * as core from '@actions/core';
|
||||
import CloudRunnerTaskDef from '../services/cloud-runner-task-def';
|
||||
import CloudRunnerAWSTaskDef from './cloud-runner-aws-task-def';
|
||||
import * as zlib from 'zlib';
|
||||
import CloudRunnerLogger from '../services/cloud-runner-logger';
|
||||
import { Input } from '../..';
|
||||
|
|
@ -12,7 +12,7 @@ import { CloudRunnerBuildCommandProcessor } from '../services/cloud-runner-build
|
|||
|
||||
class AWSTaskRunner {
|
||||
static async runTask(
|
||||
taskDef: CloudRunnerTaskDef,
|
||||
taskDef: CloudRunnerAWSTaskDef,
|
||||
ECS: AWS.ECS,
|
||||
CF: AWS.CloudFormation,
|
||||
environment: CloudRunnerEnvironmentVariable[],
|
||||
|
|
@ -104,7 +104,7 @@ class AWSTaskRunner {
|
|||
static async streamLogsUntilTaskStops(
|
||||
ECS: AWS.ECS,
|
||||
CF: AWS.CloudFormation,
|
||||
taskDef: CloudRunnerTaskDef,
|
||||
taskDef: CloudRunnerAWSTaskDef,
|
||||
clusterName: string,
|
||||
taskArn: string,
|
||||
kinesisStreamName: string,
|
||||
|
|
@ -138,7 +138,7 @@ class AWSTaskRunner {
|
|||
kinesis: AWS.Kinesis,
|
||||
iterator: string,
|
||||
shouldReadLogs: boolean,
|
||||
taskDef: CloudRunnerTaskDef,
|
||||
taskDef: CloudRunnerAWSTaskDef,
|
||||
) {
|
||||
const records = await kinesis
|
||||
.getRecords({
|
||||
|
|
@ -165,7 +165,7 @@ class AWSTaskRunner {
|
|||
return { timestamp, shouldReadLogs };
|
||||
}
|
||||
|
||||
private static logRecords(records, iterator: string, taskDef: CloudRunnerTaskDef, shouldReadLogs: boolean) {
|
||||
private static logRecords(records, iterator: string, taskDef: CloudRunnerAWSTaskDef, shouldReadLogs: boolean) {
|
||||
if (records.Records.length > 0 && iterator) {
|
||||
for (let index = 0; index < records.Records.length; index++) {
|
||||
const json = JSON.parse(
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import * as AWS from 'aws-sdk';
|
||||
|
||||
class CloudRunnerTaskDef {
|
||||
class CloudRunnerAWSTaskDef {
|
||||
public taskDefStackName!: string;
|
||||
public taskDefCloudFormation!: string;
|
||||
public taskDefStackNameTTL!: string;
|
||||
|
|
@ -8,4 +8,4 @@ class CloudRunnerTaskDef {
|
|||
public taskDefResources: AWS.CloudFormation.StackResources | undefined;
|
||||
public baseResources: AWS.CloudFormation.StackResources | undefined;
|
||||
}
|
||||
export default CloudRunnerTaskDef;
|
||||
export default CloudRunnerAWSTaskDef;
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
import * as SDK from 'aws-sdk';
|
||||
import CloudRunnerSecret from '../services/cloud-runner-secret';
|
||||
import CloudRunnerEnvironmentVariable from '../services/cloud-runner-environment-variable';
|
||||
import CloudRunnerTaskDef from '../services/cloud-runner-task-def';
|
||||
import CloudRunnerAWSTaskDef from './cloud-runner-aws-task-def';
|
||||
import AWSTaskRunner from './aws-task-runner';
|
||||
import { CloudRunnerProviderInterface } from '../services/cloud-runner-provider-interface';
|
||||
import BuildParameters from '../../build-parameters';
|
||||
|
|
@ -80,7 +80,7 @@ class AWSBuildEnvironment implements CloudRunnerProviderInterface {
|
|||
}
|
||||
}
|
||||
|
||||
async cleanupResources(CF: SDK.CloudFormation, taskDef: CloudRunnerTaskDef) {
|
||||
async cleanupResources(CF: SDK.CloudFormation, taskDef: CloudRunnerAWSTaskDef) {
|
||||
CloudRunnerLogger.log('Cleanup starting');
|
||||
await CF.deleteStack({
|
||||
StackName: taskDef.taskDefStackName,
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
import { Input } from '../..';
|
||||
import ImageEnvironmentFactory from '../../image-environment-factory';
|
||||
import CloudRunnerEnvironmentVariable from '../services/cloud-runner-environment-variable';
|
||||
import { CloudRunnerState } from './cloud-runner-state';
|
||||
import CloudRunnerEnvironmentVariable from './cloud-runner-environment-variable';
|
||||
import { CloudRunnerState } from '../state/cloud-runner-state';
|
||||
import CloudRunnerLogger from './cloud-runner-logger';
|
||||
|
||||
export class TaskParameterSerializer {
|
||||
public static readBuildEnvironmentVariables(): CloudRunnerEnvironmentVariable[] {
|
||||
|
|
@ -64,7 +65,7 @@ export class TaskParameterSerializer {
|
|||
private static get serializeBuildParamsAndInput() {
|
||||
let array = new Array();
|
||||
array = TaskParameterSerializer.readBuildParameters(array);
|
||||
TaskParameterSerializer.readInput(array);
|
||||
array = TaskParameterSerializer.readInput(array);
|
||||
return array;
|
||||
}
|
||||
|
||||
|
|
@ -83,6 +84,16 @@ export class TaskParameterSerializer {
|
|||
private static readInput(array: any[]) {
|
||||
const input = Object.getOwnPropertyNames(Input);
|
||||
for (const element of input) {
|
||||
CloudRunnerLogger.log(
|
||||
JSON.stringify(
|
||||
{
|
||||
type: `${typeof Input[element]}`,
|
||||
name: Input[element],
|
||||
},
|
||||
undefined,
|
||||
4,
|
||||
),
|
||||
);
|
||||
if (typeof Input[element] !== 'function') {
|
||||
array.push({
|
||||
name: element,
|
||||
|
|
@ -4,7 +4,7 @@ import CloudRunnerEnvironmentVariable from '../services/cloud-runner-environment
|
|||
import CloudRunnerNamespace from '../services/cloud-runner-namespace';
|
||||
import { CloudRunnerProviderInterface } from '../services/cloud-runner-provider-interface';
|
||||
import CloudRunnerSecret from '../services/cloud-runner-secret';
|
||||
import { TaskParameterSerializer } from './task-parameter-serializer';
|
||||
import { TaskParameterSerializer } from '../services/task-parameter-serializer';
|
||||
|
||||
export class CloudRunnerState {
|
||||
public static CloudRunnerProviderPlatform: CloudRunnerProviderInterface;
|
||||
|
|
|
|||
Loading…
Reference in New Issue