JSON structure fixes of config paths

This commit is contained in:
Jyotsna 2020-11-23 14:01:06 +05:30
parent d0f7e63ea0
commit 41514fca22
4 changed files with 276 additions and 292 deletions

View File

@ -26,7 +26,7 @@ exports.deploymentTypes = ['deployment', 'replicaset', 'daemonset', 'pod', 'stat
exports.workloadTypes = ['deployment', 'replicaset', 'daemonset', 'pod', 'statefulset', 'job', 'cronjob']; exports.workloadTypes = ['deployment', 'replicaset', 'daemonset', 'pod', 'statefulset', 'job', 'cronjob'];
exports.workloadTypesWithRolloutStatus = ['deployment', 'daemonset', 'statefulset']; exports.workloadTypesWithRolloutStatus = ['deployment', 'daemonset', 'statefulset'];
function getWorkflowAnnotationsJson(lastSuccessRunSha, workflowFilePath, filePathConfigs) { function getWorkflowAnnotationsJson(lastSuccessRunSha, workflowFilePath, filePathConfigs) {
return JSON.stringify(`{` return `{`
+ `'run': '${process.env.GITHUB_RUN_ID}',` + `'run': '${process.env.GITHUB_RUN_ID}',`
+ `'repository': '${process.env.GITHUB_REPOSITORY}',` + `'repository': '${process.env.GITHUB_REPOSITORY}',`
+ `'workflow': '${process.env.GITHUB_WORKFLOW}',` + `'workflow': '${process.env.GITHUB_WORKFLOW}',`
@ -38,10 +38,11 @@ function getWorkflowAnnotationsJson(lastSuccessRunSha, workflowFilePath, filePat
+ `'lastSuccessRunCommit': '${lastSuccessRunSha}',` + `'lastSuccessRunCommit': '${lastSuccessRunSha}',`
+ `'branch': '${process.env.GITHUB_REF}',` + `'branch': '${process.env.GITHUB_REF}',`
+ `'deployTimestamp': '${Date.now()}',` + `'deployTimestamp': '${Date.now()}',`
+ `'manifestsPaths': '${filePathConfigs.manifestFilePaths}',` + `'dockerfilePaths': ${JSON.stringify(filePathConfigs.dockerfilePaths)},`
+ `'dockerfilePaths': '${filePathConfigs.buildConfigs}',` + `'manifestsPaths': ${JSON.stringify(filePathConfigs.manifestFilePaths)},`
+ `'helmChartPaths': ${JSON.stringify(filePathConfigs.helmChartPaths)},`
+ `'provider': 'GitHub'` + `'provider': 'GitHub'`
+ `}`); + `}`;
} }
exports.getWorkflowAnnotationsJson = getWorkflowAnnotationsJson; exports.getWorkflowAnnotationsJson = getWorkflowAnnotationsJson;
function getWorkflowAnnotationKeyLabel(workflowFilePath) { function getWorkflowAnnotationKeyLabel(workflowFilePath) {

View File

@ -142,24 +142,21 @@ exports.annotateChildPods = annotateChildPods;
function getFilePathsConfigs() { function getFilePathsConfigs() {
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
let filePathsConfig = {}; let filePathsConfig = {};
const BUILD_CONFIG_KEY = 'buildConfigs';
const MANIFEST_PATHS_KEY = 'manifestFilePaths'; const MANIFEST_PATHS_KEY = 'manifestFilePaths';
const HELM_CHART_KEY = 'helmChartFilePaths'; const HELM_CHART_KEY = 'helmChartFilePaths';
const DOCKERFILE_PATH_KEY = 'dockerfilePaths';
const DOCKERFILE_PATH_LABEL_KEY = 'dockerfile-path'; const DOCKERFILE_PATH_LABEL_KEY = 'dockerfile-path';
const DOCKERFILE_PATH_KEY = 'dockerfilePath';
const CONTAINER_REG_KEY = 'containerRegistryServer';
let inputManifestFiles = inputParams.manifests || []; let inputManifestFiles = inputParams.manifests || [];
filePathsConfig[MANIFEST_PATHS_KEY] = JSON.stringify(inputManifestFiles); filePathsConfig[MANIFEST_PATHS_KEY] = inputManifestFiles;
let helmChartPaths = process.env.HELM_CHART_PATHS || ''; let helmChartPaths = process.env.HELM_CHART_PATHS || '';
filePathsConfig[HELM_CHART_KEY] = helmChartPaths; filePathsConfig[HELM_CHART_KEY] = helmChartPaths;
//Fetch labels from each image //Fetch labels from each image
let imageToBuildConfigMap = {}; let imageToBuildConfigMap = [];
let imageNames = core.getInput('images').split('\n'); let imageNames = core.getInput('images').split('\n');
for (const image of imageNames) { for (const image of imageNames) {
let args = [image]; let args = [image];
let resultObj; let resultObj;
let buildConfigMap = {}; let containerRegistryName = image;
let containerRegistryName = image.toString().split('/')[0];
try { try {
let usrname = process.env.CR_USERNAME || null; let usrname = process.env.CR_USERNAME || null;
let pwd = process.env.CR_PASSWORD || null; let pwd = process.env.CR_PASSWORD || null;
@ -191,16 +188,11 @@ function getFilePathsConfigs() {
if (!resultObj) { if (!resultObj) {
resultObj = resultObj[0]; resultObj = resultObj[0];
if (!(resultObj.Config) && !(resultObj.Config.Labels) && !(resultObj.Config.Labels[DOCKERFILE_PATH_LABEL_KEY])) { if (!(resultObj.Config) && !(resultObj.Config.Labels) && !(resultObj.Config.Labels[DOCKERFILE_PATH_LABEL_KEY])) {
buildConfigMap[DOCKERFILE_PATH_KEY] = resultObj.Config.Labels[DOCKERFILE_PATH_LABEL_KEY]; imageToBuildConfigMap[image] = resultObj.Config.Labels[DOCKERFILE_PATH_LABEL_KEY];
}
//Add CR server name to build config
buildConfigMap[CONTAINER_REG_KEY] = containerRegistryName;
if (!resultObj.Id) {
imageToBuildConfigMap[resultObj.Id] = buildConfigMap;
} }
} }
} }
filePathsConfig[BUILD_CONFIG_KEY] = JSON.stringify(imageToBuildConfigMap); filePathsConfig[DOCKERFILE_PATH_KEY] = imageToBuildConfigMap;
return Promise.resolve(filePathsConfig); return Promise.resolve(filePathsConfig);
}); });
} }

View File

@ -26,7 +26,7 @@ export const workloadTypes: string[] = ['deployment', 'replicaset', 'daemonset',
export const workloadTypesWithRolloutStatus: string[] = ['deployment', 'daemonset', 'statefulset']; export const workloadTypesWithRolloutStatus: string[] = ['deployment', 'daemonset', 'statefulset'];
export function getWorkflowAnnotationsJson(lastSuccessRunSha: string, workflowFilePath: string, filePathConfigs: any): string { export function getWorkflowAnnotationsJson(lastSuccessRunSha: string, workflowFilePath: string, filePathConfigs: any): string {
return JSON.stringify(`{` return `{`
+ `'run': '${process.env.GITHUB_RUN_ID}',` + `'run': '${process.env.GITHUB_RUN_ID}',`
+ `'repository': '${process.env.GITHUB_REPOSITORY}',` + `'repository': '${process.env.GITHUB_REPOSITORY}',`
+ `'workflow': '${process.env.GITHUB_WORKFLOW}',` + `'workflow': '${process.env.GITHUB_WORKFLOW}',`
@ -38,10 +38,11 @@ export function getWorkflowAnnotationsJson(lastSuccessRunSha: string, workflowFi
+ `'lastSuccessRunCommit': '${lastSuccessRunSha}',` + `'lastSuccessRunCommit': '${lastSuccessRunSha}',`
+ `'branch': '${process.env.GITHUB_REF}',` + `'branch': '${process.env.GITHUB_REF}',`
+ `'deployTimestamp': '${Date.now()}',` + `'deployTimestamp': '${Date.now()}',`
+ `'manifestsPaths': '${filePathConfigs.manifestFilePaths}',` + `'dockerfilePaths': ${JSON.stringify(filePathConfigs.dockerfilePaths)},`
+ `'dockerfilePaths': '${filePathConfigs.buildConfigs}',` + `'manifestsPaths': ${JSON.stringify(filePathConfigs.manifestFilePaths)},`
+ `'helmChartPaths': ${JSON.stringify(filePathConfigs.helmChartPaths)},`
+ `'provider': 'GitHub'` + `'provider': 'GitHub'`
+ `}`); + `}`;
} }
export function getWorkflowAnnotationKeyLabel(workflowFilePath: string): string { export function getWorkflowAnnotationKeyLabel(workflowFilePath: string): string {

View File

@ -132,28 +132,25 @@ export function annotateChildPods(kubectl: Kubectl, resourceType: string, resour
export async function getFilePathsConfigs(): Promise<any> { export async function getFilePathsConfigs(): Promise<any> {
let filePathsConfig: any = {}; let filePathsConfig: any = {};
const BUILD_CONFIG_KEY = 'buildConfigs';
const MANIFEST_PATHS_KEY = 'manifestFilePaths'; const MANIFEST_PATHS_KEY = 'manifestFilePaths';
const HELM_CHART_KEY = 'helmChartFilePaths'; const HELM_CHART_KEY = 'helmChartFilePaths';
const DOCKERFILE_PATH_KEY = 'dockerfilePaths';
const DOCKERFILE_PATH_LABEL_KEY = 'dockerfile-path'; const DOCKERFILE_PATH_LABEL_KEY = 'dockerfile-path';
const DOCKERFILE_PATH_KEY = 'dockerfilePath';
const CONTAINER_REG_KEY = 'containerRegistryServer';
let inputManifestFiles = inputParams.manifests || []; let inputManifestFiles = inputParams.manifests || [];
filePathsConfig[MANIFEST_PATHS_KEY] = JSON.stringify(inputManifestFiles); filePathsConfig[MANIFEST_PATHS_KEY] = inputManifestFiles;
let helmChartPaths = process.env.HELM_CHART_PATHS || ''; let helmChartPaths = process.env.HELM_CHART_PATHS || '';
filePathsConfig[HELM_CHART_KEY] = helmChartPaths; filePathsConfig[HELM_CHART_KEY] = helmChartPaths;
//Fetch labels from each image //Fetch labels from each image
let imageToBuildConfigMap: any = {}; let imageToBuildConfigMap: any = [];
let imageNames = core.getInput('images').split('\n'); let imageNames = core.getInput('images').split('\n');
for(const image of imageNames){ for(const image of imageNames){
let args: string[] = [image]; let args: string[] = [image];
let resultObj: any; let resultObj: any;
let buildConfigMap : any = {}; let containerRegistryName = image;
let containerRegistryName = image.toString().split('/')[0];
try{ try{
let usrname = process.env.CR_USERNAME || null; let usrname = process.env.CR_USERNAME || null;
@ -190,20 +187,13 @@ export async function getFilePathsConfigs(): Promise<any> {
if(!resultObj){ if(!resultObj){
resultObj = resultObj[0]; resultObj = resultObj[0];
if(!(resultObj.Config) && !(resultObj.Config.Labels) && !(resultObj.Config.Labels[DOCKERFILE_PATH_LABEL_KEY])){ if(!(resultObj.Config) && !(resultObj.Config.Labels) && !(resultObj.Config.Labels[DOCKERFILE_PATH_LABEL_KEY])){
buildConfigMap[DOCKERFILE_PATH_KEY] = resultObj.Config.Labels[DOCKERFILE_PATH_LABEL_KEY]; imageToBuildConfigMap[image] = resultObj.Config.Labels[DOCKERFILE_PATH_LABEL_KEY];
}
//Add CR server name to build config
buildConfigMap[CONTAINER_REG_KEY] = containerRegistryName;
if(!resultObj.Id){
imageToBuildConfigMap[resultObj.Id] = buildConfigMap;
} }
} }
} }
filePathsConfig[BUILD_CONFIG_KEY] = JSON.stringify(imageToBuildConfigMap); filePathsConfig[DOCKERFILE_PATH_KEY] = imageToBuildConfigMap;
return Promise.resolve(filePathsConfig); return Promise.resolve(filePathsConfig);
} }