k8s-deploy/src/constants.ts
2020-11-20 23:52:46 +05:30

52 lines
2.4 KiB
TypeScript

'use strict';
export class KubernetesWorkload {
public static pod: string = 'Pod';
public static replicaset: string = 'Replicaset';
public static deployment: string = 'Deployment';
public static statefulSet: string = 'StatefulSet';
public static daemonSet: string = 'DaemonSet';
public static job: string = 'job';
public static cronjob: string = 'cronjob';
}
export class DiscoveryAndLoadBalancerResource {
public static service: string = 'service';
public static ingress: string = 'ingress';
}
export class ServiceTypes {
public static loadBalancer: string = 'LoadBalancer';
public static nodePort: string = 'NodePort';
public static clusterIP: string = 'ClusterIP'
}
export const deploymentTypes: string[] = ['deployment', 'replicaset', 'daemonset', 'pod', 'statefulset'];
export const workloadTypes: string[] = ['deployment', 'replicaset', 'daemonset', 'pod', 'statefulset', 'job', 'cronjob'];
export const workloadTypesWithRolloutStatus: string[] = ['deployment', 'daemonset', 'statefulset'];
export function getWorkflowAnnotationsJson(lastSuccessRunSha: string, workflowFilePath: string, filePathConfigs: any): string {
return `{`
+ `'run': '${process.env.GITHUB_RUN_ID}',`
+ `'repository': '${process.env.GITHUB_REPOSITORY}',`
+ `'workflow': '${process.env.GITHUB_WORKFLOW}',`
+ `'workflowFileName': '${workflowFilePath.replace(".github/workflows/", "")}',`
+ `'jobName': '${process.env.GITHUB_JOB}',`
+ `'createdBy': '${process.env.GITHUB_ACTOR}',`
+ `'runUri': 'https://github.com/${process.env.GITHUB_REPOSITORY}/actions/runs/${process.env.GITHUB_RUN_ID}',`
+ `'commit': '${process.env.GITHUB_SHA}',`
+ `'lastSuccessRunCommit': '${lastSuccessRunSha}',`
+ `'branch': '${process.env.GITHUB_REF}',`
+ `'deployTimestamp': '${Date.now()}',`
+ `'manifestsPaths': '${JSON.stringify(filePathConfigs.manifestFilePaths)}',`
+ `'dockerfilePaths': '${JSON.stringify(filePathConfigs.buildConfigs)}',`
+ `'provider': 'GitHub'`
+ `}`;
}
export function getWorkflowAnnotationKeyLabel(workflowFilePath: string): string {
const hashKey = require("crypto").createHash("MD5")
.update(`${process.env.GITHUB_REPOSITORY}/${workflowFilePath}`)
.digest("hex");
return `githubWorkflow_${hashKey}`;
}