Class: Krane::CLI::GlobalDeployCommand
- Inherits:
-
Object
- Object
- Krane::CLI::GlobalDeployCommand
- Defined in:
- lib/krane/cli/global_deploy_command.rb
Constant Summary collapse
- DEFAULT_DEPLOY_TIMEOUT =
'300s'
- OPTIONS =
{ "filenames" => { type: :array, banner: 'config/deploy/production config/deploy/my-extra-resource.yml', aliases: :f, required: false, default: [], desc: "Directories and files that contains the configuration to apply" }, "stdin" => { type: :boolean, default: false, desc: "[DEPRECATED] Read resources from stdin" }, "global-timeout" => { type: :string, banner: "duration", default: DEFAULT_DEPLOY_TIMEOUT, desc: "Max duration to monitor workloads correctly deployed" }, "verify-result" => { type: :boolean, default: true, desc: "Verify workloads correctly deployed" }, "selector" => { type: :string, banner: "'label=value'", required: true, desc: "Select workloads owned by selector(s)" }, "selector-as-filter" => { type: :boolean, desc: "Use --selector as a label filter to deploy only a subset "\ "of the provided resources", default: false }, "prune" => { type: :boolean, desc: "Enable deletion of resources that match"\ " the provided selector and do not appear in the provided templates", default: true }, }
Class Method Summary collapse
Class Method Details
.from_options(context, options) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/krane/cli/global_deploy_command.rb', line 28 def self.(context, ) require 'krane/global_deploy_task' require 'krane/options_helper' require 'krane/label_selector' require 'krane/duration_parser' selector = ::Krane::LabelSelector.parse([:selector]) selector_as_filter = ['selector-as-filter'] if selector_as_filter && !selector raise(Thor::RequiredArgumentMissingError, '--selector must be set when --selector-as-filter is set') end filenames = [:filenames].dup filenames << "-" if [: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::GlobalDeployTask.new( context: context, filenames: paths, global_timeout: ::Krane::DurationParser.new(["global-timeout"]).parse!.to_i, selector: selector, selector_as_filter: selector_as_filter, ) deploy.run!( verify_result: ["verify-result"], prune: [:prune], ) end end |