# GitOps-native route emission

**UNOFFICIAL/EXPERIMENTAL.** Generated by `scripts/generate-gitops-route-emission.mjs`; do not hand-edit. Regenerate with `npm run gitops:route-emission`.

Phase 2 of [hook-route-execution-plan.md](../../docs/planning/hook-route-execution-plan.md): for each hook route, the step your **existing** Argo CD or Flux controller runs — so the route is executed visibly, with no new product runtime. Derived from `data/lifecycle-routes-by-variant/`. Routes your cluster already handles (ordering/cleanup/webhook) and inputs you supply (target facts) emit nothing, stated honestly.

## argo-cd/argo-workflows

| Base | Route | Argo CD | Flux |
| --- | --- | --- | --- |
| controller-default-reviewed@1.0.14 | crd-install → `preflight-or-presync-crd-apply` | PreSync · sync-wave -2 · ServerSideApply | HelmRelease .spec.install.crds=Create (or apply CRDs first) |
| default@1.0.14 | crd-install → `preflight-or-presync-crd-apply` | PreSync · sync-wave -2 · ServerSideApply | HelmRelease .spec.install.crds=Create (or apply CRDs first) |
| minimal-crds@1.0.14 | crd-install → `self-contained-crd-base` | no extra hook — keep CRDs before dependent objects | no extra hook — make sure CRDs are applied before workloads |

## bitnami/contour

| Base | Route | Argo CD | Flux |
| --- | --- | --- | --- |
| legacy@21.1.4 | hook-phase → `preflight-or-presync` | PreSync · sync-wave -1 | apply before the release (Kustomization dependsOn) |

## gatekeeper/gatekeeper

| Base | Route | Argo CD | Flux |
| --- | --- | --- | --- |
| default@3.22.2 | hook-phase → `preflight-or-presync` | PreSync · sync-wave -1 | apply before the release (Kustomization dependsOn) |
| default@3.22.2 | hook-phase → `upgrade-action-with-receipt` | PreSync | apply before the release (Kustomization dependsOn) |

## kedacore/keda

| Base | Route | Argo CD | Flux |
| --- | --- | --- | --- |
| no-crds@2.19.0 | webhook-readiness → `webhook-readiness-observation` | wait for the certificate handoff, then observe webhook and workload health after sync | wait for the certificate handoff, then run post-apply webhook and workload health checks |

## kyverno/kyverno

| Base | Route | Argo CD | Flux |
| --- | --- | --- | --- |
| default@3.8.1 | hook-delete-policy → `delete-cleanup-policy` | none — your cluster handles it | none — your cluster handles it |
| default@3.8.1 | hook-phase → `upgrade-action-with-receipt` | PreSync | apply before the release (Kustomization dependsOn) |
| default@3.8.1 | hook-test → `explicit-test-check` | PostSync test Job (Argo has no native helm test) | HelmRelease .spec.test.enable=true |
| default@3.8.1 | hook-weight-ordering → `preserve-ordering` | no extra hook — keep CRDs before dependent objects | no extra hook — make sure CRDs are applied before workloads |
| default@3.8.1 | target-facts → `target-facts-or-preflight` | none — supply the inputs before sync | none — supply the inputs before sync |
| no-crds@3.8.1 | hook-delete-policy → `delete-cleanup-policy` | none — your cluster handles it | none — your cluster handles it |
| no-crds@3.8.1 | hook-delete-policy → `preserve-cleanup-policy` | none — your cluster handles it | none — your cluster handles it |
| no-crds@3.8.1 | hook-phase → `upgrade-action-with-receipt` | PreSync | apply before the release (Kustomization dependsOn) |
| no-crds@3.8.1 | hook-test → `explicit-test-check` | PostSync test Job (Argo has no native helm test) | HelmRelease .spec.test.enable=true |
| no-crds@3.8.1 | hook-weight-ordering → `preserve-ordering` | no extra hook — keep CRDs before dependent objects | no extra hook — make sure CRDs are applied before workloads |
| no-crds@3.8.1 | target-facts → `target-facts-or-preflight` | none — supply the inputs before sync | none — supply the inputs before sync |

## prometheus-community/kube-prometheus-stack

