首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用秘密配置Kubernetes上的Spring

如何用秘密配置Kubernetes上的Spring
EN

Stack Overflow用户
提问于 2022-02-14 07:52:48
回答 1查看 1K关注 0票数 0

我已经用kubeseal加密了两个数据库密码,但如果我使用Spring,我不知道如何将它们准确地安装到配置文件中。

应用程序不断抱怨缺少占位符密码。无法解析占位符“datasources.eco.password”

下面是生成的秘密:

代码语言:javascript
复制
apiVersion: bitnami.com/v1alpha1
kind: SealedSecret
metadata:
  annotations:
    sealedsecrets.bitnami.com/namespace-wide: "true"
  creationTimestamp: null
  name: database-keys
  namespace: eco-test
spec:
  encryptedData:
    ecoadmin: AgBPqs07GicbU4eyYXfQrVoRHCkfPHH8jxN8...sefwfs4fse
    ecodb: AgAHYRYpk5j+ZCyIDpYr89d8pYLJ6E8S...sr3245sefsf
  template:
    data: null
    metadata:
      annotations:
        sealedsecrets.bitnami.com/namespace-wide: "true"
      creationTimestamp: null
      name: database-keys
      namespace: eco-test

这里是我尝试在我的属性文件中挂载秘密的地方:

代码语言:javascript
复制
   datasources:
      eco:
        #url: jdbc:oracle:thin:@10.246...
        url: jdbc:oracle:thin:@12.234...
        username: ECO
        password:
          secretKeyRef:
            name: database-keys
            key: ecodb
        minPoolSize: 5
        maxPoolSize: 20
        edition: 'REL_2021_12_06'
      ecoadmin:
        #url: jdbc:oracle:thin:@10.246...
        url: jdbc:oracle:thin:@21.32...
        username: ECOADM
        password:
          secretKeyRef:
            name: database-keys
            key: ecoadmin
EN

回答 1

Stack Overflow用户

发布于 2022-02-15 08:05:59

不确定您是否将plattform (k8s)与服务(springboot)功能混淆在一起。

当您将springboot应用程序配置为预期值为"datasources.eco.password“时,您不能使用kubernetes方法从秘密中挂载值,因为它需要类似的内容

代码语言:javascript
复制
datasources:
  eco:
    password: password123

我假设您可以在属性文件中引用ENV,所以其中一种方法是将秘密值作为ENV挂载,并在属性文件中引用。

属性文件:

代码语言:javascript
复制
datasources:
  eco:
    #url: jdbc:oracle:thin:@10.246...
    url: jdbc:oracle:thin:@12.234...
    username: ECO
    password: ${DB_ADMIN_KEY_PW}
    minPoolSize: 5
    maxPoolSize: 20
    edition: 'REL_2021_12_06'
  ecoadmin:
    #url: jdbc:oracle:thin:@10.246...
    url: jdbc:oracle:thin:@21.32...
    username: ECOADM
    password: ${DB_ADMIN_KEY_PW}

deployment.yaml:

代码语言:javascript
复制
kind: Deployment
apiVersion: apps/v1
metadata:
  ...
spec:
  ...
  template:
    ...
    spec:
      ...
      containers:
        - name: <app>
          image: <image>
          env:
            - name: DB_ADMIN_KEY_PW
              valueFrom:
                secretKeyRef:
                  name: database-keys
                  key: ecoadmin
          ...

参考资料:

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71108596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档