github.com/argoproj/argo-cd/v3@v3.2.1/test/e2e/testdata/syncwaves-prune-order/pod.yaml (about) 1 apiVersion: v1 2 kind: Pod 3 metadata: 4 name: pod-with-finalizers 5 annotations: 6 argocd.argoproj.io/sync-wave: "2" 7 # remove this finalizers using container preStop lifecycle hook on delete 8 finalizers: 9 - example.com/block-delete 10 spec: 11 serviceAccountName: modify-pods-sa # sa with permissions to modify pods 12 terminationGracePeriodSeconds: 15 13 containers: 14 - name: container 15 image: nginx:alpine 16 command: ["/bin/sh", "-c"] 17 args: ["sleep 10h"] 18 env: 19 - name: POD_NAME 20 valueFrom: 21 fieldRef: 22 fieldPath: metadata.name 23 - name: NAMESPACE 24 valueFrom: 25 fieldRef: 26 fieldPath: metadata.namespace 27 lifecycle: 28 # remove finalizers for successful delete of pod 29 preStop: 30 exec: 31 command: 32 - /bin/sh 33 - -c 34 - | 35 set -e 36 37 SERVICE_ACCOUNT_TOKEN=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token) 38 POD_URL="https://kubernetes.default.svc/api/v1/namespaces/$NAMESPACE/pods/$POD_NAME" 39 PATCH_PAYLOAD='[{"op": "remove", "path": "/metadata/finalizers"}]' 40 41 curl -k -v -H "Authorization: Bearer $SERVICE_ACCOUNT_TOKEN" -H "Content-Type: application/json-patch+json" -X PATCH --data "$PATCH_PAYLOAD" $POD_URL