in src/strategyHelpers/blueGreen/smiBlueGreenHelper.ts [108:158]
service: getBlueGreenResourceName(name, GREEN_SUFFIX),
weight: greenWeight
}
]
}
}
return trafficSplitObject
}
export function getStableSMIServiceResource(inputObject: K8sObject): K8sObject {
const newObject = JSON.parse(JSON.stringify(inputObject))
// adding stable suffix to service name
newObject.metadata.name = getBlueGreenResourceName(
inputObject.metadata.name,
STABLE_SUFFIX
)
return getNewBlueGreenObject(newObject, NONE_LABEL_VALUE)
}
export function getGreenSMIServiceResource(inputObject: K8sObject): K8sObject {
const newObject = JSON.parse(JSON.stringify(inputObject))
return getNewBlueGreenObject(newObject, GREEN_LABEL_VALUE)
}
export async function validateTrafficSplitsState(
kubectl: Kubectl,
serviceEntityList: any[]
): Promise<boolean> {
let trafficSplitsInRightState: boolean = true
for (const serviceObject of serviceEntityList) {
const name = serviceObject.metadata.name
let trafficSplitObject = await fetchResource(
kubectl,
TRAFFIC_SPLIT_OBJECT,
getBlueGreenResourceName(name, TRAFFIC_SPLIT_OBJECT_NAME_SUFFIX),
serviceObject?.metadata?.namespace
)
core.debug(
`ts object extracted was ${JSON.stringify(trafficSplitObject)}`
)
if (!trafficSplitObject) {
core.debug(`no traffic split exits for ${name}`)
trafficSplitsInRightState = false
continue
}
trafficSplitObject.spec.backends.forEach((element) => {
// checking if trafficsplit in right state to deploy
if (element.service === getBlueGreenResourceName(name, GREEN_SUFFIX)) {