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 Réponses :
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.
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.
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.
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}}}'
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
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, commeenv.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 tableauenv
, donc ce n'est pas la même chose queazure.activedirectory.session-stateless = true