class Kontena::Cli::Stacks::InstallCommand
Public Instance Methods
create_stack()
click to toggle source
# File lib/kontena/cli/stacks/install_command.rb, line 85 def create_stack spinner "Creating stack #{pastel.cyan(stack['name'])} " do client.post("grids/#{current_grid}/stacks", stack) end end
deploy_dependencies()
click to toggle source
# File lib/kontena/cli/stacks/install_command.rb, line 75 def deploy_dependencies dependencies = loader.dependencies return if dependencies.nil? dependencies.each do |dependency| target_name = "#{stack_name}-#{dependency['name']}" Kontena.run!(['stack', 'deploy', target_name]) end end
deploy_stack()
click to toggle source
# File lib/kontena/cli/stacks/install_command.rb, line 91 def deploy_stack Kontena.run!(['stack', 'deploy', stack['name']]) end
execute()
click to toggle source
# File lib/kontena/cli/stacks/install_command.rb, line 28 def execute install_dependencies unless skip_dependencies? set_env_variables(stack_name, current_grid) stack # runs validations kontena_requirement = stack.dig('metadata', 'required_kontena_version') unless kontena_requirement.nil? master_version = Gem::Version.new(client.server_version) unless Gem::Requirement.new(kontena_requirement).satisfied_by?(master_version) puts "#{pastel.red("Warning: ")} Stack requires kontena version #{kontena_requirement} but Master version is #{master_version}" confirm("Are you sure? You can skip this prompt by running this command with --force option") unless forced? end end hint_on_validation_notifications(reader.notifications) abort_on_validation_errors(reader.errors) dump_variables if values_to create_stack if deploy? deploy_dependencies deploy_stack end end
install_dependencies()
click to toggle source
# File lib/kontena/cli/stacks/install_command.rb, line 57 def install_dependencies dependencies = loader.dependencies return if dependencies.nil? dependencies.each do |dependency| target_name = "#{stack_name}-#{dependency['name']}" caret "Installing dependency #{pastel.cyan(dependency['stack'])} as #{pastel.cyan(target_name)}" cmd = ['stack', 'install', '-n', target_name, '--parent-name', stack_name, '--no-deploy'] dependency['variables'].merge(dependency_values_from_options(dependency['name'])).each do |key, value| cmd.concat ['-v', "#{key}=#{value}"] end cmd << dependency['stack'] Kontena.run!(cmd) end end