2015-11-13 83 views
1

更新:Kubernetes支持現在直接向環境變量添加祕密。查看githubkubernetes祕密文件到環境變量


原帖莢例如:

我一直在使用祕密Kubernetes創建存儲敏感的configs文件,但我總是最後寫一個額外層到容器或壓倒一切CMD在正常運行之前將祕密文件的內容讀入環境變量。我想要一個bash腳本來爲我做這個。我發現了一個類似的ruby腳本,但是我的ruby和bash技能還不夠完善。下面是從https://blog.oestrich.org/2015/09/kubernetes-secrets-to-env-file/

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 

的Ruby腳本有了一個bash腳本,它類似於上面的東西,這將是很好,如果它可以由通用的,所以它會檢查,如果該目錄存在,如果不是(如在普通的Docker環境中),它會假定環境變量已經通過其他方式設置。

我該如何寫腳本來做到這一點?

回答

1

我注意到在揭露祕密的環境變量的功能要求你的使用情況: https://github.com/kubernetes/kubernetes/issues/4710

它主要的引用,使這個棘手的外殼。以下內容適用於我交互式地工作,並應該在腳本中工作,但如果指定爲「sh -c」的參數,則需要額外的引用。

(LS -1 secretdir |同時讀取VAR;做回聲出口$ {VAR} = $(貓secretdir/$ {VAR});完成;回聲yourcommand)| sh -

可能有更優雅的方式來做到這一點。