krates-plugin-digitalocean 0.3.10 → 0.3.11

Sign up to get free protection for your applications and to get access to all the features.
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