local hs = { status = "Progressing", message = "Update in progress" } if obj.status ~= nil then -- ConfigConnector and ConfigConnectorContext use status.healthy instead of conditions if (obj.kind == "ConfigConnector" or obj.kind == "ConfigConnectorContext") and obj.status.healthy ~= nil then -- Check if status is stale if obj.status.observedGeneration == nil or obj.status.observedGeneration == obj.metadata.generation then if obj.status.healthy == true then hs.status = "Healthy" hs.message = obj.kind .. " is healthy" return hs else hs.status = "Degraded" hs.message = obj.kind .. " is not healthy" return hs end end end if obj.status.conditions ~= nil then -- Progressing health while the resource status is stale, skip if observedGeneration is not set if obj.status.observedGeneration == nil or obj.status.observedGeneration == obj.metadata.generation then for i, condition in ipairs(obj.status.conditions) do -- Up To Date if condition.reason == "UpToDate" and condition.status == "True" then hs.status = "Healthy" hs.message = condition.message return hs end -- Update Failed if condition.reason == "UpdateFailed" then hs.status = "Degraded" hs.message = condition.message return hs end -- Dependency Not Found if condition.reason == "DependencyNotFound" then hs.status = "Degraded" hs.message = condition.message return hs end -- Dependency Not Ready if condition.reason == "DependencyNotReady" then hs.status = "Suspended" hs.message = condition.message return hs end end end end end return hs