Kubernetes: Zitiertes YAML erforderlich, wenn keines erforderlich

Erstellt am 14. Sept. 2016  ·  3Kommentare  ·  Quelle: kubernetes/kubernetes

Ist das eine Bitte um Hilfe?

Nein

Nach welchen Schlüsselwörtern haben Sie in Kubernetes-Ausgaben gesucht, bevor Sie diese eingereicht haben?

yaml zitat zitate

Ist dies ein FEHLERBERICHT oder eine FEATURE-ANFRAGE? (wähle ein):

Kubernetes-Version (verwenden Sie kubectl version ): 1.3.6

Umgebung :

  • Cloud-Anbieter oder Hardwarekonfiguration : GCE
  • Betriebssystem (zB aus /etc/os-release): Alpine Linux 3.4.0
  • Kernel (zB uname -a ): Linux kash-api-4080102595-t21vs 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-2 (2016-04-08) x86_64 Linux
  • Tools installieren : apk
  • Andere :

Was ist passiert : Beim Erstellen von Secrets/Configmaps scheint es ziemlich zufällig zu sein, wann Werte in Anführungszeichen gesetzt werden sollen oder nicht. Manchmal handelt es sich um Zahlen, manchmal um Zeichenfolgen, und nicht immer, weil mit nicht standardmäßigen Zeichen begonnen wird.

Wir verwenden NodeJS, um unsere Konfigurationen zu generieren, und (überraschenderweise) unterstützt keine der Bibliotheken das Erzwingen von Anführungszeichen um Werte und generiert gültiges YAML für alle unsere anderen Anwendungsfälle. Wir greifen auf einige nachgenerierte 'sed' /magic/ zurück, um die Anführungszeichen hinzuzufügen, aber das ist nicht ideal.

Ist es möglich, dass die von kubectl verwendete YAML-Validierung zu streng/gebrochen ist, wenn Werte in Anführungszeichen gesetzt werden müssen oder nicht?

Was Sie erwartet haben : Damit Sie nach der Verwendung eines gültigen YAML-Generators keine Anführungszeichen manuell hinzufügen müssen

So reproduzieren Sie es (so minimal und genau wie möglich):
Hier ist ein configmap-Wert, der Anführungszeichen erfordert

dbconnectiontimeout: '60'

oder

remoteip: 'irgendwie-host-hier'

Was müssen wir sonst noch wissen :

arekubectl siapi-machinery

Alle 3 Kommentare

@theothermike Hallo, dies scheint ein bekanntes Problem zu sein und es scheint keine wirkliche Lösung dafür zu geben. dh Sie Typ richtig .. Ich würde vorschlagen , bei der Diskussion hier angeben müssen https://github.com/kubernetes/kubernetes/issues/2763 Viele gute Kommentare von @liggitt Dies war ein weiteres ähnliches Problem gemeldet und geschlossen https: / /github.com/kubernetes/kubernetes/issues/28974 Wenn Sie damit @liggitt macht Sinn?

Ich kann Zahlen ohne Anführungszeichen verwenden, indem ich den Werten !!integer . Aber !!int funktioniert nicht. (Mit Kubernetes 1.8)

Ex:

apiVersion: v1
kind: ConfigMap
metadata:
 name: identity-config
data:
  TC_HOST: 192.168.1.10
  TC_PORT: !!integer 8080

Stimme mit spzala zu, der Typ muss korrekt als String angegeben werden. Yaml erfordert nur, dass Zahlen- und Boolesche Werte in Anführungszeichen gesetzt werden (Alphawerte werden als Strings gefolgert), aber Sie können alle configmap-Datenwerte in Anführungszeichen setzen, wenn es einfacher ist

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

chowyu08 picture chowyu08  ·  3Kommentare

broady picture broady  ·  3Kommentare

Seb-Solon picture Seb-Solon  ·  3Kommentare

arun-gupta picture arun-gupta  ·  3Kommentare

mml picture mml  ·  3Kommentare