Helm: هل يستطيع Helm دعم تجاهل {{expr}} الذي هو فقط للتهيئة وليس للعرض؟

تم إنشاؤها على ١٢ أغسطس ٢٠١٧  ·  16تعليقات  ·  مصدر: helm/helm

هناك حالة استخدام: انشر بروميثيوس باعتباره StatefulSet وقواعد التنبيه ConfigMap .

يمكن أن تأخذ _alerting-rules_ مزيدًا من التفاصيل هنا: https://prometheus.io/docs/alerting/rules/#alerting -rules

يبدو مثل:
ALERT InstanceMemoryOverload IF node_memory_Active >= 1 FOR 1m LABELS { service = "k8s_metrics", alertname = "InstanceMemoryOverload" } ANNOTATIONS { summary = "Instance {{ $labels.instance }} memory overload", description = "{{ $labels.instance }} memory overload for more than 1 minutes, now is {{ $value }}." }
هل يستطيع Helm دعم تجاهل {{expr}} الذي هو فقط للتهيئة وليس للعرض؟

questiosupport

التعليق الأكثر فائدة

الاختراق القابل للتطبيق هو السماح لـ Helm بعرض القالب كسلسلة خام. لاحظ قوس الفتح والإغلاق المجعد مع backtick:

# Excerpt from a Prometheus Alertmanager yaml
receivers:
- name: slack-receiver
  slack_configs:
  - text: |-
      {{`{{ range .Alerts }}
        *Alert:* {{ .Annotations.summary }}
      {{ end }}`}}

ال 16 كومينتر

لدي حالة استخدام مماثلة للحصول على قالب نمط go في خريطة التكوين. الآن يحاول helm تقييم القالب والتسبب في أخطاء في خريطة التكوين.

لقد واجهت هذه المشكلة نفسها / المماثلة منذ فترة ، وقمت بحلها عن طريق تضمين قواعد التنبيه كملفات منفصلة ، مثل

apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ template "fullname" . }}-rules
  labels:
    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
    role: {{ template "fullname" . }}-rulefiles
    prometheus: {{ template "fullname" . }}
data:
  {{ (.Files.Glob "files/kubernetes.rules").AsConfig }}
  {{ (.Files.Glob "files/etcd2.rules").AsConfig }}
  {{ (.Files.Glob "files/custom_alert.rules").AsConfig }}

AFAIK من الصعب للغاية الهروب من {{ }} في قالب go ، والتخلص من الملفات من مكان آخر أسهل بكثير.

تتمثل طريقة الهروب من الأقواس المزدوجة المتعرجة في قوالب Go في استخدام {{ "{{" }} . إنه ليس صعبًا للغاية ، إنه قبيح فقط.

سأغلق هذه المشكلة لأن لدينا حلين منفصلين للمشكلة ، ولكن يرجى إعادة الفتح إذا لم يتم حل ذلك.

bacongobbler مرحبًا ماثيو ، لقد كنت أقاتل مع كيفية الهروب من الأقواس المتعرجة في قالب هيلم في تخفيض السعر. ربما لا أفهم الحل الخاص بك. كيف يمكنني تقديم هذا بشكل صحيح؟
(مجرد مقتطف). لقد جربت raw / endraw ، قبل ، مائل عكسي مفرد ، شرطة مائلة عكسية مزدوجة - لم ينجح!
شكرا على أي اقتراح ... أحاول وضع هذا في كتلة التعليمات البرمجية إما مع المسافات البادئة أو backticks.

  apiVersion: apps/v1beta1
  kind: Deployment
  metadata:
    name: {{ template "fullname" . }}

bacongobbler لقد وجدت الحل. أحتاج إلى استخدام كل من القيمة المسبقة و &123; &125;

bacongobbler لقد وجدت الحل. أحتاج إلى استخدام كل من القيمة المسبقة و &123; &125;

هل يمكنك إظهار مثال من فضلك؟
هل هناك طريقة لاستبعاد yaml واحد من محرك القالب؟

الاختراق القابل للتطبيق هو السماح لـ Helm بعرض القالب كسلسلة خام. لاحظ قوس الفتح والإغلاق المجعد مع backtick:

# Excerpt from a Prometheus Alertmanager yaml
receivers:
- name: slack-receiver
  slack_configs:
  - text: |-
      {{`{{ range .Alerts }}
        *Alert:* {{ .Annotations.summary }}
      {{ end }}`}}

الاختراق القابل للتطبيق هو السماح لـ Helm بعرض القالب كسلسلة خام. لاحظ قوس الفتح والإغلاق المجعد مع backtick:

# Excerpt from a Prometheus Alertmanager yaml
receivers:
- name: slack-receiver
  slack_configs:
  - text: |-
      {{`{{ range .Alerts }}
        *Alert:* {{ .Annotations.summary }}
      {{ end }}`}}

شكرا جزيلا. هذا حل المشكلة الكبيرة

يمكنك أيضًا استخدام printf لذلك:

{{ printf "{{ some value }}" }}

