Mogę utworzyć konfigurację bez problemów z kubectl create configmap settings --from-file settings.yaml, ale nie chcę ręcznie tworzyć go, ale jako część helm install.

Więc stworzyłem plik szablonu:

apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ .Values.settingsConfigMap }}
data:
  settings.yaml: |-
{{ .Files.Get "settings.yaml" | indent 4}}

Ale kiedy biegam helm install Dostaję błąd mówiąc

Nieprawidłowy typ dla io.k8s.api.core.v1.configmap.data: Got "Map", oczekiwany "ciąg"

Więc co mogę zrobić, aby utworzyć tę konfigurację za pomocą Helm Loading treści z pliku YAML?

AKTUALIZACJA

Okazuje się, że wymieniony powyżej błąd jest związany z niektórymi problemami z wcięciem. Usuwając indent 4, udało mi się uzyskać krok dalej, ale teraz nie jest to niepowodzenie, ponieważ wszystkie moje ustawienia są wykrywane jako unknown fields, na przykład:

Nieznany pola "Klienci" w io.k8s.Api.core.v1.configmap, ValidationError (Configmap): Nieznany pole "DEPLOVE_NAME" w io.k8s.api.core.v1.configmap, ValidationError (ConfigMap): Unknown Field "System "W io.k8s.Api.core.v1.configmap.

deploy_name, system i customers to najlepsze klucze na poziomie mojego pliku ustawień.yaml.

0
Ay0 13 październik 2020, 11:11

1 odpowiedź

Najlepsza odpowiedź

Znalazłem odpowiedź.

Wymieniony błąd w aktualizacji jest wynikiem usuwania indent 4. Wyjmując, że Yaml używany przez Helm jest przykręcony, dlatego dlatego nie rozumie tych pól.

Więc dlaczego nie zawiedzie, kiedy miałem indent 4? Powodem jest brakujące białe miejsce przed }. Z {{ .Files.Get "settings.yaml" | indent 4 }}, wszystko jest dobre.

1
Edric 10 listopad 2020, 13:12