تخطَّ إلى المحتوى

Project 5: Helm Packaging

تجميع manifests الخاصة بمشروعك في Helm chart واحد، مع values-dev.yaml و values-prod.yaml.

  • Chart باسم fullstack-app.
  • templates للـ frontend و backend و postgres.
  • values منفصلة للبيئات.
  • تنفيذ helm lint, helm template, helm upgrade --install, helm rollback.
fullstack-app/
Chart.yaml
values.yaml
values-dev.yaml
values-prod.yaml
templates/
frontend-deployment.yaml
backend-deployment.yaml
postgres.yaml
services.yaml
ingress.yaml
frontend:
replicas: 3
backend:
replicas: 3
postgres:
storage: 10Gi
ingress:
enabled: true
host: app.example.com
resources:
backend:
requests:
cpu: "250m"
memory: "256Mi"
limits:
cpu: "1"
memory: "512Mi"

Lab: Packaging للمشروع

المستوى: مبتدئ الوقت: 60 دقيقة الأدوات: helm, kubectl

الهدف: رندر chart وتثبيته ثم تنفيذ rollback.

Terminal window
helm lint ./fullstack-app
helm template fullstack-dev ./fullstack-app -f fullstack-app/values-dev.yaml
helm upgrade --install fullstack-dev ./fullstack-app -n fullstack-dev --create-namespace -f fullstack-app/values-dev.yaml
helm history fullstack-dev -n fullstack-dev
helm rollback fullstack-dev 1 -n fullstack-dev
1 chart(s) linted, 0 chart(s) failed
STATUS: deployed
Terminal window
helm uninstall fullstack-dev -n fullstack-dev
kubectl delete namespace fullstack-dev
  • لا يوجد hardcoding للبيئة داخل templates.
  • helm template ينتج YAML صالح.
  • تستطيع شرح كل value ولماذا هي قابلة للتغيير.