kontena-plugin-upcloud 0.1.0 → 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/kontena-plugin-upcloud.gemspec +1 -1
- data/lib/kontena/machine/upcloud/cloudinit_master.yml +5 -2
- data/lib/kontena/machine/upcloud/master_provisioner.rb +16 -12
- data/lib/kontena/machine/upcloud/node_destroyer.rb +2 -3
- data/lib/kontena/machine/upcloud/node_provisioner.rb +3 -3
- data/lib/kontena/machine/upcloud/node_restarter.rb +2 -3
- data/lib/kontena/plugin/upcloud/master/create_command.rb +2 -4
- data/lib/kontena/plugin/upcloud.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
|
+
NmE3N2JkNzNjMWYwZDlhZjhjM2VmYmNiYjIzYjljNDUxMzY1Mjc0YQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
YmEwNTgzZjBiYzE0OTkxMWFjNjJjMzJhYWI5YzhlNjJmMTg3NjBkZg==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MTQ4MjNlNjM2Nzc2MzM4N2U4NzgyNTg0ZDgyYjYyZWVlODEzZTlmZjk4ZGU3
|
10
|
+
ZWVjMmNjYjNjZjk0Y2ZjYzRkYmJjN2NjZDkzMzA0ODM1NzczMzEwZWI2MjY0
|
11
|
+
NjQ1OWY0MTZhMjRmZGViM2ZmMGUyZDFmYzdhODg4ZmY4NDIxZDI=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ZTk1YWQzNDc4YjIxNzEyNjY0MjZmN2Q3Y2YyMDBiY2IyZDE0OWYzYjNlNjBi
|
14
|
+
Y2ZjNTc5MWM3N2I3YmMzOGUwYzkzZjUzOGVhYTNhMjc2ZjhiNjIzNjM2ZmFl
|
15
|
+
OTUxODE0MWRiNGRmOTgwNDQ4OWRjMGI0ZDYzNTM5ODg3ZGVhZDA=
|
@@ -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
|
@@ -89,8 +89,11 @@ coreos:
|
|
89
89
|
--link kontena-server-mongo:mongodb \
|
90
90
|
-e MONGODB_URI=mongodb://mongodb:27017/kontena_server \
|
91
91
|
<% end -%>
|
92
|
-
<% if
|
93
|
-
-e
|
92
|
+
<% if server_name %>
|
93
|
+
-e KONTENA_SERVER_NAME=<%= server_name %> \
|
94
|
+
<% end -%>
|
95
|
+
<% if initial_admin_code %>
|
96
|
+
-e KONTENA_INITIAL_ADMIN_CODE=<%= initial_admin_code %> \
|
94
97
|
<% end -%>
|
95
98
|
-e VAULT_KEY=${KONTENA_VAULT_KEY} -e VAULT_IV=${KONTENA_VAULT_IV} \
|
96
99
|
kontena/server:${KONTENA_VERSION}
|
@@ -10,6 +10,7 @@ module Kontena
|
|
10
10
|
include RandomName
|
11
11
|
include Machine::CertHelper
|
12
12
|
include UpcloudCommon
|
13
|
+
include Kontena::Cli::ShellSpinner
|
13
14
|
|
14
15
|
attr_reader :http_client, :username, :password
|
15
16
|
|
@@ -30,7 +31,7 @@ module Kontena
|
|
30
31
|
abort('Invalid ssl cert') unless File.exists?(File.expand_path(opts[:ssl_cert]))
|
31
32
|
ssl_cert = File.read(File.expand_path(opts[:ssl_cert]))
|
32
33
|
else
|
33
|
-
|
34
|
+
spinner "* Generating self-signed SSL certificate" do
|
34
35
|
ssl_cert = generate_self_signed_cert
|
35
36
|
end
|
36
37
|
end
|
@@ -43,14 +44,10 @@ module Kontena
|
|
43
44
|
|
44
45
|
hostname = generate_name
|
45
46
|
|
46
|
-
userdata_vars =
|
47
|
+
userdata_vars = opts.merge(
|
47
48
|
ssl_cert: ssl_cert,
|
48
|
-
|
49
|
-
|
50
|
-
vault_secret: opts[:vault_secret],
|
51
|
-
vault_iv: opts[:vault_iv],
|
52
|
-
mongodb_uri: opts[:mongodb_uri]
|
53
|
-
}
|
49
|
+
server_name: hostname.sub('kontena-master-', '')
|
50
|
+
)
|
54
51
|
|
55
52
|
device_data = {
|
56
53
|
server: {
|
@@ -83,7 +80,7 @@ module Kontena
|
|
83
80
|
}
|
84
81
|
}.to_json
|
85
82
|
|
86
|
-
|
83
|
+
spinner "* Creating Upcloud master #{hostname.colorize(:cyan)} " do
|
87
84
|
response = post('server', body: device_data)
|
88
85
|
if response.has_key?(:error)
|
89
86
|
abort("\nUpcloud server creation failed (#{response[:error].fetch(:error_message, '')})")
|
@@ -106,12 +103,19 @@ module Kontena
|
|
106
103
|
Excon.defaults[:ssl_verify_peer] = false
|
107
104
|
@http_client = Excon.new("#{master_url}", :connect_timeout => 10)
|
108
105
|
|
109
|
-
|
106
|
+
spinner "* Waiting for #{hostname.colorize(:cyan)} to start" do
|
110
107
|
sleep 5 until master_running?
|
111
108
|
end
|
112
109
|
|
113
|
-
puts
|
114
|
-
puts "
|
110
|
+
puts
|
111
|
+
puts "Kontena Master is now running at #{master_url}".colorize(:green)
|
112
|
+
puts
|
113
|
+
|
114
|
+
{
|
115
|
+
name: hostname.sub('kontena-master-', ''),
|
116
|
+
public_ip: device_public_ip[:address],
|
117
|
+
code: opts[:initial_admin_code]
|
118
|
+
}
|
115
119
|
end
|
116
120
|
|
117
121
|
def user_data(vars)
|
@@ -1,11 +1,10 @@
|
|
1
|
-
require 'shell-spinner'
|
2
|
-
|
3
1
|
module Kontena
|
4
2
|
module Machine
|
5
3
|
module Upcloud
|
6
4
|
class NodeDestroyer
|
7
5
|
include RandomName
|
8
6
|
include UpcloudCommon
|
7
|
+
include Kontena::Cli::ShellSpinner
|
9
8
|
|
10
9
|
attr_reader :api_client, :username, :password
|
11
10
|
|
@@ -39,7 +38,7 @@ module Kontena
|
|
39
38
|
|
40
39
|
if server
|
41
40
|
unless server[:state].eql?('stopped')
|
42
|
-
|
41
|
+
spinner "Shutting down Upcloud node #{name.colorize(:cyan)} " do
|
43
42
|
device_data = post(
|
44
43
|
"server/#{server[:uuid]}/stop", body: {
|
45
44
|
stop_server: {
|
@@ -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 NodeProvisioner
|
10
9
|
include RandomName
|
11
10
|
include UpcloudCommon
|
11
|
+
include Kontena::Cli::ShellSpinner
|
12
12
|
|
13
13
|
attr_reader :api_client, :username, :password
|
14
14
|
|
@@ -73,7 +73,7 @@ module Kontena
|
|
73
73
|
}
|
74
74
|
}.to_json
|
75
75
|
|
76
|
-
|
76
|
+
spinner "Creating Upcloud node #{hostname.colorize(:cyan)} " do
|
77
77
|
response = post('server', body: device_data)
|
78
78
|
|
79
79
|
if response.has_key?(:error)
|
@@ -88,7 +88,7 @@ module Kontena
|
|
88
88
|
end
|
89
89
|
|
90
90
|
node = nil
|
91
|
-
|
91
|
+
spinner "Waiting for node #{hostname.colorize(:cyan)} join to grid #{opts[:grid].colorize(:cyan)} " do
|
92
92
|
sleep 2 until node = node_exists_in_grid?(opts[:grid], hostname)
|
93
93
|
end
|
94
94
|
set_labels(node, ["region=#{opts[:zone]}", "provider=upcloud"])
|
@@ -1,11 +1,10 @@
|
|
1
|
-
require 'shell-spinner'
|
2
|
-
|
3
1
|
module Kontena
|
4
2
|
module Machine
|
5
3
|
module Upcloud
|
6
4
|
class NodeRestarter
|
7
5
|
include RandomName
|
8
6
|
include UpcloudCommon
|
7
|
+
include Kontena::Cli::ShellSpinner
|
9
8
|
|
10
9
|
attr_reader :username, :password
|
11
10
|
|
@@ -27,7 +26,7 @@ module Kontena
|
|
27
26
|
server = servers[:servers][:server].find{|s| s[:hostname] == name}
|
28
27
|
|
29
28
|
if server
|
30
|
-
|
29
|
+
spinner "Restarting Upcloud node #{name.colorize(:cyan)} " do
|
31
30
|
result = post(
|
32
31
|
"server/#{server[:uuid]}/restart", body: {
|
33
32
|
restart_server: {
|
@@ -3,7 +3,7 @@ require 'securerandom'
|
|
3
3
|
module Kontena::Plugin::Upcloud::Master
|
4
4
|
class CreateCommand < Clamp::Command
|
5
5
|
include Kontena::Cli::Common
|
6
|
-
|
6
|
+
|
7
7
|
option "--username", "USER", "Upcloud username", required: true
|
8
8
|
option "--password", "PASS", "Upcloud password", required: true
|
9
9
|
option "--ssh-key", "SSH_KEY", "Path to ssh public key", required: true
|
@@ -14,8 +14,6 @@ module Kontena::Plugin::Upcloud::Master
|
|
14
14
|
option "--vault-iv", "VAULT_IV", "Initialization vector for Vault (optional)"
|
15
15
|
option "--mongodb-uri", "URI", "External MongoDB uri (optional)"
|
16
16
|
option "--version", "VERSION", "Define installed Kontena version", default: 'latest'
|
17
|
-
option "--auth-provider-url", "AUTH_PROVIDER_URL", "Define authentication provider url"
|
18
|
-
|
19
17
|
|
20
18
|
def execute
|
21
19
|
|
@@ -28,9 +26,9 @@ module Kontena::Plugin::Upcloud::Master
|
|
28
26
|
plan: plan,
|
29
27
|
zone: zone,
|
30
28
|
version: version,
|
31
|
-
auth_server: auth_provider_url,
|
32
29
|
vault_secret: vault_secret || SecureRandom.hex(24),
|
33
30
|
vault_iv: vault_iv || SecureRandom.hex(24),
|
31
|
+
initial_admin_code: SecureRandom.hex(16),
|
34
32
|
mongodb_uri: mongodb_uri
|
35
33
|
)
|
36
34
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kontena-plugin-upcloud
|
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-29 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
|
@@ -98,9 +98,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
98
98
|
version: '0'
|
99
99
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- - ! '
|
101
|
+
- - ! '>'
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version:
|
103
|
+
version: 1.3.1
|
104
104
|
requirements: []
|
105
105
|
rubyforge_project:
|
106
106
|
rubygems_version: 2.4.5
|