במאמר הזה מוסבר איך יעדים בהתאמה אישית פועלים ב-Cloud Deploy.
Cloud Deploy כולל תמיכה מובנית בסביבות זמן ריצה שונות כיעדים. אבל רשימת סוגי היעדים הנתמכים היא סופית. באמצעות יעדים מותאמים אישית, אפשר לפרוס למערכות אחרות בנוסף לזמני הריצה הנתמכים.
יעד בהתאמה אישית הוא יעד שמייצג סביבת פלט שרירותית, שאינה סביבת זמן ריצה שנתמכת על ידי Cloud Deploy.
בדף יצירת יעד מותאם אישית מתואר התהליך של הגדרת סוג יעד מותאם אישית והטמעתו כיעד בצינור להעברת נתונים.
מה כולל יעד בהתאמה אישית?
כל יעד מותאם אישית מורכב מהרכיבים הבאים:
Tasks, שמגדיר איך לבצע רינדור ופריסה עבור סוג היעד המותאם אישית
ההטמעות של הפונקציות custom render ו-custom deploy צורכות ערכים שסופקו על ידי Cloud Deploy, והן חייבות לספק קבוצה של פלטים נדרשים.
העיבוד בהתאמה אישית הוא אופציונלי, אבל צריך ליצור אותו אלא אם יעד בהתאמה אישית יפעל בצורה תקינה אם הוא יעובד באמצעות מעבדי העיבוד המובנים של Cloud Deploy.
-
CustomTargetTypeהוא משאב של Cloud Deploy שמזהה את המשימות שמשמשות יעדים מהסוג הזה לעיבוד של גרסאות ולפעילויות פריסה של השקה. -
הגדרת היעד של יעד מותאם אישית זהה להגדרת היעד של כל סוג אחר של יעד, מלבד העובדה שהיא כוללת את המאפיין
customTarget, שהערך שלו הוא השם שלCustomTargetType.
אחרי שמתקינים את הרכיבים האלה, אפשר להשתמש ביעד כמו בכל יעד אחר, להפנות אליו מהתקדמות צינור ההפצה ולהשתמש בכל התכונות של Cloud Deploy, כמו קידום ואישורים וחזרה לגרסה קודמת.
דוגמה
במדריך למתחילים הגדרה ושימוש בסוג יעד בהתאמה אישית נוצר סוג יעד בהתאמה אישית שכולל פקודות להפעלה בקובץ אימג' של קונטיינר – פקודה אחת לרנדור ופקודה אחת לפריסה. הפקודות, במקרה הזה, רק מוסיפות טקסט לקובצי הפלט הנדרשים לצורך עיבוד ופריסה.
דוגמאות נוספות מופיעות במאמר דוגמאות ליעדים מותאמים אישית.
קלטים ופלטים נדרשים
כל סוג יעד מותאם אישית שמוגדר ב-Cloud Deploy צריך לעמוד בדרישות של קלט ופלט, גם עבור עיבוד וגם עבור פריסה. בקטע הזה מפורטים הקלט והפלט הנדרשים, ומוסבר איך מספקים אותם.
Cloud Deploy מספק את ערכי הקלט הנדרשים, גם לעיבוד וגם לפריסה, כמשתני סביבה. בסעיפים הבאים מפורטים נתוני הקלט האלה, וגם נתוני הפלט שהפונקציה המותאמת אישית לעיבוד ולהצגה צריכה להחזיר.
פריסת פרמטרים כמשתני סביבה
בנוסף למשתני הסביבה שמפורטים בקטע הזה, Cloud Deploy יכול להעביר למאגרי התגים המותאמים אישית שלכם כל פרמטר פריסה שהגדרתם.
נתונים שמזינים לרכיבי Custom Render
לעיבוד בהתאמה אישית, Cloud Deploy מספק את הקלטים הבאים כמשתני סביבה. בפריסות רב-שלביות (פריסות קנרית), Cloud Deploy מספק את המשתנים האלה לכל שלב.
CLOUD_DEPLOY_PROJECT Google Cloud project number – מספר הפרויקט שבו נוצר יעד בהתאמה אישית.
CLOUD_DEPLOY_PROJECT_IDמזהה הפרויקט Google Cloud של הפרויקט.
CLOUD_DEPLOY_LOCATIONGoogle Cloud האזור של סוג היעד המותאם אישית.
CLOUD_DEPLOY_DELIVERY_PIPELINEהשם של צינור העברת נתונים ב-Cloud Deploy שמפנה לסוג היעד המותאם אישית.
CLOUD_DEPLOY_RELEASEהשם של הגרסה שעבורה מופעלת פעולת הרינדור.
CLOUD_DEPLOY_TARGETהשם של יעד Cloud Deploy שמשתמש בסוג היעד המותאם אישית.
CLOUD_DEPLOY_PHASEשלב ההשקה שאליו שייך הרכיב.
CLOUD_DEPLOY_REQUEST_TYPEבמקרה של עיבוד בהתאמה אישית, הערך הזה הוא תמיד
RENDER.CLOUD_DEPLOY_FEATURESרשימה מופרדת בפסיקים של תכונות Cloud Deploy שהקונטיינר בהתאמה אישית צריך לתמוך בהן. המשתנה הזה מאוכלס על סמך תכונות שהוגדרו בצינור העברת הנתונים.
אם ההטמעה שלכם לא תומכת בתכונות שמופיעות ברשימה הזו, מומלץ שהיא תיכשל במהלך העיבוד.
בפריסות רגילות, השדה הזה ריק. בפריסות קנרית, הערך הוא
CANARY. אם הערך שסופק על ידי Cloud Deploy הואCANARY, ההפעלה של הרכיב מתבצעת בכל שלב של הקנרי. אחוז הקנרי בכל שלב מופיע במשתנה הסביבהCLOUD_DEPLOY_PERCENTAGE_DEPLOY.CLOUD_DEPLOY_PERCENTAGE_DEPLOYאחוז הפריסה שמשויך לפעולת הרינדור הזו. אם משתנה הסביבה
CLOUD_DEPLOY_FEATURESמוגדר ל-CANARY, הפונקציה שלכם לרינדור בהתאמה אישית נקראת לכל שלב, והמשתנה הזה מוגדר לאחוז הקנרי לכל שלב. בפריסות רגילות ובפריסות קנרית שהגיעו לשלבstable, הערך הוא100.CLOUD_DEPLOY_STORAGE_TYPEספק שירותי האחסון. תמיד
GCS.CLOUD_DEPLOY_INPUT_GCS_PATHהנתיב ב-Cloud Storage לארכיון של קובץ הרינדור שנכתב כשנוצרה הגרסה.
CLOUD_DEPLOY_OUTPUT_GCS_PATHהנתיב ב-Cloud Storage שאליו צפויים להיות מועלים ארטיפקטים של מאגר התוכן המותאם אישית לצורך פריסה. שימו לב שהרנדר צריך להעלות קובץ בשם
results.jsonשמכיל את התוצאות של פעולת הרנדר הזו. מידע נוסף זמין במאמר בנושא פלט מרינדור בהתאמה אישית.
נתוני פלט מרינדור בהתאמה אישית
העיבוד המותאם אישית צריך לספק את המידע שמתואר בקטע הזה. המידע צריך להיכלל בקובץ התוצאות, שנקרא results.json, שנמצא בקטגוריה של Cloud Storage שסופקה על ידי Cloud Deploy (CLOUD_DEPLOY_OUTPUT_GCS_PATH).
קובץ או קבצים של תצורה שעברו עיבוד
קובץ
results.jsonשמכיל את הפרטים הבאים:אינדיקציה למצב ההצלחה או הכישלון של הרינדור המותאם אישית.
הערכים התקינים הם
SUCCEEDEDו-FAILED.(אופציונלי) הודעות שגיאה שנוצרות על ידי העיבוד בהתאמה אישית.
הנתיב של Cloud Storage לקובץ התצורה או לקבצים שעברו עיבוד.
הנתיב של כל קובצי התצורה שעברו עיבוד הוא ה-URI המלא. חלק מהערכים מוזנים באמצעות הערך של
CLOUD_DEPLOY_OUTPUT_GCS_PATHשמסופק על ידי Cloud Deploy.חובה לספק את קובץ התצורה שעבר עיבוד, גם אם הוא ריק. התוכן של הקובץ יכול להיות כל דבר, בכל פורמט, כל עוד אפשר להשתמש בו בפריסה המותאמת אישית. מומלץ שהקובץ יהיה קריא, כדי שאתם ומשתמשים אחרים בארגון תוכלו לצפות בו בכלי לבדיקת גרסאות.
(אופציונלי) מיפוי של מטא-נתונים שרוצים לכלול
המטא-נתונים האלה נוצרים על ידי הטירגוט המותאם אישית. המטא-נתונים האלה מאוחסנים בפריט התוכן, בשדה
custom_metadata.
אם אתם צריכים לבדוק את הקובץ results.json, למשל לצורך ניפוי באגים, תוכלו למצוא את ה-URI שלו ב-Cloud Storage ביומני Cloud Build.
קובץ לדוגמה של תוצאות עיבוד
הדוגמה הבאה היא של פלט קובץ results.json שנוצר על ידי עיבוד בהתאמה אישית:
{
"resultStatus": "SUCCEEDED",
"manifestFile": "gs://bucket/my-pipeline/release-001/rollout-a/01234/custom-output/manifest.yaml",
"failureMessage": "",
"metadata": {
"key1": "val",
"key2": "val"
}
}
הנתונים שמזינים בפריסות בהתאמה אישית
בפריסות בהתאמה אישית, Cloud Deploy מספק את הקלט הבא כמשתני סביבה:
CLOUD_DEPLOY_PROJECT Google Cloud project number – מספר הפרויקט שבו נוצר יעד בהתאמה אישית.
CLOUD_DEPLOY_PROJECT_IDמזהה הפרויקט Google Cloud של הפרויקט.
CLOUD_DEPLOY_LOCATIONGoogle Cloud האזור של סוג היעד המותאם אישית.
CLOUD_DEPLOY_DELIVERY_PIPELINEהשם של צינור העברת הנתונים של Cloud Deploy שמפנה ליעד שמשתמש בסוג היעד המותאם אישית.
CLOUD_DEPLOY_RELEASEהשם של הגרסה שעבורה מופעלת פעולת הפריסה.
CLOUD_DEPLOY_ROLLOUTהשם של הפריסה ההדרגתית ב-Cloud Deploy שאליה משויכת הפריסה הזו.
CLOUD_DEPLOY_TARGETהשם של יעד Cloud Deploy שמשתמש בסוג היעד המותאם אישית.
CLOUD_DEPLOY_PHASEשלב ההשקה שאליו מתייחס הפריסה.
CLOUD_DEPLOY_REQUEST_TYPEבפריסה מותאמת אישית, הערך הזה הוא תמיד
DEPLOY.CLOUD_DEPLOY_FEATURESרשימה מופרדת בפסיקים של תכונות Cloud Deploy שהקונטיינר בהתאמה אישית צריך לתמוך בהן. המשתנה הזה מאוכלס על סמך תכונות שהוגדרו בצינור העברת הנתונים.
אם ההטמעה שלכם לא תומכת בתכונות שמופיעות ברשימה הזו, מומלץ שהיא תיכשל במהלך העיבוד.
בפריסות רגילות, השדה הזה ריק. בפריסות קנרית, הערך הוא
CANARY. אם הערך שסופק על ידי Cloud Deploy הואCANARY, הפריסה מופעלת לכל שלב בפריסת הקנרית. אחוז הקנרי בכל שלב מופיע במשתנה הסביבהCLOUD_DEPLOY_PERCENTAGE_DEPLOY.CLOUD_DEPLOY_PERCENTAGE_DEPLOYאחוז הפריסה שמשויך לפעולת הפריסה הזו. אם משתנה הסביבה
CLOUD_DEPLOY_FEATURESמוגדר ל-CANARY, הפריסה המותאמת אישית מופעלת לכל שלב, והמשתנה הזה מוגדר לאחוז הקנרי לכל שלב. הפריסה צריכה לפעול בכל שלב.CLOUD_DEPLOY_STORAGE_TYPEספק שירותי האחסון. תמיד
GCS.CLOUD_DEPLOY_INPUT_GCS_PATHהנתיב ב-Cloud Storage שבו מעבד התצורה המותאם אישית כתב את קובצי התצורה שעברו עיבוד.
CLOUD_DEPLOY_SKAFFOLD_GCS_PATHהנתיב של Cloud Storage לתצורת Skaffold שעברה עיבוד. אם סיפקתם קובץ תצורה של Skaffold עם הגרסה.
CLOUD_DEPLOY_MANIFEST_GCS_PATHהנתיב ב-Cloud Storage לקובץ המניפסט שעבר עיבוד.
CLOUD_DEPLOY_OUTPUT_GCS_PATHהנתיב לספריית Cloud Storage שאליה צפוי מאגר הפריסה המותאם אישית להעלות את ארטיפקטי הפריסה. מידע נוסף זמין במאמר בנושא פלט מפריסה בהתאמה אישית.
נתוני פלט מפריסה בהתאמה אישית
הפריסה המותאמת אישית צריכה לכתוב קובץ פלט results.json. הקובץ הזה צריך להיות ממוקם בקטגוריה של Cloud Storage שסופקה על ידי Cloud Deploy (CLOUD_DEPLOY_OUTPUT_GCS_PATH).
הקובץ צריך לכלול את הפרטים הבאים:
אינדיקציה למצב ההצלחה או הכישלון של הפריסה המותאמת אישית.
אלה הסטטוסים התקינים:
SUCCEEDEDFAILEDSKIPPED
האפשרות הזו מיועדת לפריסות של גרסת גישוש שבהן מדלגים על שלבי הגישוש, כדי לעבור ישירות אל
stable.(אופציונלי) רשימה של קבצים של ארטיפקטים לפריסה, בצורה של נתיבים ב-Cloud Storage
הנתיב הוא ה-URI המלא. חלק מהשדות מאוכלסים באמצעות הערך של
CLOUD_DEPLOY_OUTPUT_GCS_PATHשמסופק על ידי Cloud Deploy.הקבצים שמופיעים כאן מאוכלסים במשאבים של הרצת משימה כפריטי מידע שנוצרו בתהליך של פיתוח (Artifact) לצורך פריסה.
(אופציונלי) הודעת שגיאה, אם הפריסה המותאמת אישית לא מצליחה (החזרת מצב
FAILED)ההודעה הזו משמשת לאכלוס
failure_messageבהפעלת העבודה של הפריסה הזו.(אופציונלי) הודעת דילוג, כדי לספק מידע נוסף אם הפריסה מחזירה סטטוס
SKIPPED.(אופציונלי) מיפוי של מטא-נתונים שרוצים לכלול
המטא-נתונים האלה נוצרים על ידי הטירגוט המותאם אישית. המטא-נתונים האלה מאוחסנים בהפעלת העבודה ובפריסה, בשדה
custom_metadata.
אם אתם צריכים לבדוק את הקובץ results.json, למשל לצורך ניפוי באגים, תוכלו למצוא את ה-URI שלו ב-Cloud Storage ביומנים של Cloud Build.
קובץ תוצאות פריסה לדוגמה
הפלט הבא הוא קובץ results.json לדוגמה שנוצר מפריסה בהתאמה אישית:
{
"resultStatus": "SUCCEEDED",
"artifactFiles": [
"gs://bucket/my-pipeline/release-001/rollout-a/01234/custom-output/file1.yaml",
"gs://bucket/my-pipeline/release-001/rollout-a/01234/custom-output/file2.yaml"
],
"failureMessage": "",
"skipMessage": "",
"metadata": {
"key1": "val",
"key2": "val"
}
}
מידע נוסף על יעדים מותאמים אישית
כמה דברים שכדאי לזכור כשמגדירים ומשתמשים בסוגי טירגוט מותאמים אישית.
ביצוע המשימות
משימות העיבוד והפריסה המותאמות אישית שלכם מורצות בסביבת ההרצה של Cloud Deploy. אי אפשר להגדיר את המשימות כך שיפעלו באשכול Google Kubernetes Engine.
יעדים מותאמים אישית ואסטרטגיות פריסה
יש תמיכה מלאה ביעדים בהתאמה אישית בהטמעות רגילות.
Cloud Deploy תומך בפריסות קנרית כל עוד מעבד התבניות והפריסה המותאמים אישית תומכים בתכונה הקנרית.
צריך להשתמש בהגדרה מותאמת אישית של קנרי. אין תמיכה ב-canaries אוטומטיים ומותאמים אישית עם יעדים מותאמים אישית.
יעדים מותאמים אישית ופרמטרים של פריסת תגים
אפשר להשתמש בפרמטרים של פריסה עם מיקודים בהתאמה אישית. אפשר להגדיר אותם בשלב stage של צינור ההפצה, ביעד שמשתמש בסוג יעד מותאם אישית או בrelease.
פרמטרים של פריסה מועברים לקונטיינרים מותאמים אישית של רינדור ופריסה, כמשתני סביבה, בנוסף לפרמטרים שכבר סופקו.
דוגמאות ליעדים בהתאמה אישית
מאגר הדוגמאות cloud-deploy-samples מכיל קבוצה של הטמעות לדוגמה של יעדים מותאמים אישית. אלה הדוגמאות שזמינות:
GitOps
Vertex AI
Terraform
Infrastructure Manager
Helm
כל דוגמה כוללת מדריך למתחילים.
הדוגמאות האלה הן לא מוצר נתמך Google Cloud ולא מכוסות בחוזה תמיכה. Google Cloud כדי לדווח על באגים או לבקש תכונות במוצר Google Cloud , פנו לתמיכה של Google Cloud.
המאמרים הבאים
אחרי שהסברנו על יעדים מותאמים אישית, נסביר איך להגדיר אותם ולהשתמש בהם.
אפשר לנסות את המדריך למתחילים: הגדרה ושימוש בסוג יעד מותאם אישית.
מידע נוסף על סביבות ההרצה של Cloud Deploy