Skip to content

Force reconciliation

Force Reconciliation Annotation

Annotation-Based Debugging

Both Order and ArtifactWorkflow resources support manual reconciliation triggering via the arc.opendefense.cloud/force-at annotation:

apiVersion: arc.opendefense.cloud/v1alpha1
kind: Order
metadata:
  name: my-order
  annotations:
    arc.opendefense.cloud/force-at: "1735689600"  # Unix timestamp
spec:
  # ...

Set the annotation as follows:

kubectl annotate --overwrite orders.arc.opendefense.cloud/<order-name> \
"arc.opendefense.cloud/force-at"="$(date +%s)"

Force Reconcile Logic

Controllers check the annotation and compare it against the last force reconciliation timestamp: For Order, force reconciliation deletes all ArtifactWorkflows to trigger fresh creation. For ArtifactWorkflow, it deletes the Argo Workflow.

Reconciliation Timestamps

Both Order and ArtifactWorkflow resources track reconciliation timestamps in their status:

Field Type Purpose
.status.lastReconcileAt metav1.Time Timestamp of most recent reconciliation
.status.lastForceAt metav1.Time Timestamp of most recent force reconciliation