有人知道如何解决此问题: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 Boot Web应用程序)却不能。 我想念什么? 该应用程序已部署在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:
...
感谢您的帮助
答案 0 :(得分:2)
我找到了问题,我想是的。问题来自格式错误的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
一切似乎都正常。错误消息没有明确指出这一点有点奇怪。