mirror of
https://github.com/argoproj/argo-cd
synced 2026-04-21 17:07:16 +00:00
Signed-off-by: Hannah DeFazio <h2defazio@gmail.com> Co-authored-by: Hannah DeFazio <h2defazio@gmail.com>
68 lines
2.2 KiB
Lua
68 lines
2.2 KiB
Lua
local health_status = {}
|
|
|
|
health_status.status = "Progressing"
|
|
health_status.message = "Waiting for InferenceService to report status..."
|
|
|
|
if obj.status ~= nil then
|
|
|
|
local progressing = false
|
|
local degraded = false
|
|
local status_false = 0
|
|
local status_unknown = 0
|
|
local msg = ""
|
|
|
|
if obj.status.modelStatus ~= nil then
|
|
if obj.status.modelStatus.transitionStatus ~= "UpToDate" then
|
|
if obj.status.modelStatus.transitionStatus == "InProgress" then
|
|
progressing = true
|
|
else
|
|
degraded = true
|
|
end
|
|
msg = msg .. "0: transitionStatus | " .. obj.status.modelStatus.transitionStatus
|
|
end
|
|
end
|
|
|
|
if obj.status.conditions ~= nil then
|
|
for i, condition in pairs(obj.status.conditions) do
|
|
-- Check if the InferenceService is Stopped
|
|
if condition.type == "Stopped" and condition.status == "True" then
|
|
health_status.status = "Suspended"
|
|
health_status.message = "InferenceService is Stopped"
|
|
return health_status
|
|
end
|
|
|
|
-- Check for unhealthy statuses
|
|
-- Note: The Stopped condition's healthy status is False
|
|
if condition.status == "Unknown" then
|
|
status_unknown = status_unknown + 1
|
|
elseif condition.status == "False" and condition.type ~= "Stopped" then
|
|
status_false = status_false + 1
|
|
end
|
|
|
|
-- Add the error messages if the status is unhealthy
|
|
if condition.status ~= "True" and condition.type ~= "Stopped" then
|
|
msg = msg .. " | " .. i .. ": " .. condition.type .. " | " .. condition.status
|
|
if condition.reason ~= nil and condition.reason ~= "" then
|
|
msg = msg .. " | " .. condition.reason
|
|
end
|
|
if condition.message ~= nil and condition.message ~= "" then
|
|
msg = msg .. " | " .. condition.message
|
|
end
|
|
end
|
|
|
|
end
|
|
|
|
if progressing == false and degraded == false and status_unknown == 0 and status_false == 0 then
|
|
health_status.status = "Healthy"
|
|
msg = "InferenceService is healthy."
|
|
elseif degraded == false and status_unknown >= 0 then
|
|
health_status.status = "Progressing"
|
|
else
|
|
health_status.status = "Degraded"
|
|
end
|
|
|
|
health_status.message = msg
|
|
end
|
|
end
|
|
|
|
return health_status
|