kontena-plugin-vagrant 0.1.2 → 0.2.0.pre1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +8 -8
- data/Gemfile +1 -2
- data/kontena-plugin-vagrant.gemspec +1 -1
- data/lib/kontena/machine/vagrant/Vagrantfile.master.rb.erb +2 -1
- data/lib/kontena/machine/vagrant/master_destroyer.rb +3 -1
- data/lib/kontena/machine/vagrant/master_provisioner.rb +19 -9
- data/lib/kontena/machine/vagrant/node_destroyer.rb +3 -2
- data/lib/kontena/machine/vagrant/node_provisioner.rb +4 -4
- data/lib/kontena/plugin/vagrant/master/create_command.rb +3 -3
- data/lib/kontena/plugin/vagrant/master/restart_command.rb +2 -1
- data/lib/kontena/plugin/vagrant/master/start_command.rb +2 -1
- data/lib/kontena/plugin/vagrant/master/stop_command.rb +2 -1
- data/lib/kontena/plugin/vagrant/nodes/restart_command.rb +2 -2
- data/lib/kontena/plugin/vagrant/nodes/start_command.rb +2 -1
- data/lib/kontena/plugin/vagrant/nodes/stop_command.rb +2 -1
- data/lib/kontena/plugin/vagrant.rb +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
YTc0YThjZGFlYmE5Y2VkOTdjZDlkMmUxNzhiMWUzMWIzNDliMWY1MQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MGE2NmM1N2ZkMzkwOTk3MmUxMDk5ZGQxNDg3MmUyOTIzYzMyNjM0OQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ZDk3OTEwNWZkNzRiMGNiNDYxZDA4YmU5NDg4MmFhMmYyMzg1ODUxZTc1ZDNl
|
10
|
+
YzFjZmE4MTY0MzRlM2U1Zjc1ZGMwMDIzZWE2MDE5NmVkODJkMjAyMzExMzY0
|
11
|
+
ZDJiYzZiNTI2MWJmNjhiNjk3MzllMGFjZjNkZjZjZTc5ZTFjYzQ=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MzBjODY2NmJkZmI4NTViNmY5ZmRlOTIyOTZlN2VmZjMyMDgwNDI5ZTA3Y2M5
|
14
|
+
ZGFiZjhlNzVlYTViMDQxNjllZGQzZDE5MTZiZjYzM2JhMWU4ZmE3YTZiZGM3
|
15
|
+
OTgwMmQ3NzcyZDYwMzAyYjI1OGZhMGE5MmU4MzFlNzgyYjAwNGQ=
|
data/Gemfile
CHANGED
@@ -4,8 +4,7 @@ source 'https://rubygems.org'
|
|
4
4
|
gemspec
|
5
5
|
|
6
6
|
group :development do
|
7
|
-
gem "kontena-cli", "~> 0.
|
7
|
+
gem "kontena-cli", "~> 0.16.0.pre2"
|
8
8
|
gem "listen", "~> 3.0.8"
|
9
|
-
gem "vagrant", git: "https://github.com/mitchellh/vagrant.git", tag: "v1.8.4"
|
10
9
|
gem "rspec"
|
11
10
|
end
|
@@ -17,7 +17,7 @@ Gem::Specification.new do |spec|
|
|
17
17
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
18
18
|
spec.require_paths = ["lib"]
|
19
19
|
|
20
|
-
spec.add_runtime_dependency 'kontena-cli', '>= 0.
|
20
|
+
spec.add_runtime_dependency 'kontena-cli', '>= 0.16.0.pre2'
|
21
21
|
spec.add_development_dependency "bundler", "~> 1.11"
|
22
22
|
spec.add_development_dependency "rake", "~> 10.0"
|
23
23
|
end
|
@@ -69,7 +69,8 @@ coreos:
|
|
69
69
|
--link kontena-server-mongo:mongodb \
|
70
70
|
-e MONGODB_URI=mongodb://mongodb:27017/kontena_server \
|
71
71
|
-e VAULT_KEY=${KONTENA_VAULT_KEY} -e VAULT_IV=${KONTENA_VAULT_IV} \
|
72
|
-
<% if
|
72
|
+
<% if server_name %>-e KONTENA_SERVER_NAME=<%= server_name %><% end %> \
|
73
|
+
<% if initial_admin_code %>-e KONTENA_INITIAL_ADMIN_CODE=<%= initial_admin_code %><% end %> \
|
73
74
|
-p 8080:9292 \
|
74
75
|
kontena/server:${KONTENA_VERSION}
|
75
76
|
ExecStop=/usr/bin/docker stop kontena-server-api
|
@@ -5,6 +5,8 @@ module Kontena
|
|
5
5
|
module Vagrant
|
6
6
|
class MasterDestroyer
|
7
7
|
|
8
|
+
include Kontena::Cli::ShellSpinner
|
9
|
+
|
8
10
|
attr_reader :client, :api_client
|
9
11
|
|
10
12
|
# @param [Kontena::Client] api_client Kontena api client
|
@@ -15,7 +17,7 @@ module Kontena
|
|
15
17
|
def run!
|
16
18
|
vagrant_path = "#{Dir.home}/.kontena/vagrant_master"
|
17
19
|
Dir.chdir(vagrant_path) do
|
18
|
-
|
20
|
+
spinner "Terminating Kontena Master from Vagrant " do
|
19
21
|
Open3.popen2('vagrant destroy -f') do |stdin, output, wait|
|
20
22
|
while o = output.gets
|
21
23
|
puts o if ENV['DEBUG']
|
@@ -1,7 +1,6 @@
|
|
1
1
|
require 'fileutils'
|
2
2
|
require 'erb'
|
3
3
|
require 'open3'
|
4
|
-
require 'shell-spinner'
|
5
4
|
|
6
5
|
module Kontena
|
7
6
|
module Machine
|
@@ -9,6 +8,7 @@ module Kontena
|
|
9
8
|
class MasterProvisioner
|
10
9
|
include RandomName
|
11
10
|
include Kontena::Machine::Common
|
11
|
+
include Kontena::Cli::ShellSpinner
|
12
12
|
|
13
13
|
API_URL = 'http://192.168.66.100:8080'
|
14
14
|
attr_reader :client
|
@@ -21,9 +21,9 @@ module Kontena
|
|
21
21
|
name = generate_name
|
22
22
|
version = opts[:version]
|
23
23
|
memory = opts[:memory] || 1024
|
24
|
-
auth_server = opts[:auth_server]
|
25
24
|
vault_secret = opts[:vault_secret]
|
26
25
|
vault_iv = opts[:vault_iv]
|
26
|
+
initial_admin_code = opts[:initial_admin_code]
|
27
27
|
vagrant_path = "#{Dir.home}/.kontena/vagrant_master/"
|
28
28
|
if Dir.exist?(vagrant_path)
|
29
29
|
puts "Oops... cannot create Kontena Master because installation path already exists."
|
@@ -36,10 +36,11 @@ module Kontena
|
|
36
36
|
cloudinit_template = File.join(__dir__ , '/cloudinit.yml')
|
37
37
|
vars = {
|
38
38
|
name: name,
|
39
|
+
server_name: name.sub('kontena-master-', ''),
|
39
40
|
version: version,
|
40
41
|
memory: memory,
|
41
|
-
auth_server: auth_server,
|
42
42
|
vault_secret: vault_secret,
|
43
|
+
initial_admin_code: initial_admin_code,
|
43
44
|
vault_iv: vault_iv,
|
44
45
|
cloudinit: "#{vagrant_path}/cloudinit.yml"
|
45
46
|
}
|
@@ -48,19 +49,28 @@ module Kontena
|
|
48
49
|
File.write("#{vagrant_path}/Vagrantfile", vagrant_data)
|
49
50
|
File.write("#{vagrant_path}/cloudinit.yml", cloudinit)
|
50
51
|
Dir.chdir(vagrant_path) do
|
51
|
-
|
52
|
+
spinner "Creating Vagrant machine #{name.colorize(:cyan)} " do
|
52
53
|
Open3.popen2("vagrant up") do |stdin, output, wait|
|
53
54
|
while o = output.gets
|
54
55
|
print o if ENV['DEBUG']
|
55
56
|
end
|
56
57
|
end
|
57
58
|
end
|
58
|
-
ShellSpinner "Waiting for #{name.colorize(:cyan)} to start " do
|
59
|
-
sleep 1 until master_running?
|
60
|
-
end
|
61
|
-
puts "Kontena Master is now running at #{API_URL}"
|
62
|
-
puts "Use #{"kontena login --name #{name.sub('kontena-master-', '')} #{API_URL}".colorize(:light_black)} to complete Kontena Master setup"
|
63
59
|
end
|
60
|
+
|
61
|
+
spinner "Waiting for #{name.colorize(:cyan)} to start " do
|
62
|
+
sleep 1 until master_running?
|
63
|
+
end
|
64
|
+
|
65
|
+
puts
|
66
|
+
puts "Kontena Master is now running at #{API_URL}".colorize(:green)
|
67
|
+
puts
|
68
|
+
|
69
|
+
{
|
70
|
+
name: name.sub('kontena-master-', ''),
|
71
|
+
public_ip: API_URL.split('//').last,
|
72
|
+
code: opts[:initial_admin_code]
|
73
|
+
}
|
64
74
|
end
|
65
75
|
|
66
76
|
def erb(template, vars)
|
@@ -5,6 +5,7 @@ module Kontena
|
|
5
5
|
module Vagrant
|
6
6
|
class NodeDestroyer
|
7
7
|
include RandomName
|
8
|
+
include Kontena::Cli::ShellSpinner
|
8
9
|
|
9
10
|
attr_reader :client, :api_client
|
10
11
|
|
@@ -16,7 +17,7 @@ module Kontena
|
|
16
17
|
def run!(grid, name)
|
17
18
|
vagrant_path = "#{Dir.home}/.kontena/#{grid}/#{name}"
|
18
19
|
Dir.chdir(vagrant_path) do
|
19
|
-
|
20
|
+
spinner "Terminating Vagrant machine #{name.colorize(:cyan)} " do
|
20
21
|
Open3.popen2('vagrant destroy -f') do |stdin, output, wait|
|
21
22
|
while o = output.gets
|
22
23
|
puts o if ENV['DEBUG']
|
@@ -29,7 +30,7 @@ module Kontena
|
|
29
30
|
end
|
30
31
|
node = api_client.get("grids/#{grid}/nodes")['nodes'].find{|n| n['name'] == name}
|
31
32
|
if node
|
32
|
-
|
33
|
+
spinner "Removing node #{name.colorize(:cyan)} from grid #{grid.colorize(:cyan)} " do
|
33
34
|
api_client.delete("grids/#{grid}/nodes/#{name}")
|
34
35
|
end
|
35
36
|
end
|
@@ -1,13 +1,13 @@
|
|
1
1
|
require 'fileutils'
|
2
2
|
require 'erb'
|
3
3
|
require 'open3'
|
4
|
-
require 'shell-spinner'
|
5
4
|
|
6
5
|
module Kontena
|
7
6
|
module Machine
|
8
7
|
module Vagrant
|
9
8
|
class NodeProvisioner
|
10
9
|
include RandomName
|
10
|
+
include Kontena::Cli::ShellSpinner
|
11
11
|
|
12
12
|
attr_reader :client, :api_client
|
13
13
|
|
@@ -43,15 +43,15 @@ module Kontena
|
|
43
43
|
File.write("#{vagrant_path}/cloudinit.yml", cloudinit)
|
44
44
|
node = nil
|
45
45
|
Dir.chdir(vagrant_path) do
|
46
|
-
|
46
|
+
spinner "Creating Vagrant machine #{name.colorize(:cyan)} " do
|
47
47
|
Open3.popen2('vagrant up') do |stdin, output, wait|
|
48
48
|
while o = output.gets
|
49
49
|
print o if ENV['DEBUG']
|
50
50
|
end
|
51
51
|
end
|
52
52
|
end
|
53
|
-
|
54
|
-
sleep 1 until
|
53
|
+
spinner "Waiting for node #{name.colorize(:cyan)} join to grid #{grid.colorize(:cyan)} " do
|
54
|
+
sleep 1 until node_exists_in_grid?(grid, name)
|
55
55
|
end
|
56
56
|
end
|
57
57
|
set_labels(
|
@@ -5,18 +5,18 @@ module Kontena::Plugin::Vagrant::Master
|
|
5
5
|
|
6
6
|
option "--memory", "MEMORY", "How much memory node has", default: '512'
|
7
7
|
option "--version", "VERSION", "Define installed Kontena version", default: 'latest'
|
8
|
-
option "--auth-provider-url", "AUTH_PROVIDER_URL", "Define authentication provider url"
|
9
8
|
option "--vault-secret", "VAULT_SECRET", "Secret key for Vault"
|
10
9
|
option "--vault-iv", "VAULT_IV", "Initialization vector for Vault"
|
10
|
+
option "--name", "NAME", "Set Master name"
|
11
11
|
|
12
12
|
def execute
|
13
13
|
require_relative '../../../machine/vagrant'
|
14
14
|
provisioner.run!(
|
15
15
|
memory: memory,
|
16
16
|
version: version,
|
17
|
-
auth_server: auth_provider_url,
|
18
17
|
vault_secret: vault_secret || SecureRandom.hex(24),
|
19
|
-
vault_iv: vault_iv || SecureRandom.hex(24)
|
18
|
+
vault_iv: vault_iv || SecureRandom.hex(24),
|
19
|
+
initial_admin_code: SecureRandom.hex(16)
|
20
20
|
)
|
21
21
|
end
|
22
22
|
|
@@ -1,6 +1,7 @@
|
|
1
1
|
module Kontena::Plugin::Vagrant::Master
|
2
2
|
class RestartCommand < Kontena::Command
|
3
3
|
include Kontena::Cli::Common
|
4
|
+
include Kontena::Cli::ShellSpinner
|
4
5
|
|
5
6
|
def execute
|
6
7
|
require_relative '../../../machine/vagrant'
|
@@ -8,7 +9,7 @@ module Kontena::Plugin::Vagrant::Master
|
|
8
9
|
vagrant_path = "#{Dir.home}/.kontena/vagrant_master"
|
9
10
|
abort("Cannot find Vagrant kontena-master".colorize(:red)) unless Dir.exist?(vagrant_path)
|
10
11
|
Dir.chdir(vagrant_path) do
|
11
|
-
|
12
|
+
spinner "Restarting Vagrant kontena-master " do
|
12
13
|
Open3.popen2('vagrant reload') do |stdin, output, wait|
|
13
14
|
while o = output.gets
|
14
15
|
print o if ENV['DEBUG']
|
@@ -1,6 +1,7 @@
|
|
1
1
|
module Kontena::Plugin::Vagrant::Master
|
2
2
|
class StartCommand < Kontena::Command
|
3
3
|
include Kontena::Cli::Common
|
4
|
+
include Kontena::Cli::ShellSpinner
|
4
5
|
|
5
6
|
def execute
|
6
7
|
require_relative '../../../machine/vagrant'
|
@@ -8,7 +9,7 @@ module Kontena::Plugin::Vagrant::Master
|
|
8
9
|
vagrant_path = "#{Dir.home}/.kontena/vagrant_master"
|
9
10
|
abort("Cannot find Vagrant node kontena-master".colorize(:red)) unless Dir.exist?(vagrant_path)
|
10
11
|
Dir.chdir(vagrant_path) do
|
11
|
-
|
12
|
+
spinner "Starting Vagrant machine kontena-master " do
|
12
13
|
Open3.popen2('vagrant up') do |stdin, output, wait|
|
13
14
|
while o = output.gets
|
14
15
|
print o if ENV['DEBUG']
|
@@ -1,6 +1,7 @@
|
|
1
1
|
module Kontena::Plugin::Vagrant::Master
|
2
2
|
class StopCommand < Kontena::Command
|
3
3
|
include Kontena::Cli::Common
|
4
|
+
include Kontena::Cli::ShellSpinner
|
4
5
|
|
5
6
|
def execute
|
6
7
|
require_relative '../../../machine/vagrant'
|
@@ -8,7 +9,7 @@ module Kontena::Plugin::Vagrant::Master
|
|
8
9
|
vagrant_path = "#{Dir.home}/.kontena/vagrant_master"
|
9
10
|
abort("Cannot find Vagrant kontena-master".colorize(:red)) unless Dir.exist?(vagrant_path)
|
10
11
|
Dir.chdir(vagrant_path) do
|
11
|
-
|
12
|
+
spinner "Stopping Vagrant kontena-master " do
|
12
13
|
Open3.popen2('vagrant halt') do |stdin, output, wait|
|
13
14
|
while o = output.gets
|
14
15
|
print o if ENV['DEBUG']
|
@@ -2,6 +2,7 @@ module Kontena::Plugin::Vagrant::Nodes
|
|
2
2
|
class RestartCommand < Kontena::Command
|
3
3
|
include Kontena::Cli::Common
|
4
4
|
include Kontena::Cli::GridOptions
|
5
|
+
include Kontena::Cli::ShellSpinner
|
5
6
|
|
6
7
|
parameter "NAME", "Node name"
|
7
8
|
|
@@ -10,12 +11,11 @@ module Kontena::Plugin::Vagrant::Nodes
|
|
10
11
|
require_current_grid
|
11
12
|
|
12
13
|
require_relative '../../../machine/vagrant'
|
13
|
-
require 'shell-spinner'
|
14
14
|
|
15
15
|
vagrant_path = "#{Dir.home}/.kontena/#{current_grid}/#{name}"
|
16
16
|
abort("Cannot find Vagrant node #{name}".colorize(:red)) unless Dir.exist?(vagrant_path)
|
17
17
|
Dir.chdir(vagrant_path) do
|
18
|
-
|
18
|
+
spinner "Restarting Vagrant machine #{name.colorize(:cyan)} " do
|
19
19
|
Open3.popen2('vagrant reload') do |stdin, output, wait|
|
20
20
|
while o = output.gets
|
21
21
|
print o if ENV['DEBUG']
|
@@ -2,6 +2,7 @@ module Kontena::Plugin::Vagrant::Nodes
|
|
2
2
|
class StartCommand < Kontena::Command
|
3
3
|
include Kontena::Cli::Common
|
4
4
|
include Kontena::Cli::GridOptions
|
5
|
+
include Kontena::Cli::ShellSpinner
|
5
6
|
|
6
7
|
parameter "NAME", "Node name"
|
7
8
|
|
@@ -14,7 +15,7 @@ module Kontena::Plugin::Vagrant::Nodes
|
|
14
15
|
vagrant_path = "#{Dir.home}/.kontena/#{current_grid}/#{name}"
|
15
16
|
abort("Cannot find Vagrant node #{name}".colorize(:red)) unless Dir.exist?(vagrant_path)
|
16
17
|
Dir.chdir(vagrant_path) do
|
17
|
-
|
18
|
+
spinner "Starting Vagrant machine #{name.colorize(:cyan)} " do
|
18
19
|
Open3.popen2('vagrant up') do |stdin, output, wait|
|
19
20
|
while o = output.gets
|
20
21
|
print o if ENV['DEBUG']
|
@@ -2,6 +2,7 @@ module Kontena::Plugin::Vagrant::Nodes
|
|
2
2
|
class StopCommand < Clamp::Command
|
3
3
|
include Kontena::Cli::Common
|
4
4
|
include Kontena::Cli::GridOptions
|
5
|
+
include Kontena::Cli::ShellSpinner
|
5
6
|
|
6
7
|
parameter "NAME", "Node name"
|
7
8
|
|
@@ -14,7 +15,7 @@ module Kontena::Plugin::Vagrant::Nodes
|
|
14
15
|
vagrant_path = "#{Dir.home}/.kontena/#{current_grid}/#{name}"
|
15
16
|
abort("Cannot find Vagrant node #{name}".colorize(:red)) unless Dir.exist?(vagrant_path)
|
16
17
|
Dir.chdir(vagrant_path) do
|
17
|
-
|
18
|
+
spinner "Stopping Vagrant machine #{name.colorize(:cyan)} " do
|
18
19
|
Open3.popen2('vagrant halt') do |stdin, output, wait|
|
19
20
|
while o = output.gets
|
20
21
|
print o if ENV['DEBUG']
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kontena-plugin-vagrant
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0.pre1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kontena, Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-09-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: kontena-cli
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ! '>='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 0.16.0.pre2
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ! '>='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
26
|
+
version: 0.16.0.pre2
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -109,9 +109,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
109
109
|
version: '0'
|
110
110
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
111
111
|
requirements:
|
112
|
-
- - ! '
|
112
|
+
- - ! '>'
|
113
113
|
- !ruby/object:Gem::Version
|
114
|
-
version:
|
114
|
+
version: 1.3.1
|
115
115
|
requirements: []
|
116
116
|
rubyforge_project:
|
117
117
|
rubygems_version: 2.4.5
|