class KubeDeployTools::ConfigMap
Public Class Methods
new(name, from_file, namespace = 'default', labels = nil)
click to toggle source
# File lib/kube_deploy_tools/make_configmap.rb, line 7 def initialize(name, from_file, namespace = 'default', labels = nil) @name = name @namespace = namespace @labels = labels @from_file = from_file end
Public Instance Methods
base()
click to toggle source
# File lib/kube_deploy_tools/make_configmap.rb, line 14 def base { 'apiVersion' => 'v1', 'kind' => 'ConfigMap', 'metadata' => {}, 'data' => {} } end
target_hash()
click to toggle source
# File lib/kube_deploy_tools/make_configmap.rb, line 23 def target_hash res = base res['metadata']['name'] = @name res['metadata']['namespace'] = @namespace res['metadata']['labels'] = @labels if @labels @from_file.each do |from_file| if from_file.include? '=' # e.g. --from-file=config.yml=/path/to/configs/production.yml configmap_key, filepath = from_file.split("=", 2) res['data'][configmap_key] = File.read(filepath) elsif File.file?(from_file) # e.g. --from-file=/path/to/configs/production.yml configmap_key = File.basename(from_file) filepath = from_file res['data'][configmap_key] = File.read(filepath) elsif File.directory?(from_file) # e.g. --from-file=/path/to/configs/ Dir[File.join(from_file, '*')].each do |filepath| # NOTE(jmodes): Multiple levels of directories are not supported. next if File.directory?(filepath) configmap_key = File.basename(filepath) res['data'][configmap_key] = File.read(filepath) end end end res end