Files
zeekayandHanzo Dev dbecd2d18b fix: API group back to apps.hanzo.ai, the group the cluster actually serves
main declared Group = "cd.hanzo.ai" while every CRD, all four Applications and
every tracked object in hanzo-k8s are on apps.hanzo.ai. There are no
cd.hanzo.ai CRDs anywhere, so a build from main binds nothing: the controller
comes up healthy, watches a group with no resources, and silently stops
reconciling the fleet. The deployed image (sha-e1b9244, all three components)
is the only reason this has not fired.

The rename reached further than the group. common.go:215 moved the ownership
annotation to cd.hanzo.ai/tracking-id while live objects carry
apps.hanzo.ai/tracking-id, and the finalizers moved too
(resources-finalizer.cd.hanzo.ai), which would leave existing objects holding
finalizers no running controller removes. Renaming a CRD group plus the
ownership annotation plus the finalizers is a data migration over every managed
object, not a source edit — shipping it as an edit is the defect. Reverting
restores the property that was lost: main is deployable at any time.

Mitigating only by luck: prune is false on all three automated Applications, so
the failure mode is "GitOps stops" rather than "GitOps deletes". Not a design.

Verified: no occurrence was a hostname (checked for the argocd.hanzo.ai-style
substring trap; none), 29 files, zero residual, register.go now byte-identical
to the deployed baseline. go build ./... exits 0. TestGetGlobalProjects and
TestGetAppOfAppSummary fail identically on unmodified origin/main — pre-existing,
not from this change.

If cd.hanzo.ai is still wanted, it needs CRD install, object conversion,
annotation and finalizer rewrite across every tracked resource, and RBAC —
executed deliberately, not carried in a source constant.

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-27 21:28:51 -07:00

36 lines
1.7 KiB
Go

package v1alpha1
import "time"
const (
DefaultSyncRetryMaxDuration time.Duration = 180000000000 // 3m0s
DefaultSyncRetryDuration time.Duration = 5000000000 // 5s
DefaultSyncRetryFactor = int64(2)
// ResourcesFinalizerName is the finalizer value which we inject to finalize deletion of an application
ResourcesFinalizerName string = "resources-finalizer.apps.hanzo.ai"
// PreDeleteFinalizerName is the finalizer that controls pre-delete hooks execution
PreDeleteFinalizerName string = "pre-delete-finalizer.apps.hanzo.ai"
// PostDeleteFinalizerName is the finalizer that controls post-delete hooks execution
PostDeleteFinalizerName string = "post-delete-finalizer.apps.hanzo.ai"
// ForegroundPropagationPolicyFinalizer is the finalizer we inject to delete application with foreground propagation policy
ForegroundPropagationPolicyFinalizer string = "resources-finalizer.apps.hanzo.ai/foreground"
// BackgroundPropagationPolicyFinalizer is the finalizer we inject to delete application with background propagation policy
BackgroundPropagationPolicyFinalizer = "resources-finalizer.apps.hanzo.ai/background"
// DefaultAppProjectName contains name of 'default' app project, which is available in every Hanzo CD installation
DefaultAppProjectName = "default"
// RevisionHistoryLimit is the max number of successful sync to keep in history
RevisionHistoryLimit = 10
// KubernetesInternalAPIServerAddr is address of the k8s API server when accessing internal to the cluster
KubernetesInternalAPIServerAddr = "https://kubernetes.default.svc"
// KubernetesInClusterName is the default name for the in-cluster configuration
KubernetesInClusterName = "in-cluster"
)