微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Spring Cloud Kubernetes 读取namespace下的其他配置文件

如何解决Spring Cloud Kubernetes 读取namespace下的其他配置文件

Spring Cloud Kubernetes 读取命名空间下的其他配置文件

版本:

springboot:2.2.8.RELEASE

spring-cloud-kubernetes: 1.1.6.RELEASE

我想提取部分公共配置文件,如:

  1. jdbc.yaml
  2. redis.yaml
  3. elasticsearch.yaml

与直接引用一起使用

申请:

server:
  port: 8011
feign:
  demo2:
    name: k8s-demo2-service
    url:
    path:
spring:
  application:
    name: k8s-demo1
  cloud:
    kubernetes:
      reload:
        enabled: true
      ribbon:
        mode: service
      config:
        name: k8s-demo1
        namespace: demo-namespace
        sources:
          - name: jdbc-default-name

configMap-message

apiVersion: v1
kind: ConfigMap
Metadata:
  name: k8s-demo1
  namespace: demo-namespace
data:
  bean.value: 'Testing reload! Message from backend is: %s <br/> Services : %s'

jdbc-default-name.yml

apiVersion: v1
kind: ConfigMap
Metadata:
  name: jdbc-default-name
  namespace: demo-namespace
data:
  tc.config.test.value: Testing

apiVersion: v1
kind: ConfigMap
Metadata:
  name: jdbc-default-name
  namespace: demo-namespace
data:
  jdbc-default-name.properties: |-
    tc.config.test.value: Testing

我的java代码

@Data
@Configuration
@ConfigurationProperties(prefix = "tc.config.test")
public class ValueConfig {

    private String value;
}
@RestController
@RequestMapping({"/demo1"})
public class DemoConfigMapController {

    @Autowired
    private ValueConfig valueConfig;

    @GetMapping({"/testvalue"})
    public String testvalue() {
        return valueConfig.getValue();
    }
}

configMap-message configMap 正常工作。但是 jdbc-default-name 不起作用,数据不可用

我的想法有问题吗?还是我写错了?

此外,Metadata.name 必须与 application.name 相同吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。