2
votes

Pouvons-nous utiliser "data" comme fichier yaml au lieu de fichier Json dans la carte de configuration

Prenons cet exemple de carte de configuration

apiVersion: v1
kind: ConfigMap
data:
  abc.yml: |-
<yml here>

Obtenir une erreur comme l'échec de l'analyse de yaml vers Json.


1 commentaires

supprimez '-' de abc.yml: | - et essayez


3 Réponses :


0
votes

Créez ConfigMap à partir d'un fichier.

kubectl create configmap myconfig --from-file = youfile.yml .

Vous pouvez consulter d'autres exemples sur documentation kubernetes


0 commentaires

0
votes

Ceux-ci pourraient être les problèmes 1. très probablement le problème pourrait avec l'indentation. 2. supprimez '-' de abc.yml: | - et vérifiez

J'ai suivi les étapes ci-dessous et j'ai pu charger le fichier yaml dans configmap. cela a bien fonctionné.

master $ kubectl get cm testcfg -oyaml
apiVersion: v1
data:
  c.yaml: |
    apiVersion: v1
    data:
      redis-config: |
        maxmemory 2mb
        maxmemory-policy allkeys-lru
    kind: ConfigMap
    metadata:
      name: example-redis-config
kind: ConfigMap
metadata:
  creationTimestamp: 2019-03-07T08:35:18Z
  name: testcfg
  namespace: default
  resourceVersion: "7520"
  selfLink: /api/v1/namespaces/default/configmaps/testcfg
  uid: f033536d-40b3-11e9-a67d-0242ac11005b

master $ kubectl create configmap  testcfg --from-file=./c.yaml
master $ cat c.yaml
apiVersion: v1
data:
  redis-config: |
    maxmemory 2mb
    maxmemory-policy allkeys-lru
kind: ConfigMap
metadata:
  name: example-redis-config


2 commentaires

apiVersion: v1 type: données ConfigMap: abc.yml: | namespace: "a_namespace": development: <<: * defaults deployment >> default Comment faire en sorte que la carte de configuration lise les variables par défaut?


Veuillez indiquer clairement ce que vous essayez de réaliser exactement



0
votes

Oui, vous pouvez le faire, mais vous devez vous soucier de la syntaxe. Vous pouvez également suivre les techniques pour yaml à partir de ici .

Si vous utilisez kubectl create configmap myconfig --from-file = abc.yml , alors c'est ok.

Mais si vous écrivez le tout le fichier yaml pour votre configmap dans myconfig.yaml, puis exécutez kubectl create -f myconfig.yaml , alors vous devriez vous soucier de la syntaxe.

Dites votre abc.yml le fichier est le suivant:

apiVersion: v1
kind: ConfigMap
data:
  abc.yml: |
    a:
      b: b1
      c: c1
    d: d1

Ensuite, écrivez votre fichier myconfig.yaml :

a:
  b: b1
  c: c1
d: d1


0 commentaires