mirror of
https://github.com/hanzoai/deploy.git
synced 2026-10-07 08:44:50 +00:00
Two corrections on top of the naming pass, both found by checking the live cluster rather than the source. The rename had silently changed the user-facing annotation key from argocd.argoproj.io/sync-wave to cd.argoproj.io/sync-wave — 63 live Applications carry the old key, so deploying that would have ignored every sync-wave and broken fleet deploy ordering. The key is now cd.hanzo.ai/*, and universe 575650286 moves the ApplicationSet template that stamps it, so the controller regenerates all 63 consistently. The API group in code said argoproj.io/v1alpha1 in 157 places while the cluster has served apps.hanzo.ai/v1alpha1 since 2026-07-23 (the CRDs are applications.apps.hanzo.ai). Code now matches what is actually served. The legacy applications.argoproj.io/app-name label had ZERO live users, so it went with the rest. foo.argoproj.io test fixtures became foo.example.com — arbitrary test domains should not carry a vendor name. go build ./... exit 0. Co-authored-by: Hanzo Dev <[email protected]>
42 lines
1.3 KiB
YAML
42 lines
1.3 KiB
YAML
apiVersion: v1
|
|
kind: Pod
|
|
metadata:
|
|
name: pod-with-finalizers
|
|
annotations:
|
|
cd.hanzo.ai/sync-wave: "2"
|
|
# remove this finalizers using container preStop lifecycle hook on delete
|
|
finalizers:
|
|
- example.com/block-delete
|
|
spec:
|
|
serviceAccountName: modify-pods-sa # sa with permissions to modify pods
|
|
terminationGracePeriodSeconds: 15
|
|
containers:
|
|
- name: container
|
|
image: nginx:alpine
|
|
command: ["/bin/sh", "-c"]
|
|
args: ["sleep 10h"]
|
|
env:
|
|
- name: POD_NAME
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: metadata.name
|
|
- name: NAMESPACE
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: metadata.namespace
|
|
lifecycle:
|
|
# remove finalizers for successful delete of pod
|
|
preStop:
|
|
exec:
|
|
command:
|
|
- /bin/sh
|
|
- -c
|
|
- |
|
|
set -e
|
|
|
|
SERVICE_ACCOUNT_TOKEN=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)
|
|
POD_URL="https://kubernetes.default.svc/api/v1/namespaces/$NAMESPACE/pods/$POD_NAME"
|
|
PATCH_PAYLOAD='[{"op": "remove", "path": "/metadata/finalizers"}]'
|
|
|
|
curl -k -v -H "Authorization: Bearer $SERVICE_ACCOUNT_TOKEN" -H "Content-Type: application/json-patch+json" -X PATCH --data "$PATCH_PAYLOAD" $POD_URL
|