我已经用kubeseal加密了两个数据库密码,但如果我使用Spring,我不知道如何将它们准确地安装到配置文件中。
应用程序不断抱怨缺少占位符密码。无法解析占位符“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发布于 2022-02-15 08:05:59
不确定您是否将plattform (k8s)与服务(springboot)功能混淆在一起。
当您将springboot应用程序配置为预期值为"datasources.eco.password“时,您不能使用kubernetes方法从秘密中挂载值,因为它需要类似的内容
datasources:
eco:
password: password123我假设您可以在属性文件中引用ENV,所以其中一种方法是将秘密值作为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}deployment.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
...参考资料:
https://stackoverflow.com/questions/71108596
复制相似问题