从文件创建密钥时,使用Kubernetes Secret作为环境变量 [英] Use Kubernetes Secret as Environment Variable when secret is create from a file
问题描述
我已经从文件(secret.txt)中创建了一个kubernetes机密:
I have created a kubernetes secret from a file (secret.txt):
k1=v1
k2=v2
k3=v3
看起来像这个秘密-:
apiVersion: v1
metadata:
name: secret007
data:
secret.txt: bWFza1NhbHQ9InRlc3RzYWx0IgpzM1
我将其用作吊舱中的环境变量,如下所示:
I am using it as environment variable in the pod like this:
- name: KEY1
valueFrom:
secretKeyRef:
key: k1
name: secret007
optional: false
问题 由于数据具有作为单个base64值的值,因此出现问题.我无法在广告连播中引用它并收到此错误.
Problem Problem since the data has a value as a single base64 value. I am not able to refer it in the pod and getting this error.
Warning Failed 6s (x2 over 6s) kubelet, Error: couldn't find key k1 in Secret kube-system/secret007
请建议如何在不更改密码格式的情况下执行此操作,即,密码将是filename的单个键值,而所有secret.txt值将作为单个base64值.有可能吗?
Please suggest how to do this without changing the secret format i.e Secret would be a single key value of filename and all secret.txt values as a single base64 value. Is it possible?
推荐答案
您可以从环境文件中创建秘密条目
You can create secret entries from environment file
kubectl create secret generic test --from-env-file=secret.txt
,并且您的秘密中的输出将具有不同的值
and the output will have distinct values in your secret
apiVersion: v1
data:
k1: djE=
k2: djI=
k3: djM=
kind: Secret
metadata:
creationTimestamp: null
name: test
这篇关于从文件创建密钥时,使用Kubernetes Secret作为环境变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!