argo-cd/resource_customizations/promoter.argoproj.io/ScmProvider/health.lua
Michael Crenshaw daadf868db
feat(health): additional promoter.argoproj.io health checks (#27170)
Signed-off-by: Michael Crenshaw <350466+crenshaw-dev@users.noreply.github.com>
2026-04-13 17:09:21 -04:00

57 lines
1.9 KiB
Lua

local hs = {}
hs.status = "Progressing"
hs.message = "Initializing SCM provider"
-- ScmProvider (gitops-promoter v1alpha1): credentials / SCM API reachability via standard Ready condition.
if obj.metadata.deletionTimestamp then
hs.status = "Progressing"
hs.message = "ScmProvider is being deleted"
return hs
end
if not obj.status then
return hs
end
local hasReadyCondition = false
if obj.status.conditions then
for _, condition in ipairs(obj.status.conditions) do
if condition.type == "Ready" then
hasReadyCondition = true
if condition.observedGeneration and obj.metadata.generation and condition.observedGeneration ~= obj.metadata.generation then
hs.status = "Progressing"
hs.message = "Waiting for ScmProvider spec update to be observed"
return hs
end
if condition.status == "False" then
hs.status = "Degraded"
local msg = condition.message or "Unknown error"
local reason = condition.reason or "Unknown"
if reason == "ReconciliationError" then
hs.message = "SCM provider validation failed: " .. msg
else
hs.message = "SCM provider not ready (" .. reason .. "): " .. msg
end
return hs
end
if condition.status == "Unknown" then
hs.status = "Progressing"
local msg = condition.message or "Unknown"
local reason = condition.reason or "Unknown"
hs.message = "SCM provider readiness unknown (" .. reason .. "): " .. msg
return hs
end
end
end
end
if not hasReadyCondition then
hs.status = "Progressing"
hs.message = "ScmProvider Ready condition is missing"
return hs
end
hs.status = "Healthy"
hs.message = "SCM provider is ready"
return hs