
values.yaml מרכז במקום אחד את הערכים ש-Helm מציב בתבניות ה-YAML, כך שלא צריך לחפש אותם בעשרות קבצים.Chart.yaml, יוצרים values.yaml. בתבנית כותבים בסוגריים מסולסלים כפולים הפניה, למשל .Values.replicas, ובקובץ replicas: 2.app_name מחליף את השם frontend-nginx בכל מקום, וגם ניתן לחבר אליו טקסט, למשל app_name ואחריו -deployment.labels ואז לפנות ל-values.labels.environment ול-values.labels.department. כך בנויה גם דוגמת גוגל.if ו-if not, ולכן זה דומה לשפת תכנות קטנה.helm install עם שם ותיקייה נוכחית, ואז helm status עד שה-load balancer מקבל IP חיצוני (לקח כדקה). הגלישה ב-HTTP עבדה.templates מחזיק את קבצי ה-YAML שנשלחים ל-Kubernetes.Chart.yaml מתאר את האפליקציה וגרסתה.values.yaml מחזיק שדות בצורת שם, נקודתיים וערך.הטקסט המלא של הדקות הראשונות בהרצאה «הסבר על values.yaml Helm» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם. בסרטון זה אנחנו נשדרג את קובץ YAML שלנו, שיהיו בו פחות ערכים קבועים או תוויות שהן hard coded, ואם נרצה לשנות אותן, נצטרך לחפש את כל המקומות שבהם מופיע תגית כלשהי.
ותדמיינו שהקובץ שלנו זה לא תשע עשרה שורות, אלא יש לנו עשרות קבצים, ובכל אחד יש מלא, מלא שורות של הגדרות. אנחנו לא רוצים כל פעם לחפש איפה כתוב מספר רפליקות, איפה כתובה תווית מסוימת.
אנחנו רוצים לעשות מקום מרכזי שמרכז את ההגדרות, ופה במקום רפליקה אנחנו נגיד לו, נניח, לקחת את זה מהמאגר המרכזי שלנו. שכותבים את זה עם סוגריים מסולסלות כפולות, ובפנים אומרים לו מאיפה לקחת את הערך הזה.
במקרה הזה אמרתי לו: תיקח את זה מקובץ values ובפנים משדה שנקרא replicas. תחשבו שיש לי פה עשרות קבצים. אני לא רוצה לרוץ על כולם ולחפש בכל אחד את מספר הרפליקות.
אני רוצה שזה יהיה כתוב במקום מרכזי אחד. אז בואו נעשה את קובץ ה-values הזה פשוט בתוך התיקייה הראשית של החבילה שלי, איפה שיש chart.yaml שמתאר לי את החבילה. אני עושה קובץ טקסט חדש, קובץ ריק, קורא לו values.yaml, ובתוך הקובץ הזה עם Notepad אני כותב replicas נקודתיים, נניח, שתיים.
ואם בא לי לשנות, אני יכול לשנות פה במקום אחד בתוך ה-values.yaml לשלוש, ואז כל קבצי ה-YAML בפרויקט שלי יקבלו את הערך החדש מתוך קובץ values. בואו נעשה עוד דוגמה.
אתם רואים שהשם של הפוד frontend מקף nginx גם מופיע פה, גם מופיע פה. ושוב, תדמיינו שיש לי עשרות קבצים כאלו עם מאות שורות כל אחד, ואם אני רוצה לשנות את השם, כי פתאום נהיה לנו frontend חדש, ויכולים להגיד לי לעבור לפורמט חדש של שמות, שאני לא אצטרך לחפש בכל המקומות שבהם מופיע השם הזה.
אני יכול לשים במקום מרכזי ב-values.yaml שדה בשם app_name. אני יכול לתת לו כל שם שבא לי, ולתת לו איזשהו ערך. ברגע שעשיתי את זה, במקום לכתוב פה את השם בצורה ידנית, אני אומר לו לשלוף את זה מקובץ values מתוך השדה app_name, וגם פה אותו דבר.
כל המטרה שלי זה לרכז את כל המידע הקבוע בקובץ חיצוני, וכך להפריד בין ההגדרות הטכניות של קובץ YAML, שהקוברנטיס צריך, להפריד את זה מהנתונים שהמשתמש מכניס, כמו תווית production, כמו מחלקת marketing.
שימו לב, כרגע הנתונים מעורבבים עם המידע הטכני. אני רוצה הפרדה. אז בואו נשים פה, בקובץ values.yaml, שדה בשם environment, סביבה, נניח production או QA.
תחשבו שבמציאות יש מאות פודים, המון אפליקציות, וצריך להדביק עליהם תגיות זיהוי שיהיה לנו יותר קל לעבוד. נניח תגית לאיזה מחלקה שייכת האפליקציה הזו.