38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
# File 'lib/krane/cli/deploy_command.rb', line 38
def self.from_options(namespace, context, options)
require 'krane/deploy_task'
require 'krane/options_helper'
require 'krane/label_selector'
selector = ::Krane::LabelSelector.parse(options[:selector]) if options[:selector]
selector_as_filter = options['selector-as-filter']
if selector_as_filter && !selector
raise(Thor::RequiredArgumentMissingError, '--selector must be set when --selector-as-filter is set')
end
logger = ::Krane::FormattedLogger.build(namespace, context,
verbose_prefix: options['verbose-log-prefix'])
protected_namespaces = options['protected-namespaces']
if options['protected-namespaces'].size == 1 && %w('' "").include?(options['protected-namespaces'][0])
protected_namespaces = []
end
filenames = options[:filenames].dup
filenames << "-" if options[:stdin]
if filenames.empty?
raise(Thor::RequiredArgumentMissingError, '--filenames must be set and not empty')
end
::Krane::OptionsHelper.with_processed_template_paths(filenames) do |paths|
deploy = ::Krane::DeployTask.new(
namespace: namespace,
context: context,
filenames: paths,
logger: logger,
global_timeout: ::Krane::DurationParser.new(options["global-timeout"]).parse!.to_i,
selector: selector,
selector_as_filter: selector_as_filter,
protected_namespaces: protected_namespaces,
)
deploy.run!(
verify_result: options["verify-result"],
prune: options[:prune]
)
end
end
|