dokkaacfg 0.0.1 → 0.0.2
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 +4 -4
- data/.gitignore +1 -0
- data/.travis.yml +6 -0
- data/lib/dokkaacfg/digitalocean.rb +3 -4
- data/lib/dokkaacfg/version.rb +1 -1
- data/spec/lib/dokkaacfg/digitalocean_spec.rb +47 -0
- data/spec/lib/dokkaacfg/provider_spec.rb +25 -0
- data/spec/spec_helper.rb +7 -0
- data/user-data +6 -6
- metadata +9 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 05563bd67c50b029acc101973766c2f0190f09c8
|
4
|
+
data.tar.gz: 6a3f66f2ff364dc76ebb7800f9cec752b7116d57
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a1d359f0d7be93ccefd17b3188626609e61c007435e10c6fcda49c459809ce758f91327297b1b5ce282c697e6a2bfd32fd8e12e2d3b5a52cf3caba2b2be049a7
|
7
|
+
data.tar.gz: d84cf000121487a7611dc719699e9bc3b30256b8b8806abd1a1fc0d49317c350fcc49f7b0745390e24ed297c934b5de4e0aa54d558313a6bb65ac8777ca1f87c
|
data/.gitignore
CHANGED
data/.travis.yml
ADDED
@@ -13,7 +13,8 @@ module DokkaaCfg
|
|
13
13
|
@client = Barge::Client.new(access_token: access_token)
|
14
14
|
end
|
15
15
|
|
16
|
-
def up(args,
|
16
|
+
def up(args, options_={})
|
17
|
+
options = options_.clone
|
17
18
|
options[:scale] ||= 1
|
18
19
|
options[:region] ||= 'sfo1'
|
19
20
|
options[:slug] ||= '512mb'
|
@@ -42,7 +43,7 @@ module DokkaaCfg
|
|
42
43
|
def scale(args, options=nil)
|
43
44
|
end
|
44
45
|
|
45
|
-
def down(args, options=
|
46
|
+
def down(args, options={})
|
46
47
|
droplets = @client.droplet.all["droplets"]
|
47
48
|
r = droplet_regexp
|
48
49
|
droplets.each do |d|
|
@@ -53,8 +54,6 @@ module DokkaaCfg
|
|
53
54
|
end
|
54
55
|
|
55
56
|
private
|
56
|
-
def coreos_user_data
|
57
|
-
end
|
58
57
|
def droplet_regexp
|
59
58
|
Regexp.new("^#{DROPLET_NAME_PREFIX}")
|
60
59
|
end
|
data/lib/dokkaacfg/version.rb
CHANGED
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'dokkaacfg/digitalocean'
|
2
|
+
require 'ostruct'
|
3
|
+
|
4
|
+
module DokkaaCfg
|
5
|
+
describe DigitalOcean do
|
6
|
+
let(:dio) { DigitalOcean.new("abcdefg") }
|
7
|
+
describe "#up" do
|
8
|
+
let(:ssh_key) { "k2nr" }
|
9
|
+
before do
|
10
|
+
@client = dio.instance_variable_get(:@client)
|
11
|
+
allow(@client).to receive_message_chain(:key, :all)
|
12
|
+
.and_return({"ssh_keys" => [OpenStruct.new(name: ssh_key, id: "id")]})
|
13
|
+
allow(UserData).to receive(:make_user_data).and_return("user data")
|
14
|
+
end
|
15
|
+
|
16
|
+
it do
|
17
|
+
expect(@client).to receive_message_chain(:droplet, :create).with({
|
18
|
+
name: 'dokkaa-1',
|
19
|
+
region: 'sfo1',
|
20
|
+
size: '512mb',
|
21
|
+
image: 'coreos-alpha',
|
22
|
+
ssh_keys: ["id"],
|
23
|
+
private_networking: true,
|
24
|
+
user_data: 'user data'
|
25
|
+
})
|
26
|
+
dio.up([], {ssh_key: ssh_key})
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
describe "#down" do
|
31
|
+
before do
|
32
|
+
prefix = DigitalOcean::DROPLET_NAME_PREFIX
|
33
|
+
@client = dio.instance_variable_get(:@client)
|
34
|
+
allow(@client).to receive_message_chain(:droplet, :all)
|
35
|
+
.and_return({"droplets" => [OpenStruct.new(id: "id1",
|
36
|
+
name: "#{prefix}name1"),
|
37
|
+
OpenStruct.new(id: "id2",
|
38
|
+
name: "name2")]})
|
39
|
+
end
|
40
|
+
|
41
|
+
it do
|
42
|
+
expect(@client).to receive_message_chain(:droplet, :destroy).with("id1")
|
43
|
+
dio.down([])
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'dokkaacfg/provider'
|
2
|
+
|
3
|
+
module DokkaaCfg
|
4
|
+
class Dummy < Provider
|
5
|
+
def up; end
|
6
|
+
def down; end
|
7
|
+
end
|
8
|
+
|
9
|
+
describe Provider do
|
10
|
+
let(:prov){ Dummy.new }
|
11
|
+
|
12
|
+
describe "#execute" do
|
13
|
+
it "call real methods if the provider has" do
|
14
|
+
expect(prov).to receive(:up).once
|
15
|
+
prov.execute("up", [], {})
|
16
|
+
expect(prov).to receive(:down).once
|
17
|
+
prov.execute("down", [], {})
|
18
|
+
end
|
19
|
+
|
20
|
+
it "do nothing if real method does not exist" do
|
21
|
+
expect{prov.execute("aaa", [], {})}.to_not raise_error
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
data/spec/spec_helper.rb
ADDED
data/user-data
CHANGED
@@ -43,7 +43,7 @@ coreos:
|
|
43
43
|
|
44
44
|
[Service]
|
45
45
|
ExecStartPre=/usr/bin/docker pull k2nr/dokkaa-conductor
|
46
|
-
ExecStart=/usr/bin/docker run --name
|
46
|
+
ExecStart=/usr/bin/docker run --name __conductor \
|
47
47
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
48
48
|
-e HOST_IP=$public_ipv4 \
|
49
49
|
-e DOCKER_HOST=unix:///var/run/docker.sock \
|
@@ -51,7 +51,7 @@ coreos:
|
|
51
51
|
--restart=always \
|
52
52
|
k2nr/dokkaa-conductor
|
53
53
|
TimeoutStartSec=30m
|
54
|
-
ExecStop=/usr/bin/docker rm -f
|
54
|
+
ExecStop=/usr/bin/docker rm -f __conductor
|
55
55
|
- name: dokkaa-ambassador.service
|
56
56
|
command: start
|
57
57
|
enable: true
|
@@ -63,14 +63,14 @@ coreos:
|
|
63
63
|
|
64
64
|
[Service]
|
65
65
|
ExecStartPre=/usr/bin/docker pull k2nr/dokkaa-ambassador
|
66
|
-
ExecStart=/usr/bin/docker run --name
|
66
|
+
ExecStart=/usr/bin/docker run --name __ambassador \
|
67
67
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
68
68
|
-e DOCKER_HOST=unix:///var/run/docker.sock \
|
69
69
|
--dns=$public_ipv4 \
|
70
70
|
--restart=always \
|
71
71
|
k2nr/dokkaa-ambassador
|
72
72
|
TimeoutStartSec=30m
|
73
|
-
ExecStop=/usr/bin/docker rm -f
|
73
|
+
ExecStop=/usr/bin/docker rm -f __ambassador
|
74
74
|
- name: skydns.service
|
75
75
|
command: start
|
76
76
|
enable: true
|
@@ -82,11 +82,11 @@ coreos:
|
|
82
82
|
|
83
83
|
[Service]
|
84
84
|
ExecStartPre=/usr/bin/docker pull k2nr/skydns-docker
|
85
|
-
ExecStart=/usr/bin/docker run --name
|
85
|
+
ExecStart=/usr/bin/docker run --name __skydns \
|
86
86
|
-e ETCD_MACHINES=http://$public_ipv4:4001 \
|
87
87
|
-e SKYDNS_ADDR=0.0.0.0:53 \
|
88
88
|
-e SKYDNS_NAMESERVERS=8.8.8.8:53,8.8.4.4:53 \
|
89
89
|
-p $public_ipv4:53:53/udp \
|
90
90
|
k2nr/skydns-docker
|
91
91
|
TimeoutStartSec=30m
|
92
|
-
ExecStop=/usr/bin/docker rm -f
|
92
|
+
ExecStop=/usr/bin/docker rm -f __skydns
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dokkaacfg
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kazunori Kajihiro
|
@@ -75,6 +75,7 @@ extensions: []
|
|
75
75
|
extra_rdoc_files: []
|
76
76
|
files:
|
77
77
|
- ".gitignore"
|
78
|
+
- ".travis.yml"
|
78
79
|
- Gemfile
|
79
80
|
- Gemfile.lock
|
80
81
|
- Vagrantfile
|
@@ -86,6 +87,9 @@ files:
|
|
86
87
|
- lib/dokkaacfg/provider.rb
|
87
88
|
- lib/dokkaacfg/user_data.rb
|
88
89
|
- lib/dokkaacfg/version.rb
|
90
|
+
- spec/lib/dokkaacfg/digitalocean_spec.rb
|
91
|
+
- spec/lib/dokkaacfg/provider_spec.rb
|
92
|
+
- spec/spec_helper.rb
|
89
93
|
- user-data
|
90
94
|
homepage: https://github.com/k2nr/dokkaacfg
|
91
95
|
licenses:
|
@@ -111,4 +115,7 @@ rubygems_version: 2.2.2
|
|
111
115
|
signing_key:
|
112
116
|
specification_version: 4
|
113
117
|
summary: Configuration management for Dokkaa cluster
|
114
|
-
test_files:
|
118
|
+
test_files:
|
119
|
+
- spec/lib/dokkaacfg/digitalocean_spec.rb
|
120
|
+
- spec/lib/dokkaacfg/provider_spec.rb
|
121
|
+
- spec/spec_helper.rb
|