krates-plugin-vagrant 0.3.3 → 0.3.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/kontena/machine/vagrant/Vagrantfile.master.rb.erb +33 -33
- data/lib/kontena/machine/vagrant/cloudinit.yml +1 -1
- data/lib/kontena/machine/vagrant/master_destroyer.rb +2 -2
- data/lib/kontena/machine/vagrant/master_provisioner.rb +7 -7
- data/lib/kontena/plugin/vagrant.rb +1 -1
- data/lib/kontena/plugin/vagrant/master/create_command.rb +40 -34
- data/lib/kontena/plugin/vagrant/master/restart_command.rb +3 -3
- data/lib/kontena/plugin/vagrant/master/ssh_command.rb +2 -2
- data/lib/kontena/plugin/vagrant/master/start_command.rb +3 -3
- data/lib/kontena/plugin/vagrant/master/stop_command.rb +3 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b8dd99d96d0b8c87fd180eb3455da0eb2d3f1acfda36a8685a25843e1ec8a986
|
4
|
+
data.tar.gz: 115b5eacd272651d5bae52ccf78a4e1ebbe10b53fb39cb3c7d52c05bbb1e4173
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: be7c5fe869fe26c0cfc3175fe931e9fa0b66f6050d2034eec5a63ca85821383ea0093110184b33da809f85516be0daa23e7fc3b16d5b19f9542decfdcc261144
|
7
|
+
data.tar.gz: 2c0b3cf46ba3ad247e3cee1f05c194f4baac81718b417c4d69f3ea24cc37c7eaafebca766a3d0dda841b1091b22877519f6e4fc73d5e8e634096f96d0d5e8a50
|
@@ -7,27 +7,27 @@ VAGRANTFILE_API_VERSION = "2"
|
|
7
7
|
cloud_init = <<INIT
|
8
8
|
#cloud-config
|
9
9
|
write_files:
|
10
|
-
- path: /etc/
|
10
|
+
- path: /etc/krates-server.env
|
11
11
|
permissions: 0600
|
12
12
|
owner: root
|
13
13
|
content: |
|
14
14
|
KONTENA_VERSION=<%= version %>
|
15
|
-
|
16
|
-
|
15
|
+
KRATES_VAULT_KEY=<%= vault_secret %>
|
16
|
+
KRATES_VAULT_IV=<%= vault_iv %>
|
17
17
|
coreos:
|
18
18
|
update:
|
19
19
|
reboot-strategy: off
|
20
20
|
units:
|
21
|
-
- name:
|
21
|
+
- name: krates-server-mongo.service
|
22
22
|
command: start
|
23
23
|
enable: true
|
24
24
|
content: |
|
25
25
|
[Unit]
|
26
|
-
Description=
|
26
|
+
Description=krates-server-mongo
|
27
27
|
After=network-online.target
|
28
28
|
After=docker.service
|
29
|
-
Description=
|
30
|
-
Documentation=
|
29
|
+
Description=Krates Server MongoDB
|
30
|
+
Documentation=https://github.com/appsters/krates
|
31
31
|
Requires=network-online.target
|
32
32
|
Requires=docker.service
|
33
33
|
|
@@ -36,52 +36,52 @@ coreos:
|
|
36
36
|
RestartSec=5
|
37
37
|
TimeoutStartSec=0
|
38
38
|
ExecStartPre=/usr/bin/docker pull mongo:3.2
|
39
|
-
ExecStartPre=-/usr/bin/docker network create
|
40
|
-
ExecStartPre=-/usr/bin/docker volume create
|
41
|
-
ExecStartPre=-/usr/bin/docker stop
|
42
|
-
ExecStartPre=-/usr/bin/docker rm
|
43
|
-
ExecStart=/usr/bin/docker run --name=
|
44
|
-
-v
|
45
|
-
--network
|
39
|
+
ExecStartPre=-/usr/bin/docker network create krates
|
40
|
+
ExecStartPre=-/usr/bin/docker volume create krates-server-mongo
|
41
|
+
ExecStartPre=-/usr/bin/docker stop krates-server-mongo
|
42
|
+
ExecStartPre=-/usr/bin/docker rm krates-server-mongo
|
43
|
+
ExecStart=/usr/bin/docker run --name=krates-server-mongo \
|
44
|
+
-v krates-server-mongo:/data/db \
|
45
|
+
--network krates \
|
46
46
|
mongo:3.2
|
47
|
-
ExecStop=/usr/bin/docker stop
|
47
|
+
ExecStop=/usr/bin/docker stop krates-server-mongo
|
48
48
|
|
49
|
-
- name:
|
49
|
+
- name: krates-server-api.service
|
50
50
|
command: start
|
51
51
|
enable: true
|
52
52
|
content: |
|
53
53
|
[Unit]
|
54
|
-
Description=
|
54
|
+
Description=krates-server-api
|
55
55
|
After=network-online.target
|
56
56
|
After=docker.service
|
57
|
-
After=
|
58
|
-
Description=
|
59
|
-
Documentation=
|
57
|
+
After=krates-server-mongo.service
|
58
|
+
Description=Krates Master
|
59
|
+
Documentation=https://github.io/appsters/krates/
|
60
60
|
Requires=network-online.target
|
61
61
|
Requires=docker.service
|
62
|
-
Requires=
|
62
|
+
Requires=krates-server-mongo.service
|
63
63
|
|
64
64
|
[Service]
|
65
65
|
Restart=always
|
66
66
|
RestartSec=5
|
67
67
|
TimeoutStartSec=0
|
68
|
-
EnvironmentFile=/etc/
|
69
|
-
ExecStartPre=-/usr/bin/docker stop
|
70
|
-
ExecStartPre=-/usr/bin/docker rm
|
71
|
-
ExecStartPre=-/usr/bin/docker network create
|
72
|
-
ExecStartPre=/usr/bin/docker pull
|
73
|
-
ExecStart=/usr/bin/docker run --name
|
74
|
-
-e MONGODB_URI=mongodb://
|
75
|
-
-e VAULT_KEY=${
|
68
|
+
EnvironmentFile=/etc/krates-server.env
|
69
|
+
ExecStartPre=-/usr/bin/docker stop krates-server-api
|
70
|
+
ExecStartPre=-/usr/bin/docker rm krates-server-api
|
71
|
+
ExecStartPre=-/usr/bin/docker network create krates
|
72
|
+
ExecStartPre=/usr/bin/docker pull krates/master:${KONTENA_VERSION}
|
73
|
+
ExecStart=/usr/bin/docker run --name krates-server-api \
|
74
|
+
-e MONGODB_URI=mongodb://krates-server-mongo:27017/krates_server \
|
75
|
+
-e VAULT_KEY=${KRATES_VAULT_KEY} -e VAULT_IV=${KRATES_VAULT_IV} \
|
76
76
|
<% if server_name %>-e SERVER_NAME=<%= server_name %><% end %> \
|
77
77
|
<% if initial_admin_code %>-e INITIAL_ADMIN_CODE=<%= initial_admin_code %><% end %> \
|
78
|
-
--network
|
78
|
+
--network krates \
|
79
79
|
-p 8080:9292 \
|
80
|
-
|
81
|
-
ExecStop=/usr/bin/docker stop
|
80
|
+
krates/master:${KONTENA_VERSION}
|
81
|
+
ExecStop=/usr/bin/docker stop krates-server-api
|
82
82
|
INIT
|
83
83
|
|
84
|
-
cloud_init_file = Tempfile.new('
|
84
|
+
cloud_init_file = Tempfile.new('krates-master')
|
85
85
|
File.write(cloud_init_file.path, cloud_init)
|
86
86
|
|
87
87
|
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
|
@@ -8,9 +8,9 @@ module Kontena
|
|
8
8
|
include Kontena::Cli::ShellSpinner
|
9
9
|
|
10
10
|
def run!
|
11
|
-
vagrant_path = "#{Dir.home}/.
|
11
|
+
vagrant_path = "#{Dir.home}/.krates/vagrant_master"
|
12
12
|
Dir.chdir(vagrant_path) do
|
13
|
-
spinner "Triggering termination of
|
13
|
+
spinner "Triggering termination of Krates Master from Vagrant"
|
14
14
|
run_command('vagrant destroy -f')
|
15
15
|
FileUtils.remove_entry_secure(vagrant_path)
|
16
16
|
end
|
@@ -25,10 +25,10 @@ module Kontena
|
|
25
25
|
vault_iv = opts[:vault_iv]
|
26
26
|
initial_admin_code = opts[:initial_admin_code]
|
27
27
|
coreos_channel = opts[:coreos_channel]
|
28
|
-
vagrant_path = "#{Dir.home}/.
|
28
|
+
vagrant_path = "#{Dir.home}/.krates/vagrant_master/"
|
29
29
|
if Dir.exist?(vagrant_path)
|
30
|
-
puts "Oops... cannot create
|
31
|
-
puts "If you are sure that no
|
30
|
+
puts "Oops... cannot create Krates Master because installation path already exists."
|
31
|
+
puts "If you are sure that no Krates Master(s) exist on this machine, remove folder: #{vagrant_path}"
|
32
32
|
abort
|
33
33
|
end
|
34
34
|
FileUtils.mkdir_p(vagrant_path)
|
@@ -37,7 +37,7 @@ module Kontena
|
|
37
37
|
cloudinit_template = File.join(__dir__ , '/cloudinit.yml')
|
38
38
|
vars = {
|
39
39
|
name: name,
|
40
|
-
server_name: name.sub('
|
40
|
+
server_name: name.sub('krates-master-', ''),
|
41
41
|
version: version,
|
42
42
|
memory: memory,
|
43
43
|
vault_secret: vault_secret,
|
@@ -70,10 +70,10 @@ module Kontena
|
|
70
70
|
master_version = JSON.parse(client.get(path: '/'))["version"] rescue nil
|
71
71
|
end
|
72
72
|
|
73
|
-
spinner "
|
73
|
+
spinner "Krates Master #{master_version} is now running at #{API_URL}"
|
74
74
|
|
75
75
|
{
|
76
|
-
name: name.sub('
|
76
|
+
name: name.sub('krates-master-', ''),
|
77
77
|
public_ip: API_URL.split('//').last,
|
78
78
|
provider: 'vagrant',
|
79
79
|
version: master_version,
|
@@ -88,7 +88,7 @@ module Kontena
|
|
88
88
|
end
|
89
89
|
|
90
90
|
def generate_name
|
91
|
-
"
|
91
|
+
"krates-master-#{super}-#{rand(1..99)}"
|
92
92
|
end
|
93
93
|
end
|
94
94
|
end
|
@@ -1,44 +1,50 @@
|
|
1
1
|
require 'securerandom'
|
2
2
|
|
3
|
-
module Kontena
|
4
|
-
|
5
|
-
|
3
|
+
module Kontena
|
4
|
+
module Plugin
|
5
|
+
module Vagrant
|
6
|
+
module Master
|
7
|
+
class CreateCommand < Kontena::Command
|
8
|
+
include Kontena::Cli::Common
|
6
9
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
10
|
+
option "--name", "NAME", "Set master name"
|
11
|
+
option "--memory", "MEMORY", "How much memory node has"
|
12
|
+
option "--version", "VERSION", "Define installed Krates version", default: 'latest'
|
13
|
+
option "--vault-secret", "VAULT_SECRET", "Secret key for Vault"
|
14
|
+
option "--vault-iv", "VAULT_IV", "Initialization vector for Vault"
|
15
|
+
option "--coreos-channel", "CHANNEL", "CoreOS release channel", default: 'stable'
|
13
16
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
17
|
+
def execute
|
18
|
+
require_relative '../../../machine/vagrant'
|
19
|
+
mem = ask_instance_memory
|
20
|
+
provisioner.run!(
|
21
|
+
name: name,
|
22
|
+
memory: mem,
|
23
|
+
version: version,
|
24
|
+
vault_secret: vault_secret || SecureRandom.hex(24),
|
25
|
+
vault_iv: vault_iv || SecureRandom.hex(24),
|
26
|
+
initial_admin_code: SecureRandom.hex(16),
|
27
|
+
coreos_channel: coreos_channel
|
28
|
+
)
|
29
|
+
end
|
30
|
+
|
31
|
+
def ask_instance_memory
|
32
|
+
if self.memory.nil?
|
33
|
+
prompt.select("Choose a size") do |menu|
|
34
|
+
%w(512 1024 2048).each do |mem|
|
35
|
+
menu.choice "#{mem}MB", mem
|
36
|
+
end
|
37
|
+
end
|
38
|
+
else
|
39
|
+
self.memory
|
40
|
+
end
|
41
|
+
end
|
27
42
|
|
28
|
-
|
29
|
-
|
30
|
-
prompt.select("Choose a size") do |menu|
|
31
|
-
%w(512 1024 2048).each do |mem|
|
32
|
-
menu.choice "#{mem}MB", mem
|
43
|
+
def provisioner
|
44
|
+
Kontena::Machine::Vagrant::MasterProvisioner.new
|
33
45
|
end
|
34
46
|
end
|
35
|
-
else
|
36
|
-
self.memory
|
37
47
|
end
|
38
48
|
end
|
39
|
-
|
40
|
-
def provisioner
|
41
|
-
Kontena::Machine::Vagrant::MasterProvisioner.new
|
42
|
-
end
|
43
49
|
end
|
44
|
-
end
|
50
|
+
end
|
@@ -5,10 +5,10 @@ module Kontena::Plugin::Vagrant::Master
|
|
5
5
|
def execute
|
6
6
|
require_relative '../../../machine/vagrant'
|
7
7
|
|
8
|
-
vagrant_path = "#{Dir.home}/.
|
9
|
-
abort("Cannot find Vagrant
|
8
|
+
vagrant_path = "#{Dir.home}/.krates/vagrant_master"
|
9
|
+
abort("Cannot find Vagrant krates-master".colorize(:red)) unless Dir.exist?(vagrant_path)
|
10
10
|
Dir.chdir(vagrant_path) do
|
11
|
-
spinner "Executing 'vagrant reload' for
|
11
|
+
spinner "Executing 'vagrant reload' for krates-master"
|
12
12
|
exit $?.exitstatus unless system('vagrant reload')
|
13
13
|
spinner "Vagrant machine restarted"
|
14
14
|
end
|
@@ -8,8 +8,8 @@ module Kontena::Plugin::Vagrant::Master
|
|
8
8
|
require 'shellwords'
|
9
9
|
require_relative '../../../machine/vagrant'
|
10
10
|
|
11
|
-
vagrant_path = "#{Dir.home}/.
|
12
|
-
abort("Cannot find Vagrant
|
11
|
+
vagrant_path = "#{Dir.home}/.krates/vagrant_master"
|
12
|
+
abort("Cannot find Vagrant krates-master".colorize(:red)) unless Dir.exist?(vagrant_path)
|
13
13
|
|
14
14
|
cmd = "vagrant ssh"
|
15
15
|
if self.commands_list && !self.commands_list.empty?
|
@@ -5,10 +5,10 @@ module Kontena::Plugin::Vagrant::Master
|
|
5
5
|
def execute
|
6
6
|
require_relative '../../../machine/vagrant'
|
7
7
|
|
8
|
-
vagrant_path = "#{Dir.home}/.
|
9
|
-
abort("Cannot find Vagrant node
|
8
|
+
vagrant_path = "#{Dir.home}/.krates/vagrant_master"
|
9
|
+
abort("Cannot find Vagrant node krates-master".colorize(:red)) unless Dir.exist?(vagrant_path)
|
10
10
|
Dir.chdir(vagrant_path) do
|
11
|
-
spinner "Triggering 'vagrant up' for
|
11
|
+
spinner "Triggering 'vagrant up' for krates-master"
|
12
12
|
exit $?.exitstatus unless system('vagrant up')
|
13
13
|
end
|
14
14
|
end
|
@@ -5,10 +5,10 @@ module Kontena::Plugin::Vagrant::Master
|
|
5
5
|
def execute
|
6
6
|
require_relative '../../../machine/vagrant'
|
7
7
|
|
8
|
-
vagrant_path = "#{Dir.home}/.
|
9
|
-
abort("Cannot find Vagrant
|
8
|
+
vagrant_path = "#{Dir.home}/.krates/vagrant_master"
|
9
|
+
abort("Cannot find Vagrant krates-master".colorize(:red)) unless Dir.exist?(vagrant_path)
|
10
10
|
Dir.chdir(vagrant_path) do
|
11
|
-
spinner "Triggering 'vagrant halt' for
|
11
|
+
spinner "Triggering 'vagrant halt' for krates-master"
|
12
12
|
exit $?.exitstatus unless system('vagrant halt')
|
13
13
|
end
|
14
14
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: krates-plugin-vagrant
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pavel Tsurbeleu
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-06-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: krates
|