export async function setupSMI()

in src/strategyHelpers/blueGreen/smiBlueGreenHelper.ts [29:69]


export async function setupSMI(
   kubectl: Kubectl,
   serviceEntityList: any[]
): Promise<BlueGreenDeployment> {
   const newObjectsList = []
   const trafficObjectList = []

   serviceEntityList.forEach((serviceObject) => {
      // create a trafficsplit for service
      trafficObjectList.push(serviceObject)
      // set up the services for trafficsplit
      const newStableService = getStableSMIServiceResource(serviceObject)
      const newGreenService = getGreenSMIServiceResource(serviceObject)
      newObjectsList.push(newStableService)
      newObjectsList.push(newGreenService)
   })

   const tsObjects: TrafficSplitObject[] = []
   // route to stable service
   for (const svc of trafficObjectList) {
      const tsObject = await createTrafficSplitObject(
         kubectl,
         svc.metadata.name,
         NONE_LABEL_VALUE
      )
      tsObjects.push(tsObject as TrafficSplitObject)
   }

   const objectsToDeploy = [].concat(newObjectsList, tsObjects)

   // create services
   const smiDeploymentResult: DeployResult = await deployObjects(
      kubectl,
      objectsToDeploy
   )

   return {
      objects: objectsToDeploy,
      deployResult: smiDeploymentResult
   }
}