Deployment Manager Convert (DM Convert) הוא כלי שאפשר להשתמש בו כדי להמיר הגדרות ותבניות של Deployment Manager לפורמטים אחרים של הגדרות הצהרתיות ש-Google תומכת בהם. נכון לעכשיו, Google תומכת ב-Terraform וב-Kubernetes Resource Model (KRM).
למה כדאי להמיר ל-Terraform או ל-KRM?
Terraform ו-KRM הן אפשרויות פופולריות לניהול Google Cloud שירותים ותשתית. הם מציעים מערכות אקולוגיות שמתעדכנות באופן פעיל, עם תמיכה בתכונות מודרניות כמו ניהול סודות והתאמה רציפה (ל-KRM).
Google עובדת עם HashiCorp כדי לפתח את פלאגין שמתממשק עם שירותים חיצוניים Terraform ל- Google Cloud. בשנת 2020, השיקה Google גם את Config Connector כדי לעזור ללקוחות להשתמש ב-Kubernetes לניהול Google Cloud סוגי משאבים.
Terraform
Terraform הוא כלי בקוד פתוח להקצאת תשתית. אתם יכולים להשתמש ב-Terraform כדי לכתוב הגדרות הצהרתיות לניהול השירותים והמשאבים שלכם באמצעות פלאגין שמתממשק עם שירותים חיצוניים Terraform ל- Google Cloud. Google Cloud מידע נוסף זמין במאמר Terraform on Google Cloud.
מודל משאבים של Kubernetes (KRM)
KRM הוא פרדיגמה לבניית ממשקי API והגדרות משאבים לניהול הגדרות הצהרתי. הוא מייצג משאבי Google Cloud כהגדרות מותאמות אישית של משאבים (CRD), ואפשר להפעיל אותו באמצעות Config Controller.
סוגים נתמכים וספקי סוגים
הכלי DM Convert ממיר קובצי YAML של הגדרות Deployment Manager וקובצי תבניות Jinja או Python לקובצי הגדרות KRM או Terraform.
כדי לבדוק את הסטטוס הנוכחי של התמיכה של DM Convert בספקי סוגים ובסוגי משאבים, אפשר להשתמש בדגל --list-supported-types.
הסבר על האופן שבו הכלי להמרת DM מתרגם מושגים בפורמטים שונים
בטבלה הבאה אפשר לראות איך DM Convert מתרגם מושגים מ-Deployment Manager ל-KRM ול-Terraform:
| מושג Deployment Manager | המרת KRM/Config Connector | המרת Terraform |
|---|---|---|
| חומרי עזר | הפניות למשאבים, אם סכימת ה-KRM מגדירה את השדה כהפניה. אם סכמת ה-KRM לא מגדירה את השדה כהפניה, ההפניה ל-Deployment Manager מוחלפת בערך שנפתר. | הפניות ב-Terraform נראות ומתנהגות באופן דומה להפניות ב-Deployment Manager. |
תלויות מפורשות (depends_on) |
אין תמיכה בסדר תלות מפורש. המשאבים מופעלים באופן עקבי הדרגתי. | depends_on |
קשרי IAM (בלוקים סמכותיים accessControl) |
IAMPolicy |
<resource_type>_iam_policy סוגים (לדוגמה, google_pubsub_topic_iam_policy) |
קישורי IAM (סוגים לא סמכותיים iamMemberBinding) |
IAMPolicyMember |
<resource_type>_iam_member (לדוגמה, google_project_iam_member) |
| סוגים מורכבים | הוצאנו משימוש סוגים מורכבים. הכלי DM Convert לא ממיר אותם. | הוצאנו משימוש סוגים מורכבים. הכלי DM Convert לא ממיר אותם. |
| פעולות, ספקי סוגים מותאמים אישית ופלט | לא נתמך. | פעולות שיש להן מקבילות דקלרטיביות ב-Terraform מומרות. פרטים נוספים זמינים במאמר בנושא תמיכה בפעולות. |
תמיכה בפעולות בצ'אט Convert (ל-Terraform)
Actions היא תכונת Preview ב-Deployment Manager שמרחיבה את קבוצת שיטות ה-API הזמינות. אין תמיכה בפעולות, ו-DM Convert לא ממיר פעולות שאין להן מקבילות הצהרתיות ב-Terraform, כמו:
תיקון, מחיקה ופירוט של ממשקי API
ממשקי API שמוגדרים בספקי סוגים מותאמים אישית
ממשקי API מותאמים אישית, כמו
sqladmin-v1beta4:sql.instances.restart
הכלי DM Convert תומך בהמרה למקבילות ב-Terraform לפעולות במקרים הבאים:
הוא מחליף קריאות לפעולה ל-API שמוסיפות משאב במשאבי Terraform שווי-ערך. לדוגמה,
action: gcp-types/storage-v1:storage.buckets.insertהופך ל-google_storage_bucket.הוא ממיר קריאות לפעולה לממשקי API שמקבלים משאב לסוגי Terraform
data, בכל הזדמנות אפשרית. לדוגמה, actions: gcp-types/compute-v1:compute.subnetworks.getהופך ל-google_compute_subnetwork.הוא ממיר פקודות
setIamPolicyלמשאבי*_iam_policy(סמכותיים) או*_iam_member(לא סמכותיים), בהתאם לשאלה אם נעשה בהן שימוש עםgetIamPolicy.
מידע על העברת השימוש בפעולות לחלופות הצהרתיות ב-Deployment Manager זמין במאמר החלפת השימוש בפעולות.
תהליך העבודה להמרה ל-Terraform
כדי להשתמש ב-DM Convert כדי להמיר את ההגדרות של Deployment Manager ל-Terraform:
- מזהים את ההגדרה של Deployment Manager שרוצים להמיר ל-Terraform.
- כדי לוודא שהמשאבים מעודכנים, צריך לבצע התאמה בין כל הפריסות הפעילות של ההגדרה.
- כדי להמיר את ההגדרות ל-Terraform, מריצים את כלי ההמרה של DM באופן מקומי.
- מוודאים שההגדרה שנוצרה ב-Terraform משקפת את המצב הנוכחי של המשאבים.
- מוחקים את הפריסה של Deployment Manager. כדי לשמור את המשאבים כשמוחקים את הפריסה, מגדירים את
delete-policyלערךabandon.
מומלץ לפעול לפי השיטות המומלצות לשימוש ב-Terraform, כמו:
הסבר מפורט על תהליך העבודה הזה מופיע במאמר המרת ההגדרות של Deployment Manager באמצעות DM Convert.
איסוף נתונים ב-DM Convert
אילו נתונים אנחנו אוספים כברירת מחדל
כברירת מחדל, הכלי DM Convert שולח נתוני שימוש אנונימיים ל-Google כדי לעזור לנו לתחזק ולשפר את הכלי. כשכלי DM Convert מופעל, נאספים נתונים על הפעולה המבוקשת, על הצלחת הפעולה ועל התזמון של ההמרה. הנתונים האלה אנונימיים ולא כוללים פרטים אישיים מזהים, מידע אישי רגיש או תוכן של לקוחות.
נתוני השימוש עשויים לכלול:
פרמטרים של קלט בפקודת המרה: אנחנו מתעדים את ערכי הפרמטרים של פקודת ההמרה כשמריצים את הכלי, כולל פורמט הפלט (KRM או Terraform) וייצוגים בוליאניים של השאלה אם צוינו דגלים אחרים (אנחנו לא אוספים את הערכים הספציפיים של הדגלים האלה).
תוצאת ההמרה: אנחנו מתעדים את תוצאות ההמרה, כולל סטטוס ההמרה (
SUCCESSאוFAILURE), וגם את קוד השגיאה והודעת השגיאה, אם מתרחשת בעיה.מועד ההמרה: אנחנו מתעדים את שעת ההתחלה ושעת הסיום של ההמרה.
איך אנחנו משתמשים בנתונים האלה
Google אוספת ומעבדת את נתוני השימוש כדי:
להבין איך משתמשים בכלי, כולל אילו תכונות והגדרות הכי פופולריות.
לאבחן שימוש לא מוצלח בכלי ולספק הנחיות למשתמשים שמחפשים סיוע טכני.
לשפר את הכלי על ידי פתרון בעיות ואולי גם להרחיב את הכיסוי של התכונות.
ביטול ההסכמה לאיסוף נתונים
Google אוספת נתוני שימוש כברירת מחדל כשמבצעים המרה, אבל אפשר להשבית את איסוף הנתונים הזה.
כדי להשבית את איסוף הנתונים להמרה ספציפית, אפשר לציין את הדגל --opt_out_data_collection=true בפקודת ההמרה. כדי להמשיך לבטל את ההסכמה לאיסוף הנתונים הזה בעתיד, צריך לציין את הדגל בכל פעם שמפעילים המרה.
כדי להפעיל את איסוף הנתונים להמרה ספציפית, אפשר לציין את הדגל --opt_out_data_collection=false בפקודת ההמרה או להשמיט את הדגל מהפקודה.