الاختراق القابل للتطبيق هو السماح لـ Helm بعرض القالب كسلسلة خام. لاحظ قوس الفتح والإغلاق المجعد مع backtick:

# Excerpt from a Prometheus Alertmanager yaml
receivers:
- name: slack-receiver
  slack_configs:
  - text: |-
      {{`{{ range .Alerts }}
        *Alert:* {{ .Annotations.summary }}
      {{ end }}`}}

يعمل ، تشك

الإصدار: v1.0
النوع: ConfigMap
البيانات الوصفية:
الاسم: {{template "fullname". }}-قواعد
ملصقات:
مخطط: "{{.Chart.Name}} - {{.Chart.Version | استبدال" + "" _ "}}"
الدور: {{template "fullname". }} - ملفات مسطرة
بروميثيوس: {{template "fullname". }}
البيانات:
{{(.Files.Glob "files / kubernetes.rules"). AsConfig}}
{{(.Files.Glob "files / etcd2.rules"). AsConfig}}
{{(.Files.Glob "files / custom_alert.rules"). AsConfig}}

هذا لم يعمل بالنسبة لي.
بعد ضرب رأسي لمدة يومين تمكنت من القيام بالعمل التالي!

apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ template "fullname" . }}-rules
  labels:
    chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
    role: {{ template "fullname" . }}-rulefiles
    prometheus: {{ template "fullname" . }}
data:
  {{- (.Files.Glob "files/kubernetes.rules").AsConfig | nindent 2}}

الاختراق القابل للتطبيق هو السماح لـ Helm بعرض القالب كسلسلة خام. لاحظ قوس الفتح والإغلاق المجعد مع backtick:

# Excerpt from a Prometheus Alertmanager yaml
receivers:
- name: slack-receiver
  slack_configs:
  - text: |-
      {{`{{ range .Alerts }}
        *Alert:* {{ .Annotations.summary }}
      {{ end }}`}}

يمكنني أن أضيف إلى جوقة التأكيدات أن هذا لا يزال يعمل.

وقد تحتاجها للحصول على هذا للعمل:

https://www.vaultproject.io/docs/platform/k8s/injector/examples/

cat <<EOF >> ./patch.yaml
spec:
  template:
    metadata:
      annotations:
        vault.hashicorp.com/agent-inject: "true"
        vault.hashicorp.com/agent-inject-status: "update"
        vault.hashicorp.com/agent-inject-secret-db-creds: "database/creds/db-app"
        vault.hashicorp.com/agent-inject-template-db-creds: |
          {{- with secret "database/creds/db-app" -}}
          postgres://{{ .Data.username }}:{{ .Data.password }}<strong i="13">@postgres</strong>:5432/appdb?sslmode=disable
          {{- end }}
        vault.hashicorp.com/role: "db-app"
        vault.hashicorp.com/ca-cert: "/vault/tls/ca.crt"
        vault.hashicorp.com/client-cert: "/vault/tls/client.crt"
        vault.hashicorp.com/client-key: "/vault/tls/client.key"
        vault.hashicorp.com/tls-secret: "vault-tls-client"
EOF
spec:
  groups:
  - name: alertrules.kafkalag
    rules:
    - alert: AssessmentAggregator lag
      expr: sum(samza_pipeline_metrics_consumer_lag{job_name= "AssessmentAggregator"}) > {{ .Values.assessment_aggregator_threshold }}
      for: 5m
      labels:
        severity: critical
      annotations:
        message: {{`"AssessmentAggregator lag is {{$value}}"`}}
        summary: AssessmentAggregator lag is Critical
````
You can add 

{{ ....... }}
""
وسوف قالب بشكل صحيح

الاختراق القابل للتطبيق هو السماح لـ Helm بعرض القالب كسلسلة خام. لاحظ قوس الفتح والإغلاق المجعد مع backtick:

# Excerpt from a Prometheus Alertmanager yaml
receivers:
- name: slack-receiver
  slack_configs:
  - text: |-
      {{`{{ range .Alerts }}
        *Alert:* {{ .Annotations.summary }}
      {{ end }}`}}

للأسف هذا لا يعمل باستخدام promtool . https://prometheus.io/docs/prometheus/latest/configuration/unit_testing_rules/

spec:
  groups:
  - name: alertrules.kafkalag
    rules:
    - alert: AssessmentAggregator lag
      expr: sum(samza_pipeline_metrics_consumer_lag{job_name= "AssessmentAggregator"}) > {{ .Values.assessment_aggregator_threshold }}
      for: 5m
      labels:
        severity: critical
      annotations:
        message: {{`"AssessmentAggregator lag is {{$value}}"`}}
        summary: AssessmentAggregator lag is Critical

يمكنك إضافة ملفات

{{` ....... `}}

وسوف قالب بشكل صحيح

رائع!!!. انها عملت. شكرا.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

sgoings picture sgoings  ·  3تعليقات

adam-sandor picture adam-sandor  ·  3تعليقات

robsonpeixoto picture robsonpeixoto  ·  3تعليقات

danielcb picture danielcb  ·  3تعليقات

dkirrane picture dkirrane  ·  3تعليقات