0

我已经使用 kubeseal 加密了两个数据库密码,但我不确定如何将它们安装在我的配置文件中,假设我使用的是 Spring Boot。

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

这是生成的秘密:

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

这是我尝试在我的属性文件中安装秘密的地方:

   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
4

1 回答 1

1

不确定您是否在这里混淆了平台(k8s)和服务(springboot)功能。

当您将springboot应用程序配置为期望“datasources.eco.password”中的值时,您不能使用kubernetes方法从那里安装秘密值,因为它需要类似的东西

datasources:
  eco:
    password: password123

我假设您可以在属性文件中引用 ENV,因此一种方法是将 secretsvalue 作为 ENV 挂载并在属性文件中引用它。

属性文件:

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}

部署.yaml:

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
          ...

参考:

于 2022-02-15T08:05:59.640 回答