argo-cd/resource_customizations/postgresql.cnpg.io/Cluster/actions/discovery.lua
Rouke Broersma ede9229353
fix(actions): Use correct annotation for CNPG suspend/resume (#26711)
Signed-off-by: Rouke Broersma <rouke.broersma@infosupport.com>
2026-03-08 15:47:43 +02:00

48 lines
1.5 KiB
Lua

local actions = {}
-- https://github.com/cloudnative-pg/cloudnative-pg/tree/main/internal/cmd/plugin/restart
actions["restart"] = {
["iconClass"] = "fa fa-fw fa-recycle",
["displayName"] = "Rollout restart Cluster"
}
-- https://github.com/cloudnative-pg/cloudnative-pg/tree/main/internal/cmd/plugin/reload
actions["reload"] = {
["iconClass"] = "fa fa-fw fa-rotate-right",
["displayName"] = "Reload all Configuration"
}
-- https://github.com/cloudnative-pg/cloudnative-pg/tree/main/internal/cmd/plugin/promote
actions["promote"] = {
["iconClass"] = "fa fa-fw fa-angles-up",
["displayName"] = "Promote Replica to Primary",
["disabled"] = (not obj.status.instancesStatus or not obj.status.instancesStatus.healthy or #obj.status.instancesStatus.healthy < 2),
["params"] = {
{
["name"] = "instance",
["default"] = "any"
}
}
}
-- Suspend reconciliation loop for a cluster
-- https://cloudnative-pg.io/docs/1.28/failure_modes/#disabling-reconciliation
local isSuspended = false
if obj.metadata and obj.metadata.annotations and obj.metadata.annotations["cnpg.io/reconciliationLoop"] == "disabled" then
isSuspended = true
end
-- Add suspend/resume actions based on current state
if isSuspended then
actions["resume"] = {
["iconClass"] = "fa fa-fw fa-play",
["displayName"] = "Resume Reconciliation"
}
else
actions["suspend"] = {
["iconClass"] = "fa fa-fw fa-pause",
["displayName"] = "Suspend Reconciliation"
}
end
return actions