Sha256: 898e040b5b2c187893a50305cd03258026500279228cccb3ef71f60878c6e2b9

Contents?: true

Size: 1.21 KB

Versions: 2

Compression:

Stored size: 1.21 KB

Contents

module Kontena::Plugin::Upcloud::Nodes
  class CreateCommand < Clamp::Command
    include Kontena::Cli::Common
    include Kontena::Cli::GridOptions

    parameter "[NAME]", "Node name"
    option "--username", "USER", "Upcloud username", required: true
    option "--password", "PASS", "Upcloud password", required: true
    option "--ssh-key", "SSH_KEY", "Path to ssh public key", required: true
    option "--plan", "PLAN", "Server size", default: '1xCPU-1GB'
    option "--zone", "ZONE", "Zone", default: 'fi-hel1'
    option "--version", "VERSION", "Define installed Kontena version", default: 'latest'

    def execute
      require_api_url
      require_current_grid

      require 'kontena/machine/upcloud'
      grid = fetch_grid
      provisioner = Kontena::Machine::Upcloud::NodeProvisioner.new(client(require_token), username, password)
      provisioner.run!(
        master_uri: api_url,
        grid_token: grid['token'],
        grid: current_grid,
        ssh_key: ssh_key,
        name: name,
        plan: plan,
        zone: zone,
        version: version
      )
    end

    # @param [String] id
    # @return [Hash]
    def fetch_grid
      client(require_token).get("grids/#{current_grid}")
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
kontena-plugin-upcloud-0.2.0.pre1 lib/kontena/plugin/upcloud/nodes/create_command.rb
kontena-plugin-upcloud-0.1.0 lib/kontena/plugin/upcloud/nodes/create_command.rb