export async function validateIngresses()

in src/strategyHelpers/blueGreen/ingressBlueGreenHelper.ts [86:121]


export async function validateIngresses(
   kubectl: Kubectl,
   ingressEntityList: any[],
   serviceNameMap: Map<string, string>
): Promise<{areValid: boolean; invalidIngresses: string[]}> {
   let areValid: boolean = true
   const invalidIngresses = []

   for (const inputObject of ingressEntityList) {
      if (isIngressRouted(inputObject, serviceNameMap)) {
         //querying existing ingress
         const existingIngress = await fetchResource(
            kubectl,
            inputObject.kind,
            inputObject.metadata.name,
            inputObject?.metadata?.namespace
         )

         const isValid =
            !!existingIngress &&
            existingIngress?.metadata?.labels[BLUE_GREEN_VERSION_LABEL] ===
               GREEN_LABEL_VALUE
         if (!isValid) {
            core.debug(
               `Invalid ingress detected (must be in green state): ${JSON.stringify(
                  inputObject
               )}`
            )
            invalidIngresses.push(inputObject.metadata.name)
         }
         // to be valid, ingress should exist and should be green
         areValid = areValid && isValid
      }
   }
   return {areValid, invalidIngresses}
}