| Base | Route | Argo CD | Flux |
| --- | --- | --- | --- |
| default@85.3.3 | crd-install → `preflight-or-presync-crd-apply` | PreSync · sync-wave -2 · ServerSideApply | HelmRelease .spec.install.crds=Create (or apply CRDs first) |
| default@85.3.3 | hook-delete-policy → `preserve-cleanup-policy` | none — your cluster handles it | none — your cluster handles it |
| default@85.3.3 | hook-phase → `postsync-check-or-observation` | PostSync | post-apply Job / follow-on Kustomization |
| default@85.3.3 | hook-phase → `preflight-or-presync` | PreSync · sync-wave -1 | apply before the release (Kustomization dependsOn) |
| default@85.3.3 | hook-phase → `upgrade-action-with-receipt` | PreSync | apply before the release (Kustomization dependsOn) |
| default@85.3.3 | hook-weight-ordering → `preserve-ordering` | no extra hook — keep CRDs before dependent objects | no extra hook — make sure CRDs are applied before workloads |
| default@85.3.3 | target-facts → `target-facts-or-preflight` | none — supply the inputs before sync | none — supply the inputs before sync |
| default@85.3.3 | webhook-readiness → `webhook-readiness-observation` | wait for the certificate handoff, then observe webhook and workload health after sync | wait for the certificate handoff, then run post-apply webhook and workload health checks |
| no-crds@85.3.3 | crd-install → `preflight-or-presync-crd-apply` | PreSync · sync-wave -2 · ServerSideApply | HelmRelease .spec.install.crds=Create (or apply CRDs first) |
| no-crds@85.3.3 | hook-delete-policy → `preserve-cleanup-policy` | none — your cluster handles it | none — your cluster handles it |
| no-crds@85.3.3 | hook-phase → `postsync-check-or-observation` | PostSync | post-apply Job / follow-on Kustomization |
| no-crds@85.3.3 | hook-phase → `preflight-or-presync` | PreSync · sync-wave -1 | apply before the release (Kustomization dependsOn) |
| no-crds@85.3.3 | hook-phase → `upgrade-action-with-receipt` | PreSync | apply before the release (Kustomization dependsOn) |
| no-crds@85.3.3 | hook-weight-ordering → `preserve-ordering` | no extra hook — keep CRDs before dependent objects | no extra hook — make sure CRDs are applied before workloads |
| no-crds@85.3.3 | target-facts → `target-facts-or-preflight` | none — supply the inputs before sync | none — supply the inputs before sync |
| no-crds@85.3.3 | webhook-readiness → `webhook-readiness-observation` | wait for the certificate handoff, then observe webhook and workload health after sync | wait for the certificate handoff, then run post-apply webhook and workload health checks |
| default@86.1.0 | crd-install → `preflight-or-presync-crd-apply` | PreSync · sync-wave -2 · ServerSideApply | HelmRelease .spec.install.crds=Create (or apply CRDs first) |
| default@86.1.0 | hook-delete-policy → `preserve-cleanup-policy` | none — your cluster handles it | none — your cluster handles it |
| default@86.1.0 | hook-phase → `postsync-check-or-observation` | PostSync | post-apply Job / follow-on Kustomization |
| default@86.1.0 | hook-phase → `preflight-or-presync` | PreSync · sync-wave -1 | apply before the release (Kustomization dependsOn) |
| default@86.1.0 | hook-phase → `upgrade-action-with-receipt` | PreSync | apply before the release (Kustomization dependsOn) |
| default@86.1.0 | hook-weight-ordering → `preserve-ordering` | no extra hook — keep CRDs before dependent objects | no extra hook — make sure CRDs are applied before workloads |
| default@86.1.0 | target-facts → `target-facts-or-preflight` | none — supply the inputs before sync | none — supply the inputs before sync |
| default@86.1.0 | webhook-readiness → `webhook-readiness-observation` | wait for the certificate handoff, then observe webhook and workload health after sync | wait for the certificate handoff, then run post-apply webhook and workload health checks |
| no-crds@86.1.0 | crd-install → `preflight-or-presync-crd-apply` | PreSync · sync-wave -2 · ServerSideApply | HelmRelease .spec.install.crds=Create (or apply CRDs first) |
| no-crds@86.1.0 | hook-delete-policy → `preserve-cleanup-policy` | none — your cluster handles it | none — your cluster handles it |
| no-crds@86.1.0 | hook-phase → `postsync-check-or-observation` | PostSync | post-apply Job / follow-on Kustomization |
| no-crds@86.1.0 | hook-phase → `preflight-or-presync` | PreSync · sync-wave -1 | apply before the release (Kustomization dependsOn) |
| no-crds@86.1.0 | hook-phase → `upgrade-action-with-receipt` | PreSync | apply before the release (Kustomization dependsOn) |
| no-crds@86.1.0 | hook-weight-ordering → `preserve-ordering` | no extra hook — keep CRDs before dependent objects | no extra hook — make sure CRDs are applied before workloads |
| no-crds@86.1.0 | target-facts → `target-facts-or-preflight` | none — supply the inputs before sync | none — supply the inputs before sync |
| no-crds@86.1.0 | webhook-readiness → `webhook-readiness-observation` | wait for the certificate handoff, then observe webhook and workload health after sync | wait for the certificate handoff, then run post-apply webhook and workload health checks |

## Argo CD hook snippet (for an emitted route)

Add to the route's rendered hook object, e.g. a PostSync run-job:

```yaml
metadata:
  annotations:
    argocd.argoproj.io/hook: PostSync
    argocd.argoproj.io/hook-delete-policy: HookSucceeded
```
