krates-plugin-digitalocean 0.3.10 → 0.3.11

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b5d71158875a5ca457d5b0829ee368ee8c148bbe1db9d2da1314ab45ad9d6a5d
4
- data.tar.gz: 573c6396ba2a156497a40684715bef2dd9e9bdb105f43368bcfa713c77a2062c
3
+ metadata.gz: 3713fb7f9b21c95e3ca11b558af4338f3971cdfc40d61713a0d0cfbe1bd79238
4
+ data.tar.gz: 32485fd0fc487047a21f3c3bef6f736dded2e845a193afed9a102f7c31432187
5
5
  SHA512:
6
- metadata.gz: 23f4b991201feb63189b122daf85c2de45f075f5f43187105c9a59552f98175e886686d1996da794c6e53ddeb8780bda35f9d68d7bbef71ead3bcf7e26e02f3e
7
- data.tar.gz: f2691df97fc77a15e4ce041e9a2a81387bc530c6052896ba17e8d3e886ff6bde67de0c3dc1bd4242b2aa4fadbf249b1a613b7378e43f41c5f0908245399aeff0
6
+ metadata.gz: ffacd8be8d5005f5bb3551b04b13c9e1012a02c8806201f0886db788450d262012cb9f07d2afb37a1421dd6d6be07522302e750b243973e7cb355a1bf3774f2b
7
+ data.tar.gz: 77bd990f7cdb54cc0944365b1cddeaf741a9f144e22dd0d58aeef8b2e6df9fbb8d8490962eb4d203993c8409176290eab4eaad8a487784a2bd1f163cf15ab172
data/Gemfile CHANGED
@@ -5,4 +5,9 @@ gemspec
5
5
 
6
6
  group :development do
7
7
  gem 'rspec'
8
+ gem 'pry'
9
+ gem 'pry-rescue'
10
+ gem 'pry-byebug'
11
+ gem 'pry-doc'
12
+ gem 'pry-stack_explorer'
8
13
  end
@@ -32,14 +32,14 @@ coreos:
32
32
  enable: true
33
33
  content: |
34
34
  [Unit]
35
- Description=Kontena etcd 2.0
35
+ Description=Krates etcd 2.0
36
36
  After=docker.service
37
37
  After=krates-worker.service
38
38
  Requires=docker.service
39
39
  [Service]
40
40
  Restart=always
41
41
  RestartSec=5
42
- ExecStart=/usr/bin/docker logs --tail=10 -f kontena-etcd
42
+ ExecStart=/usr/bin/docker logs --tail=10 -f krates-etcd
43
43
  - name: 50-docker.network
44
44
  mask: true
45
45
  - name: 50-docker-veth.network
@@ -14,7 +14,7 @@ write_files:
14
14
  owner: root
15
15
  content: | <% ssl_cert.split(/\n/).each do |row| %>
16
16
  <%= row %><% end %><% end %>
17
- - path: /opt/bin/kontena-haproxy.sh
17
+ - path: /opt/bin/krates-haproxy.sh
18
18
  permissions: 0755
19
19
  owner: root
20
20
  content: |
@@ -24,10 +24,10 @@ write_files:
24
24
  else
25
25
  SSL_CERT="**None**"
26
26
  fi
27
- /usr/bin/docker run --name=kontena-server-haproxy \
27
+ /usr/bin/docker run --name=krates-server-haproxy \
28
28
  --link kontena-server-api:kontena-server-api \
29
29
  -e SSL_CERT="$SSL_CERT" \
30
- -p 80:80 -p 443:443 kontena/haproxy:latest
30
+ -p 80:80 -p 443:443 krates/haproxy:latest
31
31
  coreos:
32
32
  units:
33
33
  <% unless mongodb_uri -%>
@@ -56,19 +56,19 @@ coreos:
56
56
  mongo:3.0 mongod --smallfiles
57
57
  ExecStop=/usr/bin/docker stop kontena-server-mongo
58
58
  <% end -%>
59
- - name: kontena-server-api.service
59
+ - name: krates-server-api.service
60
60
  command: start
61
61
  enable: true
62
62
  content: |
63
63
  [Unit]
64
- Description=kontena-server-api
64
+ Description=krates-server-api
65
65
  After=network-online.target
66
66
  After=docker.service
67
67
  After=kontena-server-mongo.service
