我有一个应用程序的部署配置,它(除其他外)为 mysql 数据库创建一个秘密:
---
apiVersion: v1
kind: Secret
metadata:
name: mysql-secret
type: Opaque
data:
MYSQL_USER: my_user
MYSQL_PASSWORD: my_random_secret
MYSQL_DATABASE: my_db
MYSQL_ROOT_PASSWORD: my_random_secret
---
etc...
Run Code Online (Sandbox Code Playgroud)
部署文件受源代码控制,因此我不想将机密放在那里。
my_random_secret有谁知道我如何告诉 Kubernetes 为每个在我的示例中具有值的变量生成随机字符串?最好可以使用 yaml 文件进行配置,而无需调用任何额外的命令。
据我了解,您不想在本地保存您的秘密信息。因此,您需要在创建该秘密时生成它们。
我认为有一种方法可以使用 go-template 创建 Kubernetes 资源。没有找到足够的信息。我无法以这种方式帮助你。
但您也可以使用脚本创建秘密。而且你的秘密也不会被泄露。
在这种情况下,以下脚本可以帮助您。这将为您生成随机密码,并用该密码创建秘密。
cat <<EOF | kubectl create -f -
apiVersion: v1
kind: Secret
metadata:
name: mysql-secret
type: Opaque
data:
MYSQL_PASSWORD: $(head -c 24 /dev/random | base64)
MYSQL_ROOT_PASSWORD: $(head -c 24 /dev/random | base64)
stringData:
MYSQL_USER: my_user
MYSQL_DATABASE: my_db
EOF
Run Code Online (Sandbox Code Playgroud)
运行这个脚本。
希望它对你有用
| 归档时间: |
|
| 查看次数: |
8560 次 |
| 最近记录: |