Spring Cloud kubernetes не загружает карту конфигурации

Я создал 2 карты конфигурации с именами personservice и personservice-dev.

Я запускаю приложение весенней загрузки с профилем dev, но оно не загружает правильную карту конфигурации. Это то, что я вижу в журналах модуля, который терпит крах.

 2019-11-05 16:29:37.336  INFO [personservice,,,] 7 --- [           main] b.c.PropertySourceBootstrapConfiguration : Located property source: CompositePropertySource {name='composite-configmap', propertySources=[ConfigMapPropertySource {name='configmap.personservice.default'}]}
2019-11-05 16:29:37.341  INFO [personservice,,,] 7 --- [           main] b.c.PropertySourceBootstrapConfiguration : Located property source: SecretsPropertySource {name='secrets.personservice.default'}
2019-11-05 16:29:37.445  INFO [personservice,,,] 7 --- [           main] c.person.PersonMicroServiceApplication   : The following profiles are active: kubernetes,dev

Kubectl получить карты конфигурации

введите описание изображения здесь

Файл развертывания:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: personservice
  labels:
    app: personservice
spec:
  replicas: 1
  selector:
    matchLabels:
      app: personservice
  template:
    metadata:
      labels:
        app: personservice
    spec:
      containers:
      - name: personservice
        image: microservice-k8s/personmicroservice-k8s:1.0
        ports:
        - containerPort: 8080
        env:
        - name: PROFILE
          value: "dev" 
        - name: SERVER_PORT
          value: "8080"
        - name: ZIPKIN_URI
          value: "http://172.19.27.145:9411"

Bootstrap:

spring:
  application:
    name: personservice

person Chandresh Mishra    schedule 05.11.2019    source источник
comment
ваша конфигурация развертывания не указывает загрузку какой-либо карты конфигурации. спецификация модуля должна включать конфигурационную карту как объем или определенную как переменную   -  person Patrick W    schedule 05.11.2019
comment
Как вы определяете раздел данных configmap?   -  person akuma8    schedule 05.11.2019
comment
Я думал, что это будет автоматически cloud.spring.io/spring-cloud-static/spring-cloud-kubernetes/ это неверно? Я имею в виду, что я определил профиль, и configmap имеет то же имя, что и приложение   -  person Chandresh Mishra    schedule 05.11.2019


Ответы (1)


Вы что-то перепутали. Ваша конфигурационная карта называется personservice-dev, а имя вашего приложения - personservice, а не personservice-dev, по умолчанию Spring Cloud K8S ищет конфигурационную карту с именем, равным spring.application.name, а не spring.application.name-{profile}.

У вас есть 2 способа решить вашу проблему:

1-Удалите personservice-dev и в вашей personservice configmap:

kind: ConfigMap
apiVersion: v1
metadata:
  name: personservice
data:
  application.yml: |-
    p1:
      pa: blabla
    ---
    spring:
      profiles: dev
    p1:
      pa: blibli
    ---
    spring:
      profiles: prod
    p1:
      pa: blublu

2-Сохраните personservice-dev и personservice и определите это в bootstrap.yml:

spring:
  cloud:
    kubernetes:
      config:
        name: ${spring.application.name} #This is optional
        sources:
          - name: ${spring.application.name}-${PROFILE} # Here you get your `personservice-dev` configmap
person akuma8    schedule 05.11.2019
comment
да, теперь я вижу, что он загружает правильный файл, но не уверен, что по умолчанию? propertySources = [ConfigMapPropertySource {name = 'configmap.personservice-dev.default'}]} все еще что-то не так? - person Chandresh Mishra; 06.11.2019
comment
Что вы подразумеваете под «не уверен, что используется по умолчанию?»? - person akuma8; 06.11.2019
comment
Я имею в виду default в этом configmap.personservice-dev.default. это пространство имен? - person Chandresh Mishra; 06.11.2019
comment
Да, это. Вы также можете указать другое пространство имен, если хотите - person akuma8; 06.11.2019
comment
Спасибо друг. Ты жизнь безопаснее. где я могу найти более подробную документацию по весенним облачным кубернатам? - person Chandresh Mishra; 06.11.2019
comment
Все здесь cloud.spring.io/spring-cloud-static/spring-cloud-kubernetes/ - person akuma8; 06.11.2019