namespace 'ak8s' do

desc 'Deploys the current microservice TAG version on a specific NAMESPACE'
task :deploy, [:namespace, :tag, :cleanup] do |_t, args|
  puts "ARGS: [#{args.namespace}, #{args.tag}, #{args.cleanup}]" unless ENV['K8S_DEBUG'].nil?

  deployment_path = ENV['K8S_DEPLOYMENT_FILE'] || 'kube/last_deployment.yml'
  puts "[K8S DEBUG DEPLOYMENT: #{deployment_path}]" unless ENV['K8S_DEBUG'].nil?
  Rake::Task['ak8s:build_deployment'].invoke(args.namespace, args.tag)

  unless ENV['K8S_DEBUG'].nil?
    puts '[K8S DEBUG DEPLOYMENT FILE]'
    puts File.read(deployment_path)
    puts '[/K8S DEBUG DEPLOYMENT FILE]'
  end

  sh %{kubectl apply -f #{deployment_path}} do |ok, res|
    cleanup = args.cleanup && File.exist?(deployment_path)
    File.delete(deployment_path) if cleanup

    raise "Error deploying! (status = #{res.exitstatus})" unless ok

    puts 'Deployment successfully applied!'
  end
end

end