gpt4 book ai didi

ruby - kubernetes将文件保密到环境变量

转载 作者:行者123 更新时间:2023-12-02 12:24:09 24 4
gpt4 key购买 nike

更新:Kubernetes现在支持直接将 secret 添加到环境变量中。请参阅github上的广告连播示例

原始帖子:

我一直在使用Kubernetes Secrets创建的文件来存储敏感配置,但我总是最终会像往常一样运行之前,在容器中写一个额外的层或覆盖CMD以使 secret 文件的内容进入环境变量。我想要一个bash脚本来为我执行此操作。我发现一个 ruby 脚本执行类似的操作,但是我的 ruby 和bash技能还不够完善。这是https://blog.oestrich.org/2015/09/kubernetes-secrets-to-env-file/的ruby脚本

env = {}

Dir["#{ARGV[1]}/*"].each do |file|
key = file.split("/").last
key = key.gsub("-", "_").upcase
env[key] = File.read(file).strip
end

File.open(ARGV[0], "w") do |file|
env.each do |key, value|
file.puts(%{export #{key}="#{value}"})
end
end

使用与上述操作类似的bash脚本,可以将其设为通用,这样很好,以便它检查目录是否存在,如果不存在(例如,在纯Docker环境中),则将假定该环境变量已经通过其他方式设置。

我将如何编写脚本来做到这一点?

最佳答案

我在功能请求中记录了您的用例,以将 secret 公开为环境变量:
https://github.com/kubernetes/kubernetes/issues/4710

这主要是因为引号使Shell变得棘手。以下内容对我而言是交互式工作的,应该在脚本中工作,但是如果将其指定为“sh -c”的参数,则需要附加引号。

(ls -1 secretdir |同时读取var;执行回显导出$ {var} = $(cat secretdir / $ {var});完成;回显yourcommand)| sh-

可能有更优雅的方法可以做到这一点。

关于ruby - kubernetes将文件保密到环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33703012/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com