Files
zeekayandHanzo Dev 84ee9fa0ce cd: kill the argo naming — binaries, packages, identifiers
Every command is cd-*: cd, cd-server, cd-repo-server,
cd-application-controller, cd-applicationset-controller, cd-cmp-server,
cd-commit-server, cd-dex, cd-git-ask-pass, cd-k8s-auth, cd-notification.
util/argo is util/cd; util/notification/argocd is util/notification/cd.

Preserved deliberately: github.com/argoproj/argocd-example-apps is an
EXTERNAL repo used as an e2e fixture, and notifications-engine + pkg/v2 are
real dependencies. Renaming a URL we do not own would break the tests.

Two bugs I made and caught, both from a careless sed:
- s/argo/cd/g turned 'argocd' into 'cdcd' in two directory names
- renaming the package declaration left every call site saying argo.X

go build ./... exit 0.

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-28 16:00:25 -07:00

90 lines
3.2 KiB
Lua

-- CRD spec: https://gitops-promoter.readthedocs.io/en/latest/crd-specs/#pullrequest
-- Promoter finalizers: https://gitops-promoter.readthedocs.io/en/latest/debugging/finalizers/
local function formatDeletingWithFinalizers(base, finalizers, catalog)
if not finalizers then
return base
end
local parts = { base }
for _, f in ipairs(finalizers) do
local e = catalog[f]
if e then
table.insert(parts, f .. ": " .. e.wait .. " Risk if removed manually: " .. e.risk)
end
end
return table.concat(parts, " ")
end
local hs = {}
hs.status = "Progressing"
hs.message = "Initializing pull request"
-- Check for deletion timestamp
if obj.metadata.deletionTimestamp then
hs.status = "Progressing"
hs.message = formatDeletingWithFinalizers(
"Pull request is being deleted.",
obj.metadata.finalizers,
{
["pullrequest.promoter.argoproj.io/finalizer"] = {
wait = "Waiting for SCM closure or reconciliation of the pull request.",
risk = "the real PR can stay open after the CR is gone.",
},
["changetransferpolicy.promoter.argoproj.io/pullrequest-finalizer"] = {
wait = "Waiting for the ChangeTransferPolicy to observe PR identity and state.",
risk = "promotion status or history can be wrong or racy.",
},
}
)
return hs
end
-- Check if status exists
if not obj.status then
return hs
end
-- Check for reconciliation conditions
local hasReadyCondition = false
if obj.status.conditions then
for _, condition in ipairs(obj.status.conditions) do
if condition.type == "Reconciled" or condition.type == "Ready" then
hasReadyCondition = true
-- Check observedGeneration vs metadata.generation within the reconciliation condition
if condition.observedGeneration and obj.metadata.generation and condition.observedGeneration ~= obj.metadata.generation then
hs.status = "Progressing"
hs.message = "Waiting for pull request 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"
-- Don't include ReconciliationError in the message since it's redundant
if reason == "ReconciliationError" then
hs.message = "Pull request reconciliation failed: " .. msg
else
hs.message = "Pull request reconciliation failed (" .. reason .. "): " .. msg
end
return hs
end
end
end
end
if not hasReadyCondition then
hs.status = "Progressing"
hs.message = "Pull request is not ready yet"
return hs
end
-- This shouldn't happen, but if the condition says reconciliation succeeded, just trust it.
if not obj.status.id or not obj.status.state then
hs.status = "Healthy"
hs.message = "Pull request is healthy"
return hs
end
hs.status = "Healthy"
hs.message = "Pull request is " .. obj.status.state .. " as PR " .. obj.status.id
return hs