Blue/Green Refactor (#229)

* fresh new branch

* Added coverage to gitignore

Signed-off-by: Jaiveer Katariya <jaiveerkatariya@Jaiveers-MBP.lan>

* reverted package-lock.json

Signed-off-by: Jaiveer Katariya <jaiveerkatariya@Jaiveers-MBP.lan>
Co-authored-by: Jaiveer Katariya <jaiveerkatariya@Jaiveers-MBP.lan>
This commit is contained in:
Jaiveer Katariya
2022-08-12 15:47:05 -04:00
committed by GitHub
parent 531cfdcc3d
commit 01a65512ea
31 changed files with 1758 additions and 828 deletions
+3 -3
View File
@@ -1,8 +1,8 @@
export function parseAnnotations(str: string) {
if (str == '') {
return {}
return new Map<string, string>()
} else {
const annotaion = JSON.parse(str)
return new Map(annotaion)
const annotation = JSON.parse(str)
return new Map<string, string>(annotation)
}
}
+21
View File
@@ -0,0 +1,21 @@
import {DeployResult} from './deployResult'
import {K8sObject, K8sDeleteObject} from './k8sObject'
export interface BlueGreenDeployment {
deployResult: DeployResult
objects: K8sObject[]
}
export interface BlueGreenManifests {
serviceEntityList: K8sObject[]
serviceNameMap: Map<string, string>
unroutedServiceEntityList: K8sObject[]
deploymentEntityList: K8sObject[]
ingressEntityList: K8sObject[]
otherObjects: K8sObject[]
}
export interface BlueGreenRejectResult {
deleteResult: K8sDeleteObject[]
routeResult: BlueGreenDeployment
}
+6
View File
@@ -0,0 +1,6 @@
import {ExecOutput} from '@actions/exec'
export interface DeployResult {
execResult: ExecOutput
manifestFiles: string[]
}
+57
View File
@@ -0,0 +1,57 @@
export interface K8sObject {
metadata: {
name: string
labels: Map<string, string>
}
kind: string
spec: any
}
export interface K8sServiceObject extends K8sObject {
spec: {
selector: Map<string, string>
}
}
export interface K8sDeleteObject {
name: string
kind: string
}
export interface K8sIngress extends K8sObject {
spec: {
rules: [
{
http: {
paths: [
{
backend: {
service: {
name: string
}
}
}
]
}
}
]
}
}
export interface TrafficSplitObject extends K8sObject {
apiVersion: string
metadata: {
name: string
labels: Map<string, string>
annotations: Map<string, string>
}
spec: {
service: string
backends: TrafficSplitBackend[]
}
}
export interface TrafficSplitBackend {
service: string
weight: number
}