Est-ce une demande d'aide ?
non
Quels mots-clés avez-vous recherchés dans les problèmes Kubernetes avant de déposer celui-ci ?
S'agit-il d'un rapport de bogue ou d'une demande de fonctionnalité ? (choisissez-en un):
Version Kubernetes (utilisez kubectl version
): 1.3.6
Environnement :
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 LinuxQue s'est-il passé : lors de la création de secrets/configmaps, il semble assez aléatoire que les valeurs soient ou non entourées de guillemets. Parfois, ce sont des nombres, d'autres fois c'est une chaîne, et pas toujours à cause de commencer par des caractères non standard.
Nous utilisons NodeJS pour générer nos configurations et (étonnamment) aucune des bibliothèques ne prend en charge le forçage des guillemets autour des valeurs et génère un YAML valide pour tous nos autres cas d'utilisation. Nous avons recours à des "sed" /magic/ post-générés pour ajouter les guillemets, mais ce n'est pas idéal.
Est-il possible que la validation YAML utilisée par kubectl soit trop stricte/cassée lorsqu'il exige ou non que les valeurs soient citées ?
Ce à quoi vous vous attendiez : ne pas avoir besoin d'ajouter manuellement des guillemets après avoir utilisé un générateur YAML valide
Comment le reproduire (le plus minimement et le plus précisément possible) :
voici une valeur de configmap qui nécessite de citer
dbconnectiontimeout : '60'
ou
remoteip: 'quelque-hôte-ici'
Autre chose que nous devons savoir :
@theothermike salut, cela semble être un problème connu et il ne semble pas qu'il y ait de véritable solution à ce problème. c'est-à-dire que vous devez spécifier le type correctement .. Je suggérerais de regarder la discussion ici https://github.com/kubernetes/kubernetes/issues/2763 Beaucoup de bons commentaires de @liggitt C'était un autre problème similaire signalé et fermé https :/ /github.com/kubernetes/kubernetes/issues/28974 Si vous êtes d'accord, nous devrions fermer ce problème. Merci! @liggitt a du sens ?
Je suis capable d'utiliser des nombres sans citer en préfixant les valeurs avec !!integer
. Mais !!int
ne fonctionne pas. (En utilisant Kubernetes 1.8)
Ex:
apiVersion: v1
kind: ConfigMap
metadata:
name: identity-config
data:
TC_HOST: 192.168.1.10
TC_PORT: !!integer 8080
D'accord avec spzala, le type doit être spécifié correctement sous forme de chaîne. Yaml ne nécessite que des valeurs numériques et booléennes (les valeurs alpha sont supposées être des chaînes), mais vous pouvez citer toutes les valeurs de données configmap si cela facilite les choses