mirror of
https://github.com/hanzoai/deploy.git
synced 2026-10-07 08:44:50 +00:00
42 lines
1.3 KiB
Lua
42 lines
1.3 KiB
Lua
if obj.status == nil or obj.status.conditions == nil then
|
|
-- no status info available yet
|
|
return {
|
|
status = "Progressing",
|
|
message = "Waiting for Keycloak status conditions to exist",
|
|
}
|
|
end
|
|
|
|
-- Sort conditions by lastTransitionTime, from old to new.
|
|
-- Ensure that conditions with nil lastTransitionTime are always sorted after those with non-nil values.
|
|
table.sort(obj.status.conditions, function(a, b)
|
|
-- Nil values are considered "less than" non-nil values.
|
|
-- This means that conditions with nil lastTransitionTime will be sorted to the end.
|
|
if a.lastTransitionTime == nil then
|
|
return false
|
|
elseif b.lastTransitionTime == nil then
|
|
return true
|
|
else
|
|
-- If both have non-nil lastTransitionTime, compare them normally.
|
|
return a.lastTransitionTime < b.lastTransitionTime
|
|
end
|
|
end)
|
|
|
|
for _, condition in ipairs(obj.status.conditions) do
|
|
if condition.type == "Ready" and condition.status == "True" then
|
|
return {
|
|
status = "Healthy",
|
|
message = "",
|
|
}
|
|
elseif condition.type == "HasErrors" and condition.status == "True" then
|
|
return {
|
|
status = "Degraded",
|
|
message = "Has Errors: " .. condition.message,
|
|
}
|
|
end
|
|
end
|
|
|
|
-- We couldn't find matching conditions yet, so assume progressing
|
|
return {
|
|
status = "Progressing",
|
|
message = "",
|
|
} |