במאמר הזה מוסבר איך להגדיר ולנהל את גבולות הניהול והגדרות היכולות באמצעות Resource Manager. גבולות הניהול מאפשרים לגלות משאבים בפרויקטים שונים ולנהל אותם ב-Agent Registry.
לפני שמתחילים
לפני שאתם מגדירים את הגבולות והיכולות, אתם צריכים לקבל את התפקידים הנדרשים ולהפעיל את ה-API הנדרש.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות להגדרת גבולות ויכולות, צריך לבקש מהאדמין להקצות לכם את התפקידים הבאים ב-IAM:
-
יצירה, עדכון ומחיקה של גבולות והגדרות של יכולות: עריכה של מנהל המשאבים (
roles/resourcemanager.editor) בתיקייה או בארגון היעד (ובפרויקט הניהול, אם אתם מספקים פרויקט ניהול שמנוהל על ידי המשתמש) -
צפייה בגבולות ובהגדרות של היכולות: צפייה במנהל המשאבים (
roles/resourcemanager.viewer) בתיקייה או בארגון היעד -
מוסיפים תגים לפרויקטים של החברים:
- משתמש בתגים (
roles/resourcemanager.tagUser) בתיקיית היעד, בארגון או בפרויקטים החברים - Tag Administrator (
roles/resourcemanager.tagAdmin) בתיקייה או בארגון היעד
- משתמש בתגים (
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
הפעלת ה-API
כדי להפעיל את Resource Manager API, משתמשים בפקודה
gcloud services enable:gcloud services enable cloudresourcemanager.googleapis.com \ --project=PROJECT_IDמחליפים את
PROJECT_IDבמזהה הפרויקט.
הגדרת גבולות ניהול
יש שתי דרכים להגדיר גבולות ניהול בתיקייה או בארגון:
- גבול ברמת התיקייה או הארגון (ללא מסנן תגים): כולל את כל הפרויקטים הצאצאים בתיקייה או בארגון. מדלגים על שלב 1 ושלב 4, ומבצעים רק את שלב 2: יצירת גבול (בלי
--tag-keyו---tag-value) ואת שלב 3: יצירת הגדרת יכולת. - גבול מבוסס-תגים: חלוקה של פרויקטים בתיקייה או בארגון לפי ערכי תגים. צריך לבצע את כל ארבעת השלבים הבאים.
שלב 1: מגדירים את מפתח התג לחלוקה למחיצות
אם אתם יוצרים גבול ברמת התיקייה או ברמת הארגון בלי מסנן תגים, דלגו על השלב הזה. כברירת מחדל, למשאב BoundaryConfig לא מוגדר מפתח תג.
בגבולות שמבוססים על תגים, משאב BoundaryConfig קובע את מפתח התג שמשמש לחלוקת פרויקטים בתוך תיקייה או ארגון. צריך להגדיר את המשאב הזה לפני שיוצרים גבולות שמבוססים על תגים.
כדי להגדיר את מפתח התג של החלוקה למחיצות, משתמשים בפקודה gcloud resource-manager boundary-configs update:
gcloud resource-manager boundary-configs update \
--folder=FOLDER_ID \
--tag-key=TAG_KEY_NAME
כדי להגדיר את מפתח התג בארגון, מציינים את --organization=ORGANIZATION_ID במקום את --folder.
אם הגדרתם בעבר מפתח תג ואתם רוצים לעבור לגבול ללא תגים (כשאין גבולות מתחת להורה), הריצו את הפקודה הזו עם --clear-tag-key במקום --tag-key.
מחליפים את מה שכתוב בשדות הבאים:
-
FOLDER_ID: המזהה של תיקיית ההורה -
TAG_KEY_NAME: השם של מפתח התג, בפורמטORGANIZATION_ID/TAG_KEY_SHORT_NAME, למשל123456789012/env
שלב 2: יצירת גבול
יוצרים משאב מסוג Boundary בתיקייה או בארגון.
כדי ליצור גבול ברמת התיקייה בלי מסנן תגים (שכולל באופן אוטומטי את כל הפרויקטים הצאצאים בתיקייה), משתמשים בפקודה gcloud resource-manager boundaries create בלי --tag-key ו---tag-value:
gcloud resource-manager boundaries create BOUNDARY_ID \
--folder=FOLDER_ID \
--display-name="Production Boundary"
כדי ליצור גבול מבוסס-תגים אחרי שמגדירים את מפתח התג לחלוקה למחיצות בשלב 1, צריך לכלול את הדגלים --tag-key ו---tag-value:
gcloud resource-manager boundaries create BOUNDARY_ID \
--folder=FOLDER_ID \
--display-name="Production Boundary" \
--tag-key=TAG_KEY_NAME \
--tag-value=TAG_VALUE_SHORT_NAME
כדי ליצור גבול בארגון, מציינים את --organization=ORGANIZATION_ID במקום את --folder.
מחליפים את מה שכתוב בשדות הבאים:
-
BOUNDARY_ID: מזהה ייחודי של הגבול, למשלprod-boundary -
FOLDER_ID: המזהה של תיקיית ההורה -
TAG_KEY_NAME: מפתח התג שהגדרתם, למשל123456789012/env -
TAG_VALUE_SHORT_NAME: ערך התג שצריך להיות לפרויקטים כדי להצטרף לגבול, למשלprod
שלב 3: יוצרים הגדרת יכולת
יוצרים משאב CapabilityConfig כדי לקשר את הגבול לפרויקט ניהול ולהצהיר אילו שירותים מנוהלים בגבול.
כדי ליצור הגדרת יכולת, משתמשים בפקודה gcloud resource-manager capability-configs create ומציינים את הערך --types=agent-management בשביל Agent Registry:
gcloud resource-manager capability-configs create \
CAPABILITY_CONFIG_ID \
--folder=FOLDER_ID \
--types=agent-management \
--boundaries=folders/FOLDER_ID/boundaries/BOUNDARY_ID \
--display-name="DISPLAY_NAME"
כדי ליצור את הגדרת היכולת בארגון, מציינים את --organization=ORGANIZATION_ID במקום את --folder.
מחליפים את מה שכתוב בשדות הבאים:
-
CAPABILITY_CONFIG_ID: מזהה ייחודי להגדרת היכולת, למשלprod-capabilities -
FOLDER_ID: המזהה של תיקיית ההורה -
BOUNDARY_ID: המזהה של הגבול שיצרתם DISPLAY_NAME: שם לתצוגה שקריא לאנשים
כדי להפעיל יכולות בפרויקט עצמאי אחד ללא גבולות, מדלגים על שלבים 1, 2 ו-4 ומריצים את הפקודה הזו עם --project=PROJECT_NUMBER ו---management-project=projects/PROJECT_NUMBER במקום --folder ו---boundaries.
כדי להשתמש בפרויקט קיים כפרויקט הניהול, מעבירים את הדגל --management-project=projects/PROJECT_NUMBER.
הפרויקט שאתם מציינים חייב לעמוד בדרישות הבאות, אחרת הפקודה תיכשל ותופיע הודעת שגיאה:
- להיות ממוקמים ישירות מתחת לאותו הורה (
folders/FOLDER_IDאוorganizations/ORGANIZATION_ID) כמו המשאבCapabilityConfig. - להיות במצב מחזור החיים
ACTIVE. - הוא לא מוגדר כבר כפרויקט ניהול.
אם לא מציינים את --management-project, מנהל המשאבים מקצה באופן אוטומטי פרויקט ניהול ייעודי ישירות מתחת לתיקייה או לארגון ההורה.
כשיוצרים משאב CapabilityConfig, ממשקי ה-API של השירותים התואמים מופעלים באופן אוטומטי בפרויקט הניהול (למשל agentregistry.googleapis.com כשמציינים את agent-management). אין צורך להפעיל את ממשקי ה-API האלה באופן ידני בפרויקט הניהול.
שלב 4: צירוף תגים לפרויקטים של חברים
אם יצרתם גבול ברמת התיקייה או הארגון בלי מסנן תגים, דלגו על השלב הזה כי כל הפרויקטים הצאצאים נכללים באופן אוטומטי.
בגבולות שמבוססים על תגים, הפרויקטים מצטרפים באופן דינמי לגבול הניהול כשמקשרים אליהם את ערך התג התואם.
כדי לצרף את התג לכל פרויקט ששייך לגבול, משתמשים בפקודה gcloud resource-manager tags bindings create:
gcloud resource-manager tags bindings create \
--tag-value=TAG_VALUE_NAME \
--parent=//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER
מחליפים את מה שכתוב בשדות הבאים:
-
TAG_VALUE_NAME: השם של ערך התג, למשל123456789012/env/prod -
PROJECT_NUMBER: מספר הפרויקט (או מזהה הפרויקט) שרוצים לכלול בגבול
ניהול הגדרות היכולות
אתם יכולים להציג, לתאר, לעדכן ולמחוק הגדרות של יכולות. בדוגמאות שבקטע הזה נעשה שימוש ב---folder=FOLDER_ID. כדי לנהל את הגדרות היכולות בארגון או בפרויקט, צריך לציין את --organization=ORGANIZATION_ID או את --project=PROJECT_NUMBER במקום את --folder (אפשר לצרף גבולות רק להגדרות של יכולות ברמת התיקייה או ברמת הארגון).
הצגת רשימה של הגדרות יכולות
כדי להציג את כל הגדרות היכולות בתיקייה, משתמשים בפקודה gcloud resource-manager capability-configs list:
gcloud resource-manager capability-configs list \
--folder=FOLDER_ID
תיאור של הגדרת יכולת
כדי לראות את פרטי ההגדרה ואת פרויקט הניהול שהוקצה, מריצים את הפקודה gcloud resource-manager capability-configs describe:
gcloud resource-manager capability-configs describe \
CAPABILITY_CONFIG_ID \
--folder=FOLDER_ID
עדכון הגבולות המשויכים
כדי לעדכן את הגבולות שמקושרים להגדרת יכולת, משתמשים בפקודה gcloud resource-manager capability-configs update:
gcloud resource-manager capability-configs update \
CAPABILITY_CONFIG_ID \
--folder=FOLDER_ID \
--boundaries=folders/FOLDER_ID/boundaries/BOUNDARY_ID_1,folders/FOLDER_ID/boundaries/BOUNDARY_ID_2
הפקודה update מקבלת גם את הדגלים --types ו---display-name כדי לעדכן את סוגי היכולות המופעלות או את השם המוצג.
מחיקת הגדרת יכולת
אי אפשר למחוק משאב מסוג CapabilityConfig אם מצורפים אליו גבולות, ואי אפשר למחוק משאב מסוג Boundary אם הוא מצורף למשאב מסוג CapabilityConfig.
כדי למחוק הגדרת יכולת כשכבר לא צריך ניהול בין פרויקטים:
כדי לנתק את הגבולות המשויכים, משתמשים בפקודה
gcloud resource-manager capability-configs updateעם הדגל--clear-boundaries:gcloud resource-manager capability-configs update \ CAPABILITY_CONFIG_ID \ --folder=FOLDER_ID \ --clear-boundariesכדי למחוק את הגדרת היכולת, מפעילים את הפקודה
gcloud resource-manager capability-configs delete:gcloud resource-manager capability-configs delete \ CAPABILITY_CONFIG_ID \ --folder=FOLDER_ID