Как избежать перевода некоторых «{{» из рулевой диаграммы? - PullRequest
0 голосов
/ 17 октября 2018

Я хочу поместить следующую CRD в таблицу управления, но она содержит шаблон go raw.Как заставить руль не переводить {{ и }} внутрь rawTemplate.Спасибо за ваш ответ.https://github.com/kubeflow/katib/blob/master/examples/random-example.yaml

apiVersion: "kubeflow.org/v1alpha1"
kind: StudyJob
metadata:
  namespace: katib
  labels:
    controller-tools.k8s.io: "1.0"
  name: random-example
spec:
 studyName: random-example
 owner: crd
 optimizationtype: maximize
 objectivevaluename: Validation-accuracy
 optimizationgoal: 0.99
 requestcount: 4
 metricsnames:
   - accuracy
 workerSpec:
   goTemplate:
    rawTemplate: |-
      apiVersion: batch/v1
      kind: Job
      metadata:
        name: {{.WorkerId}}
        namespace: katib
      spec:
        template:
          spec:
            containers:
            - name: {{.WorkerId}}
              image: katib/mxnet-mnist-example
              command:
              - "python"
              - "/mxnet/example/image-classification/train_mnist.py"
              - "--batch-size=64"
              {{- with .HyperParameters}}
              {{- range .}}
              - "{{.Name}}={{.Value}}"
              {{- end}}
              {{- end}}
            restartPolicy: Never

1 Ответ

0 голосов
/ 17 октября 2018

На языке шаблонов Go выражение

{{ "{{" }}

расширится до двух открытых фигурных скобок, если вам необходимо использовать синтаксис шаблона Go для создания документов в синтаксисе шаблона Go;например,

{{ "{{" }}- if .Values.foo }}
- name: FOO
  value: {{ "{{" }} .Values.foo }}
{{ "{{" }}- end }}

(В контексте Kubernetes Helm, где вы используете этот синтаксис для генерации YAML, будьте особенно осторожны с обработкой пробелов; рассмотрите возможность использования helm template для выгрузки того, что сгенерировано.)

...