יצירת הפניות למשאבים
משאב Google Cloud שנוצר באמצעות Config Connector יכול להפנות למשאבים אחרים. Config Connector מגדיר את הקשרים האלה באמצעות הפניות למשאבים. בנושא הזה מוסבר איך ליצור משאבים עם הפניות.
סוגי קובצי עזר
ב-Config Connector, הפניות יכולות להיות תלויות או קישורים.
- תלויות
- הפניה לתלות מתייחסת למשאב קיים Google Cloud שנדרש למשאב Config Connector. לדוגמה, כלל חומת אש לא יכול להתקיים בלי רשת
- קישורים
- הפניה לקישור קושרת בין משאבים עצמאיים. לדוגמה, אפשר לשייך פרויקט לחשבון לחיוב.
ציון הפניות למשאבים
מציינים הפניות למשאבים ב-spec של המשאב. שם השדה הוא השם הקצר של המשאב ואחריו Ref. לדוגמה:
- ההפניה ל-
PubSubTopicבשםtopicהיאtopicRef. - ההפניה ל-
StorageBucketבשםbucketהיאbucketRef.
ההפניה היא אובייקט עם שדה יחיד (name). המשאב ב-resourceRef מוחלף בשם ההפניה.
קובץ ה-YAML הבא מתאר נושא ב-Pub/Sub PubSubSubscription שמפנה אל PubSubTopic בשם myTopic.
apiVersion: pubsub.cnrm.cloud.google.com/v1beta1
kind: PubSubSubscription
metadata:
name: pubsubsubscription-referencing-topic
spec:
topicRef:
name: myTopic
דוגמה ל-Pub/Sub
יצירת PubSubTopic
בדוגמה הזו, יוצרים PubSubSubscription שתלוי ב-PubSubTopic.
מעתיקים את הקוד הבא לקובץ בשם
pubsub-topic.yaml:apiVersion: pubsub.cnrm.cloud.google.com/v1beta1 kind: PubSubTopic metadata: name: TOPIC_NAMEמחליפים את
TOPIC_NAMEבשםPubSubTopicהרצוי.לדוגמה, כדי ליצור נושא בשם
myTopic, אפשר להשתמש בקובץ ה-YAML הבא:apiVersion: pubsub.cnrm.cloud.google.com/v1beta1 kind: PubSubTopic metadata: name: myTopicיצירת
PubSubTopicבאמצעותkubectl apply.kubectl --namespace CC_NAMESPACE apply -f pubsub-topic.yaml
מחליפים את
CC_NAMESPACEבמרחב השמות ש-Config Connector מנהל ממנו משאבים.
יצירת PubSubSubscription
מעתיקים את הקוד הבא לקובץ בשם pubsub-subscription.yaml:
apiVersion: pubsub.cnrm.cloud.google.com/v1beta1 kind: PubSubSubscription metadata: name: pubsubsubscription-referencing-topic spec: topicRef: name: TOPIC_NAMEמחליפים את
TOPIC_NAMEבPubSubTopicשם שבו השתמשתם בשלב 1. לדוגמה, קובץ ה-YAML שמתייחס לנושאmyTopicשיצרתם קודם הוא:apiVersion: pubsub.cnrm.cloud.google.com/v1beta1 kind: PubSubSubscription metadata: name: pubsubsubscription-referencing-topic spec: topicRef: name: myTopicיצירת
PubSubSubscriptionבאמצעותkubectl apply.kubectl --namespace CC_NAMESPACE apply -f pubsub-subscription.yaml
מחליפים את
CC_NAMESPACEבמרחב השמות ש-Config Connector מנהל ממנו משאבים.
הפניות חיצוניות
Config Connector יכול להפנות למשאבים שהוא לא מנהל. הן נקראות הפניות חיצוניות. לדוגמה, הקטע ComputeURLMap שבהמשך מתייחס ל-BackendService בשם test-backendservice.
apiVersion: compute.cnrm.cloud.google.com/v1beta1
kind: ComputeURLMap
metadata:
name: test-urlmap
spec:
location: global
defaultService:
backendServiceRef:
external: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/test-backendservice
הפורמט של הערכים שמתקבלים על ידי external תלוי במשאב. בהפניה למשאבים תוכלו לעיין במסמכי העזרה של משאבים ספציפיים. כדי לדעת אילו ערכים external מקבל, אפשר לקרוא את התיאורים של השדות external של המשאב.
IAMPolicy, IAMPartialPolicy ו-IAMPolicyMember
IAMPolicy, IAMPartialPolicy ו-IAMPolicyMember תומכים גם בהפניות חיצוניות. לדוגמה, IAMPolicyMember שבהמשך מתייחסת אל Project עם מזהה הפרויקט test-project.
apiVersion: iam.cnrm.cloud.google.com/v1beta1
kind: IAMPolicyMember
metadata:
name: test-iampolicymember
spec:
member: serviceAccount:test-serviceaccount@test-project.iam.gserviceaccount.com
role: roles/storage.admin
resourceRef:
kind: Project
external: projects/test-project
כדי לדעת באיזה פורמט אפשר להזין ערך בשדה external, אפשר לקרוא את מסמכי העזר. בדפים IAMPolicy, IAMPartialPolicy ו-IAMPolicyMember מפורט הפורמט הקביל לכל המשאבים הנתמכים. הפורמטים מפורטים בעמודה 'פורמטים של הפניות חיצוניות' בטבלה משאבים נתמכים.
אפשר גם לעבור לדף ההפניה של משאב ספציפי (לדוגמה, PubSubTopic) ולבדוק את הערך שמופיע בשורה 'פורמט הפניה חיצונית של IAM' בטבלת הסיכום של המשאב.
הפניות בין מרחבי שמות
Config Connector מאפשר למשאבים להפנות למשאבים במרחבי שמות אחרים. עם זאת, אם Config Connector מותקן במצב מרחב שמות, צריך להעניק ל-Config Connector הרשאות נוספות כדי לאפשר הפניות בין מרחבי שמות.
לדוגמה, אם רוצים ליצור משאבים ב-NAMESPACE_A שמפנים למשאבים ב-NAMESPACE_B, צריך ליצור את RoleBinding הבאים:
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
namespace: NAMESPACE_B
name: allow-references-from-NAMESPACE_A
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cnrm-viewer
subjects:
- kind: ServiceAccount
name: cnrm-controller-manager-NAMESPACE_A
namespace: cnrm-system
המאמרים הבאים
כדאי לעיין בהפניה למשאבים כדי לקבל מידע על המשאבים ש-Config Connector תומך בהם.
כאן מוסבר איך להשתמש בהפניה למשאב כדי לגשת ל-Secret באשכול Config Connector.