1
votes

passer la variable booléenne comme env, secret ou configmap dans le fichier yaml k8s

Nous travaillons sur la création d'un fichier yaml de déploiement pour notre application Java spring-boot à exécuter sur AKS.

J'ai besoin d'un moyen d'ajouter une variable booléenne comme env, secret ou configmap que je peux transmettre à l'application suivante. propriétés

azure.activedirectory.session-stateless = true

à la variable d'environnement à l'intérieur de mon pod comme ça

apiVersion: apps/v1
kind: Deployment
metadata:
  name: service
spec:
  replicas: 1
  selector:
    matchLabels:
      app: svc-deployment
  template:
    spec:
      containers:
      - name: image
        image: acr/image:tag
        env:
        - name: azure.activedirectory.session-stateless
          value: true

J'ai lu que yaml semble ne pas pouvoir analyser les valeurs booléennes non plus avec des guillemets - "ture" - ou sans. Y a-t-il une solution de contournement?


3 commentaires

Ce n'est donc pas un fichier .properties , mais .yml , oui? Comment lisez-vous les propriétés (probablement à la manière standard de Spring)? Mais comment essayez-vous de lire la propriété 'value' (je veux dire, comment l'obtenir, comme env.value ou autre)?


Modifiez simplement le message d'origine


essayez de convertir votre yaml en json ou xml avec ceci ou similaire. La valeur fait partie de l'élément objects dans le tableau env , donc ce n'est pas la même chose que azure.activedirectory.session-stateless = true


3 Réponses :


0
votes

Pour qu'une variable d'environnement remplace une valeur dans application.properties, vous devez déclarer le nom de la variable d'environnement en majuscules en utilisant des traits de soulignement comme séparateur.

Dans votre cas, le nom de la variable d'environnement doit être AZURE_ACTIVEDIRECTORY_SESSIONSTATELESS

Voir le Règles Reliure Relaxée dans la documentation de Spring Boot pour plus de détails.


2 commentaires

Comment avez-vous eu l'idée que cela devrait être une variable d'environnement (c'est-à-dire de l'utilisateur du système d'exploitation ou du système d'exploitation)? Je parie que env en tant que raccourci pour environnement vient uniquement de la configuration yaml.


Merci. le problème est que je dois passer le booléen.



0
votes

Il n'y a pas de solution de contournement et aucune solution n'a de sens. Les variables d'environnement elles-mêmes sont intrinsèquement des chaînes de caractères, donc les valeurs doivent être trop ou il ne ferait que la convertir pour vous de toute façon.


0 commentaires

1
votes

application.properties peut être configuré par la SPRING_APPLICATION_JSON variable env

apiVersion: apps/v1
kind: Deployment
metadata:
  name: service
spec:
  replicas: 1
  selector:
    matchLabels:
      app: svc-deployment
  template:
    spec:
      containers:
      - name: image
        image: acr/image:tag
        env:
        - name: SPRING_APPLICATION_JSON
          value: '{"azure": {"activedirectory": {"session-stateless": true}}}'

Voir: https://docs.spring.io /spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config


2 commentaires

Merci. C'est presque vrai. Il vous suffit d'ajouter "\" comme lien suivant. Veuillez mettre à jour la réponse afin que je puisse l'approuver. docs.spring. / spring-cloud-dataflow-server-kubernetes / docs / ‌…


Je suppose que je n'en ai pas besoin car j'utilise des guillemets simples