حالا که چارت رو ساختیم و روی کلاستر دیپلوی کردیم شروع کنیم به شخصی سازی این چارت و تغییر بعضی متغیر ها مثل تگ ایمیج
برای دیپلوی ما از دستور install استفاده کردیم
helm install --dry-run --set image.tag=1.24.0 -n dev app ./app
با فلگ dry-run بدون دیپلوی روی کلاستر میتونید شبیه سازی دیپلوی رو نگاه کنید که چه اتفاقی قرار هست بیوفته
و فلگ set هم برای تغییر متغیر های داخل فایل Values استفاده میشه که اینجا اومدیم تگ ایمیج رو تغییر دادیم به 1.24.0 که در زمان نوشتن این مطلب نسخه استیبل nginx هست
اما ما قبلا این چارت رو دیپلوی کردیم و نمیخوایم دیپلوی جدیدی داشته باشیم
helm upgrade --set image.tag=1.24.0 -n dev app ./app
helm upgrade --set image.tag=1.24.0 --timeout=1m --atomic --cleanup-on-fail -n dev app ./app
دستور upgrade برای چارت هایی استفاده میشه که install شدن و چارت قبلی رو برای ما آپدیت میکنن
فلگ های مهمی که زمان آپگرید به درد ما میخورن و پیشنهاد میدم ازشون استفاده کنید تا درصورتی که به هر دلیلی دیپلوی ما ناموفق بود اتوماتیک برگردیم به ورژن قبلی
# -timeout=1m time to wait for any individual Kubernetes operation
# --atomic if set, upgrade process rolls back changes made in case of failed upgrade.
# --cleanup-on-fail allow deletion of new resources created in this upgrade when upgrade fails
فلگ atomic باعث میشه همه workload ها و resource ها باهم اجرا بشن و اگر یکی از اونها به اختلال خورد به ورژن قبلی برمیگرده
و فلگ cleanup-on-fail باعث میشه اگر به خطا خوردیم تمام دیپلوی های خطا خورده حذف بشن و اثری ازشون نمونه
حالا فرض کنیم که دیپلوی آپگرید ورژن جدید با موفقیت اتفاق افتاده و باز هم به هر دلیلی میخواید به ورژن های قدیمی برگردین و تاریخچه های قبلی خودتون رو ببینین
# Fetch release history
helm history -n dev app
# Roll back a release to a previous revision
helm rollback -n dev app 0
# uninstall a release
helm uninstall -n dev app
با دستور history میتونین ورژن های قبلی رو ببینین و با rollback کردن به اونها دیپلوی جدید رو از کلاستر حذف کنید برای مثال در دستور بالا به ورژن ۰ برگشتیم
دستور uninstall هم کل چارت رو از کلاستر حذف میکنه و کل اپلیکیشن از مدار خارج میشه
پیشنهاد میدم بعد از اجرای هر دستور داخل کلاستر رو نگاه کنید تا شاهد نحوه اتفاق افتادن حذف و دیپلوی مانیفست ها باشین و تگ ایمیج هارو چک کنید
kubectl get pods -n dev -o wide
kubectl describe pods -n dev POD_NAME | grep -i image
حالا زمان اینه که داخل فایل های دایرکتوری templates تغییرات ایجاد کنید
بهترین منبع برای اینکه تمپلیتنگ زبان گولنگ رو متوجه بشین سایت خود HELM هست که تمام دستورها رو برای شما داکیومنت کرده
فراموش نکنید به ریپازیتوری گیتهاب این مطلب هم سر بزنید و اگه خوشتون اومد ستاره بدین