68
- Description=Kontena Master
69
- Documentation=http://www.kontena.io/
70
- Before=kontena-server-haproxy.service
71
- Wants=kontena-server-haproxy.service
68
+ Description=Krates Master
69
+ Documentation=https://github.com/appstersio/krates/
70
+ Before=krates-server-haproxy.service
71
+ Wants=krates-server-haproxy.service
72
72
  Requires=network-online.target
73
73
  Requires=docker.service
74
74
  <% unless mongodb_uri -%>
@@ -82,7 +82,7 @@ coreos:
82
82
  EnvironmentFile=-/etc/kontena-server.custom.env
83
83
  ExecStartPre=-/usr/bin/docker stop kontena-server-api
84
84
  ExecStartPre=-/usr/bin/docker rm kontena-server-api
85
- ExecStartPre=-/usr/bin/docker pull kontena/server:${KONTENA_VERSION}
85
+ ExecStartPre=-/usr/bin/docker pull krates/master:${KONTENA_VERSION}
86
86
  ExecStart=/usr/bin/docker run --name kontena-server-api \
87
87
  <% if mongodb_uri -%>
88
88
  -e MONGODB_URI=<%= mongodb_uri %> \
@@ -97,30 +97,30 @@ coreos:
97
97
  -e INITIAL_ADMIN_CODE=<%= initial_admin_code %> \
98
98
  <% end -%>
99
99
  -e VAULT_KEY=${KONTENA_VAULT_KEY} -e VAULT_IV=${KONTENA_VAULT_IV} \
100
- kontena/server:${KONTENA_VERSION}
100
+ krates/master:${KONTENA_VERSION}
101
101
  ExecStop=/usr/bin/docker stop kontena-server-api
102
102
 
103
- - name: kontena-server-haproxy.service
103
+ - name: krates-server-haproxy.service
104
104
  command: start
105
105
  enable: true
106
106
  content: |
107
107
  [Unit]
108
- Description=kontena-server-haproxy
108
+ Description=krates-server-haproxy
109
109
  After=network-online.target
110
110
  After=docker.service
111
- Description=Kontena Server HAProxy
112
- Documentation=http://www.kontena.io/
111
+ Description=Krates Server HAProxy
112
+ Documentation=https://github.com/appstersio/krates-haproxy
113
113
  Requires=network-online.target
114
114
  Requires=docker.service
115
- Requires=kontena-server-api.service
115
+ Requires=krates-server-api.service
116
116
 
117
117
  [Service]
118
118
  Restart=always
119
119
  RestartSec=5
120
120
  EnvironmentFile=/etc/kontena-server.env
121
121
  EnvironmentFile=-/etc/kontena-server.custom.env
122
- ExecStartPre=-/usr/bin/docker stop kontena-server-haproxy
123
- ExecStartPre=-/usr/bin/docker rm kontena-server-haproxy
124
- ExecStartPre=-/usr/bin/docker pull kontena/haproxy:latest
125
- ExecStart=/opt/bin/kontena-haproxy.sh
126
- ExecStop=/usr/bin/docker stop kontena-server-haproxy
122
+ ExecStartPre=-/usr/bin/docker stop krates-server-haproxy
123
+ ExecStartPre=-/usr/bin/docker rm krates-server-haproxy
124
+ ExecStartPre=-/usr/bin/docker pull krates/haproxy:latest
125
+ ExecStart=/opt/bin/krates-haproxy.sh
126
+ ExecStop=/usr/bin/docker stop krates-server-haproxy
@@ -63,9 +63,7 @@ module Kontena
63
63
  sleep 0.5 until master_running?
64
64
  end
65
65
 
66
- puts
67
- puts "Kontena Master is now running at #{master_url}".colorize(:green)
68
- puts
66
+ show_summary(master_url)
69
67
 
