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