mirror of
https://github.com/Azure/k8s-deploy.git
synced 2026-06-24 21:50:00 +08:00
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:
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
import {ExecOutput} from '@actions/exec'
|
||||
|
||||
export interface DeployResult {
|
||||
execResult: ExecOutput
|
||||
manifestFiles: string[]
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
Reference in New Issue
Block a user