class KTools::Tools::Spy
Public Class Methods
new(args)
click to toggle source
# File lib/ktools/tools/spy.rb, line 8 def initialize(args) @args = args @action = "#{args[0]} #{args[1]}" @subject = args[2] @env = args[3] @cfg = KTools::KDB.read end
start(args)
click to toggle source
# File lib/ktools/tools/spy.rb, line 4 def self.start(args) self.new(args).start end
Public Instance Methods
start()
click to toggle source
# File lib/ktools/tools/spy.rb, line 16 def start case @action when 'drop registry' puts "Deleting Docker Registry for #{@subject}..." puts "" registry_name = "#{@subject}-registry" Sh.ell("kubectl delete secret #{registry_name} -n foxbox") when 'create registry' puts "Creating Docker Registry for #{@subject}..." puts "" registry_name = "#{@subject}-registry" env_path = "#{@cfg["secrets"]}/#{@env}/#{@subject}" registry_file = "#{env_path}/create_registry.json" puts Sh.ellb!("kubectl create -f #{registry_file} -n foxbox") when 'drop config' puts "Deleting configMap for #{@subject}..." puts "" config_name = "#{@subject}-config-map" Sh.ell("kubectl delete configMap #{config_name} -n foxbox") when 'apply config' puts "Updating/Creating configMap for #{@subject}..." unless @env puts "" puts "Please, express the environment." puts "It can be 'production' or 'staging', like:" puts "$ kt spy apply config appslug staging" exit 1 end env_path = "#{@cfg["secrets"]}/#{@env}/#{@subject}" config_map_file = "#{env_path}/config_map.yml" Sh.ell("kubectl apply -f #{config_map_file} -n foxbox") when 'drop ingress' puts "Deleting ingress for #{@subject}..." puts "" ingress_name = "#{@subject}-ingress" Sh.ell("kubectl delete ingress #{ingress_name} -n foxbox") when 'apply ingress' puts "Updating/Creating ingress for #{@subject}..." unless @env puts "" puts "Please, express the environment." puts "It can be 'production' or 'staging', like:" puts "$ kt spy apply ingress appslug staging" exit 1 end env_path = "#{@cfg["secrets"]}/#{@env}/#{@subject}" ingress_file = "#{env_path}/ingress.yml" Sh.ell("kubectl apply -f #{ingress_file} -n foxbox") when 'drop all' puts "Deleting ALL Kubernetes resources of #{@subject}..." puts "" puts "Ctrl-C to cancel in 5 seconds..." sleep 5 puts "Starting..." drop_cmd = <<~HEREDOC kubectl delete deployment #{@subject}-deployment -n foxbox && kubectl delete configMap #{@subject}-config-map -n foxbox && kubectl delete ingress #{@subject}-ingress -n foxbox && kubectl delete service #{@subject}-service -n foxbox && kubectl delete secret #{@subject}-registry -n foxbox HEREDOC Sh.ellb!(drop_cmd) else Help.display end end