cleanup וצ'קליסט לפני הגשה
סדר הניקוי
Section titled “סדר הניקוי”- ה-root Application קודם. ה-finalizer
resources-finalizer.argocd.argoproj.ioגורם למחיקה לרדת (cascade) לילדים ולמשאבים שלהם. אם מוחקים namespace לפני, Argo מייצר מחדש. - שאר ה-Applications, אם נשארו.
- ה-namespaces של ה-envs ו-observability. ה-PVC ונתוניו נמחקים איתם.
- repo Secrets ב-
argocd(רק אלה שה-bootstrap יצר). - חומר מקומי נשאר:
~/.local/share/trident/(TLS, credentials) לא נמחק.
kubectl delete application <APP> -n argocd --ignore-not-found --wait=truekubectl delete namespace <NS> --ignore-not-found --wait=truekubectl delete secret <SECRET> -n argocd --ignore-not-foundלוודא שנקי
Section titled “לוודא שנקי”kubectl get applications -n argocdkubectl get nskubectl get secret -n argocd -l argocd.argoproj.io/secret-type=repositoryאיך נראה טוב: No resources found ל-Applications ול-Secrets; אין namespaces של הפרויקט ב-kubectl get ns. Application תקוע ב-Terminating? בדוק kubectl get application <APP> -n argocd -o jsonpath='{.metadata.finalizers}'.
רצף האידמפוטנטיות
Section titled “רצף האידמפוטנטיות”# script paths as in your project (bash/templates uses scripts/ and bootstrap/)bash verify.sh && bash cleanup.sh && bash verify-clean.sh && bash cleanup.sh && bash verify-clean.shכל חוליה חייבת לעבור. ה-cleanup.sh השני רץ על cluster נקי ולכן חייב להצליח: --ignore-not-found ובדיקת קיום לפני מחיקה, לא exit 1 על "לא נמצא".
צ'קליסט MUST לפני הגשה
Section titled “צ'קליסט MUST לפני הגשה”התאם לחוזה שקיבלת (האזורים כלליים):
- Artifact: images ב-registry הפרטי, tag = candidate, לא
latest; אין credential ב-Git - Runtime: לכל env: השירותים + DB + queue ב-namespace שלו; DB שורד החלפת Pod; probes נכונים; labels נדרשים
- Front door:
/infoב-HTTPS מחזירversion= candidate ו-environment= env - Templates: גרסאות מדויקות, ב-tag בלתי-משתנה, ללא עריכה
- GitOps: root הוא האובייקט היחיד שהוחל ידנית; automated + selfHeal + prune;
versions/<ENV>.yamlנכתב רק ע"יpromote.sh - Delivery:
devל-DEV,mainל-STAGING, PROD רק דרך הכפתור הידני של אותו pipeline - Observability: סדרות עם
namespace=<NS>; ה-dashboard מראה env אחד לכל בחירה; SHOULD אם נדרש - Secrets ו-access: Secrets בכל namespace; credential קריאה ל-Argo נפרד מכתיבה של CI; אין token/סיסמה בשום repo
- אין
TODOו-repoURL: ""שנשארו:grep -rnE 'TODO|repoURL: ""' <FILE> - אין רווח בסוף שורה / CRLF:
grep -nP ' +$' <FILE> - כל deliverable קיים ולא ריק, ו-git נקי ונדחף (
git status,git log origin/main..HEADריק) - הרצת
verifyואז הרצף האידמפוטנטי עברה ללא כשל
איך מוודאים: כל סעיף עם ראיה מהיומן, לא "נראה לי". הסדר ההגיוני: exam-method.