الانتقال إلى المحتوى الرئيسي
إصدار المخطط 2.x فقطتتوفر ميزة additionalManifests فقط في مخطط Helm المبني على subchart بإصدار v2.x.
تتيح لك القيمة additionalManifests نشر أي كائنات Kubernetes إلى جانب مخطط ClickStack. استخدمها مع الموارد التي لا يوفّر لها المخطط قوالب بشكل مضمّن، مثل NetworkPolicy وHorizontalPodAutoscaler وServiceAccount وPodMonitor وكائنات Ingress المخصصة أو أي كائن آخر من كائنات واجهة برمجة تطبيقات Kubernetes.

كيف يعمل

كل عنصر في additionalManifests هو تعريف كامل لمورد في Kubernetes. ويقوم المخطط بما يلي:
  1. المرور على كل عنصر في القائمة
  2. تحويل العنصر إلى YAML (toYaml)
  3. تقييم تعبيرات القوالب في ملف YAML الناتج باستخدام Helm tpl
يمكن أن تشير تعبيرات القوالب إلى:
  • .Release.Name, .Release.Namespace
  • include "clickstack.fullname" . ودوال المساعدة الأخرى الخاصة بالمخطط
  • .Values.*

قيود ملف values

يُضبط additionalManifests في ملف values، وتُحلَّل ملفات values بصيغة YAML قبل تشغيل tpl.
  • يجب أن يكون أي {{ ... }} في ملف values داخل سلسلة نصية محاطة بعلامتَي اقتباس
  • لا تُعد كتل القوالب البنيوية صالحة في YAML الخاص بملفات values (على سبيل المثال، {{- include ... | nindent ... }} بمفردها)
  • بالنسبة إلى الحقول غير النصية (على سبيل المثال، أرقام المنافذ)، استخدم قيَمًا حرفية أو منافذ مُسمّاة
  • إذا كنت بحاجة إلى قوالب بنيوية، فاستخدم قالب wrapper chart بدلًا من ملف values خام

دوال المساعدة المتاحة لـ المخطط

تُعرَّف دوال المساعدة هذه في templates/_helpers.tpl:
المساعدةالوصفالاستخدام في ملف values
clickstack.nameاسم المخطط (مقتطع إلى 63 حرفًا)آمن في القيم scalar الموضوعة بين علامتي اقتباس
clickstack.fullnameاسم مؤهل بـ Releaseآمن في القيم scalar الموضوعة بين علامتي اقتباس
clickstack.chartاسم المخطط + الإصدارآمن في القيم scalar الموضوعة بين علامتي اقتباس
clickstack.selectorLabelsكتلة labels الخاصة بـ selectorلقوالب wrapper مخطط فقط
clickstack.labelsكتلة labels القياسيةلقوالب wrapper مخطط فقط
clickstack.mongodb.fullnameاسم MongoDB CRآمن في القيم scalar الموضوعة بين علامتي اقتباس
clickstack.clickhouse.fullnameاسم ClickHouse CRآمن في القيم scalar الموضوعة بين علامتي اقتباس
clickstack.otel.fullnameاسم OTel collectorآمن في القيم scalar الموضوعة بين علامتي اقتباس

أمثلة

ServiceAccount

NetworkPolicy

قيّد حركة المرور الواردة إلى جرابات HyperDX:

HorizontalPodAutoscaler

PodMonitor (Prometheus Operator)

AWS ALB Ingress

عند استخدام AWS Load Balancer Controller، عطِّل Ingress المدمج لـ nginx في المخطط وعرِّف Ingress مخصصًا لـ ALB:
للاطلاع على مثال كامل لإعداد ALB، بما في ذلك Ingress الداخلي لـ OTel collector وHPA، راجع قيم المثال الخاصة بـ ALB.

TargetGroupBinding

في سيناريوهات ALB التي تتطلب موارد TargetGroupBinding مُعرَّفة صراحةً:

متقدم: قوالب wrapper مخطط

إذا كنت بحاجة إلى دوال مساعدة هيكلية مثل include "clickstack.labels" . | nindent 4، فقم بتصييرها من قالب wrapper مخطط (templates/*.yaml) بدلًا من وضع هذه الكتل مباشرةً في ملفات values. مثال على مقتطف من قالب wrapper مخطط:

نصائح

خطافات Helm

يُعرَض كل إدخال في additionalManifests كمستند YAML منفصل. يمكنك إضافة التعليقات التوضيحية لخطافات Helm للتحكم في ترتيب التثبيت/الترقية:

ترتيب CRD

إذا كانت ملفات البيان الإضافية لديك تتضمن موارد مخصصة (مثل PodMonitor)، فيجب أن تكون تعريفات الموارد المخصصة (CRDs) موجودة بالفعل في العنقود قبل التثبيت/الترقية.

دمج موارد متعددة

additionalManifests عبارة عن قائمة. تُعرَض العناصر وفق ترتيبها في القائمة، ويصبح كل عنصر مستند YAML مستقلًا.

الخطوات التالية

آخر تعديل في ٢ يوليو ٢٠٢٦