Spring Cloud Kubernetes:无法读取带有名称的 configMap

Spring Cloud Kubernetes: Can't read configMap with name

有人知道如何解决这个问题吗:WARN | main | o.s.c.k.c.ConfigMapPropertySource | Can't read configMap with name: [commons] in namespace:[dev]. Ignoring 我的 bootstrap-prod.yml:

中有这个配置
spring:
  cloud:
    kubernetes:
      config:
        name: ${spring.application.name} 
        sources:
          - name: commons 
        namespace: dev
      secrets:
        name: commons-secret
      reload:
        enabled: true

但是由于该错误,应用程序无法启动。 与此处描述的问题相同:https://github.com/spring-cloud/spring-cloud-kubernetes/issues/138 我将命名空间的 ServiceAccount 绑定到集群 view 角色。

奇怪的是在同一个命名空间中有 2 个应用程序,第一个(spring clud 网关应用程序)可以读取其 configMap 但第二个(一个简单的 spring 启动网络应用程序) 不能。 我错过了什么? 该应用程序部署在 GKE 上。

#:::::::::::::::::DEPLOYMENT::::::::::::::::::
apiVersion: apps/v1
kind: Deployment
metadata:
  name: appservice
  namespace: dev
spec:
  ...

和 ConfigMap:

apiVersion: v1
kind: ConfigMap
metadata:
  name: commons
  namespace: dev
data:
  application.yml: |-
    server:
      tomcat:
          basedir: ..${file.separator}tomcat-${spring.application.name}
    spring:
      profiles:
        active: prod
      cache:
        ...

感谢您的帮助

我发现了问题,我想是的。问题来自格式错误的 yaml。 如果您看一下我们的 ConfigMap 配置:

...
data:
  application.yml: |-
    server:
      tomcat:
          basedir: ..${file.separator}tomcat-${spring.application.name} # issue is here, bad indentation
    spring:
      profiles:
        active: prod
...

将其更改为:

data:
  application.yml: |-
    server:
      tomcat:
        basedir: ..${file.separator}tomcat-${spring.application.name}
    spring:
      profiles:
        active: prod

似乎一切正常。错误消息没有明确指出这一点有点奇怪。