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: "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)" }, "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
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/krane/cli/global_deploy_command.rb', line 23 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]) # never mutate options directly filenames = [:filenames].dup filenames << "-" if [:stdin] if filenames.empty? raise Thor::RequiredArgumentMissingError, 'At least one of --filenames or --stdin must be set' 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, ) deploy.run!( verify_result: ["verify-result"], prune: [:prune], ) end end |