我在模板目录中有一个secret.yaml
文件,其中包含以下数据:
apiVersion: v1
kind: Secret
metadata:
name: appdbpassword
stringData:
password: password
我也有一个ConfigMap:
apiVersion: v1
kind: ConfigMap
metadata:
name: appdbconfigmap
data:
jdbcUrl: jdbc:oracle:thin:@proxy:service
username: bhargav
我正在使用以下吊舱:
apiVersion: v1
kind: Pod
metadata:
name: expense-pod-sample-1
spec:
containers:
- name: expense-container-sample-1
image: exm:1
command: [ "/bin/sh", "-c", "--" ]
args: [ "while true; do sleep 30; done;" ]
envFrom:
- configMapRef:
name: appdbconfigmap
env:
- name: password
valueFrom:
secretKeyRef:
name: appdbpassword
key: password
当我使用helm install命令时,我看到Pod正在运行,但是如果我尝试在应用程序中使用环境变量${password}
,它将无法正常工作。提示密码错误。它不会抱怨用户名是ConfigMap。仅当我使用头盔时才会发生这种情况。如果我不使用头盔,而是使用kubectl独立运行所有YAML文件,则我的应用程序可以正确访问用户名和密码。
我在这里错过了什么吗?
答案 0 :(得分:2)
apiVersion: v1
kind: Secret
metadata:
name: test-secret
data:
password : cGFzc3dvcmQK
您还可以在将数据转换为base64格式时添加这样的秘密。虽然stringData在创建机密时会自动执行此操作。
尝试以这种方式在环境中添加机密
envFrom:
- secretRef:
name: test-secret