70
68
  data = {
71
69
  name: name.sub('kontena-master-', ''),
@@ -91,7 +89,14 @@ module Kontena
91
89
  end
92
90
 
93
91
  def erb(template, vars)
94
- ERB.new(template, nil, '%<>-').result(OpenStruct.new(vars).instance_eval { binding })
92
+ # Trim mode has changed, here is how: https://redmine.ruby-lang.org/attachments/7457?utf8=✓&type=sbs
93
+ ERB.new(template, nil, '-').result(OpenStruct.new(vars).instance_eval { binding })
94
+ end
95
+
96
+ def show_summary(master_url)
97
+ puts
98
+ puts "Krates Master is now running at #{master_url}".colorize(:green)
99
+ puts
95
100
  end
96
101
  end
97
102
  end
@@ -2,7 +2,7 @@
2
2
  module Kontena
3
3
  module Plugin
4
4
  module DigitalOcean
5
- VERSION = "0.3.10"
5
+ VERSION = "0.3.11"
6
6
  end
7
7
  end
8
8
  end
@@ -1,112 +1,120 @@
1
- module Kontena::Plugin::DigitalOcean::Prompts
1
+ # Always use this form to avoid ordering/layering issues with Ruby interpeter
2
+ # eq. module is referenced before being declared/initialized.
3
+ module Kontena
4
+ module Plugin
5
+ module DigitalOcean
6
+ module Prompts
2
7
 
3
- # Until DO merges https://github.com/digitalocean/resource_kit/pull/32
4
- def suppress_warnings
5
- @original_verbosity = $VERBOSE
6
- $VERBOSE = nil
7
- end
8
+ # Until DO merges https://github.com/digitalocean/resource_kit/pull/32
9
+ def suppress_warnings
10
+ @original_verbosity = $VERBOSE
11
+ $VERBOSE = nil
12
+ end
8
13
 
9
- def resume_warnings
10
- $VERBOSE = @original_verbosity
11
- end
14
+ def resume_warnings
15
+ $VERBOSE = @original_verbosity
16
+ end
12
17
 
13
- def ask_ssh_key(do_token)
14
- manager = Kontena::Machine::DigitalOcean::SshKeyManager.new(do_token)
18
+ def ask_ssh_key(do_token)
19
+ manager = Kontena::Machine::DigitalOcean::SshKeyManager.new(do_token)
15
20
 
16
- if self.ssh_key
17
- public_key = File.read(self.ssh_key).strip
18
- else
19
- keys = manager.list
20
- key = :new
21
+ if self.ssh_key
22
+ public_key = File.read(self.ssh_key).strip
23
+ else
24
+ keys = manager.list
25
+ key = :new
21
26
 
22
- default_path = File.join(Dir.home, '.ssh', 'id_rsa.pub')
23
- default = File.exist?(default_path) ? File.read(default_path).strip : nil
27
+ default_path = File.join(Dir.home, '.ssh', 'id_rsa.pub')
28
+ default = File.exist?(default_path) ? File.read(default_path).strip : nil
24
29
 
25
- unless keys.empty?
26
- key = prompt.select("Choose SSH key:") do |menu|
27
- i = 1
28
- keys.each do |item|
29
- menu.choice "#{item.name} (#{item.fingerprint})" , item
30
- menu.default i if item.public_key == default
31
- i += 1
30
+ unless keys.empty?
31
+ key = prompt.select("Choose SSH key:") do |menu|
32
+ i = 1
33
+ keys.each do |item|
34
+ menu.choice "#{item.name} (#{item.fingerprint})" , item
35
+ menu.default i if item.public_key == default
36
+ i += 1
37
+ end
38
+ menu.choice "Create new SSH key", :new
39
+ end
40
+ end
41
+
42
+ if key == :new
43
+
44
+ public_key = prompt.ask('SSH public key: (enter an ssh key in OpenSSH format "ssh-xxx xxxxx key_name")', default: default) do |q|
45
+ q.validate /^ssh-rsa \S+ \S+$/
46
+ end
47
+ else
48
+ return key.id
49
+ end
32
50
  end
33
- menu.choice "Create new SSH key", :new
51
+ manager.find_or_create_by_public_key(public_key).id
34
52
  end
35
- end
36
-
37
- if key == :new
38
53
 
39
- public_key = prompt.ask('SSH public key: (enter an ssh key in OpenSSH format "ssh-xxx xxxxx key_name")', default: default) do |q|
40
- q.validate /^ssh-rsa \S+ \S+$/
54
+ def ask_do_token
55
+ if self.token.nil?
56
+ prompt.mask('DigitalOcean API token:')
57
+ else
58
+ self.token
59
+ end
41
60
  end
42
- else
43
- return key.id
44
- end
45
- end
46
- manager.find_or_create_by_public_key(public_key).id
47
- end
48
61
 
49
- def ask_do_token
50
- if self.token.nil?
51
- prompt.mask('DigitalOcean API token:')
52
- else
53
- self.token
54
- end
55
- end
62
+ def ask_droplet_region(do_token)
63
+ if self.region.nil?
64
+ prompt.select("Choose a datacenter region:") do |menu|
65
+ do_client = DropletKit::Client.new(access_token: do_token)
66
+ do_client.regions.all.sort_by{|r| r.slug }.each{ |region|
67
+ menu.choice region.name, region.slug
68
+ }
69
+ end
70
+ else
71
+ self.region
72
+ end
73
+ end
56
74
 
57
- def ask_droplet_region(do_token)
58
- if self.region.nil?
59
- prompt.select("Choose a datacenter region:") do |menu|
60
- do_client = DropletKit::Client.new(access_token: do_token)
61
- do_client.regions.all.sort_by{|r| r.slug }.each{ |region|
62
- menu.choice region.name, region.slug
63
- }
64
- end
65
- else
66
- self.region
67
- end
68
- end
75
+ def ask_droplet_size(do_token, do_region)
76
+ if self.size.nil?
77
+ prompt.select("Choose droplet size:") do |menu|
78
+ do_client = DropletKit::Client.new(access_token: do_token)
79
+ do_client.sizes.all.to_a.select{ |s| s.memory > 1000 }.sort_by{|s| s.memory }.each{ |size|
80
+ #p size
81
+ if size.regions.include?(do_region)
82
+ memory = size.memory.to_i / 1024
83
+ menu.choice "#{size.slug}: #{memory}GB/#{size.vcpus}CPU/#{size.disk}GB ($#{size.price_monthly.to_i}/mo)", size.slug
84
+ end
85
+ }
86
+ end
87
+ else
88
+ self.size
89
+ end
90
+ end
69
91
 
70
- def ask_droplet_size(do_token, do_region)
71
- if self.size.nil?
72
- prompt.select("Choose droplet size:") do |menu|
73
- do_client = DropletKit::Client.new(access_token: do_token)
74
- do_client.sizes.all.to_a.select{ |s| s.memory > 1000 }.sort_by{|s| s.memory }.each{ |size|
75
- #p size
76
- if size.regions.include?(do_region)
77
- memory = size.memory.to_i / 1024
78
- menu.choice "#{size.slug}: #{memory}GB/#{size.vcpus}CPU/#{size.disk}GB ($#{size.price_monthly.to_i}/mo)", size.slug
92
+ def ask_node(token)
93
+ if self.name.nil?
94
+ nodes = client(token).get("grids/#{current_grid}/nodes")
95
+ nodes = nodes['nodes'].select{ |n|
96
+ n['labels'] && n['labels'].include?('provider=digitalocean'.freeze)
97
+ }
98
+ raise "Did not find any nodes with label provider=digitalocean" if nodes.size == 0
99
+ prompt.select("Select node:") do |menu|
100
+ nodes.sort_by{|n| n['node_number'] }.reverse.each do |node|
101
+ initial = node['initial_member'] ? '(initial) ' : ''
102
+ menu.choice "#{node['name']} #{initial}", node['name']
103
+ end
104
+ end
105
+ else
106
+ self.name
79
107
  end
80
- }
81
- end
82
- else
83
- self.size
84
- end
85
- end
108
+ end
86
109
 
87
- def ask_node(token)
88
- if self.name.nil?
89
- nodes = client(token).get("grids/#{current_grid}/nodes")
90
- nodes = nodes['nodes'].select{ |n|
91
- n['labels'] && n['labels'].include?('provider=digitalocean'.freeze)
92
- }
93
- raise "Did not find any nodes with label provider=digitalocean" if nodes.size == 0
94
- prompt.select("Select node:") do |menu|
95
- nodes.sort_by{|n| n['node_number'] }.reverse.each do |node|
96
- initial = node['initial_member'] ? '(initial) ' : ''
97
- menu.choice "#{node['name']} #{initial}", node['name']
110
+ def ask_channel
111
+ prompt.select('Select Container Linux channel:') do |menu|
112
+ menu.choice 'Stable', 'stable'
113
+ menu.choice 'Beta', 'beta'
114
+ menu.choice 'Alpha', 'alpha'
115
+ end
98
116
  end
99
117
  end
100
- else
101
- self.name
102
- end
103
- end
104
-
105
- def ask_channel
106
- prompt.select('Select Container Linux channel:') do |menu|
107
- menu.choice 'Stable', 'stable'
108
- menu.choice 'Beta', 'beta'
109
- menu.choice 'Alpha', 'alpha'
110
118
  end
111
119
  end
112
120
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: krates-plugin-digitalocean
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.10
4
+ version: 0.3.11
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-01-10 00:00:00.000000000 Z
11
+ date: 2020-06-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: krates