picsolve_docker_builder 0.3.0 → 0.3.1
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/CHANGELOG.md +4 -0
- data/Guardfile +16 -0
- data/lib/picsolve_docker_builder/composer/composer.rb +2 -2
- data/lib/picsolve_docker_builder/composer/container.rb +29 -2
- data/lib/picsolve_docker_builder/helpers/kubernetes/rc.rb +5 -0
- data/lib/picsolve_docker_builder/version.rb +1 -1
- data/picsolve_docker_builder.gemspec +1 -0
- metadata +17 -3
- data/lib/picsolve_docker_builder/composer/image.rb +0 -70
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8b29a00fbb04c5a8b3269567ad9a640d5f07bda1
|
4
|
+
data.tar.gz: b65052cb5bee9b9e80298d18c264412789704bc4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 83473b874548ae15dcb027c705f7198565d87b750251a10eb709a12bd4e3fe5f5a3a8f84e0f2c6e42945b4fe541ea52a838daf3301c2ff54778695f542c3b807
|
7
|
+
data.tar.gz: 8aa15a239796fcedf0e8b9ca3e67a6b68d581a4a905b47d91a4a2873375572edd9f76fa60836db0046e4828f1941b24e58e9430f63e70747860a2d1415b307d1
|
data/CHANGELOG.md
CHANGED
data/Guardfile
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
guard :rspec, cmd: 'bundle exec rspec' do
|
2
|
+
require 'guard/rspec/dsl'
|
3
|
+
dsl = Guard::RSpec::Dsl.new(self)
|
4
|
+
|
5
|
+
# Feel free to open issues for suggestions and improvements
|
6
|
+
|
7
|
+
# RSpec files
|
8
|
+
rspec = dsl.rspec
|
9
|
+
watch(rspec.spec_helper) { rspec.spec_dir }
|
10
|
+
watch(rspec.spec_support) { rspec.spec_dir }
|
11
|
+
watch(rspec.spec_files)
|
12
|
+
|
13
|
+
# Ruby files
|
14
|
+
ruby = dsl.ruby
|
15
|
+
dsl.watch_spec_files_for(ruby.lib_files)
|
16
|
+
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'picsolve_docker_builder/base'
|
2
2
|
require 'picsolve_docker_builder/helpers/kubernetes_manager'
|
3
3
|
require 'picsolve_docker_builder/helpers/config_manager'
|
4
|
-
require 'picsolve_docker_builder/composer/
|
4
|
+
require 'picsolve_docker_builder/composer/container'
|
5
5
|
require 'excon'
|
6
6
|
require 'psych'
|
7
7
|
require 'securerandom'
|
@@ -79,7 +79,7 @@ module PicsolveDockerBuilder
|
|
79
79
|
unless containers.nil?
|
80
80
|
i = []
|
81
81
|
containers.each do |name, config|
|
82
|
-
i <<
|
82
|
+
i << Container.new(name, config, self)
|
83
83
|
end
|
84
84
|
return i
|
85
85
|
end
|
@@ -13,7 +13,6 @@ module PicsolveDockerBuilder
|
|
13
13
|
@config = config
|
14
14
|
@name = name
|
15
15
|
@composer = composer
|
16
|
-
log.info "repo_tag_uniqe is #{repo_tag_unique}"
|
17
16
|
end
|
18
17
|
|
19
18
|
def repo_tag
|
@@ -70,8 +69,14 @@ module PicsolveDockerBuilder
|
|
70
69
|
|
71
70
|
def ports
|
72
71
|
config['ports'].map do |port|
|
72
|
+
if port.is_a? String
|
73
|
+
port_split = port.split(/:/)
|
74
|
+
container_port = port_split[1]
|
75
|
+
else
|
76
|
+
container_port = port['container_port']
|
77
|
+
end
|
73
78
|
{
|
74
|
-
'port' =>
|
79
|
+
'port' => container_port.to_i
|
75
80
|
}
|
76
81
|
end
|
77
82
|
rescue StandardError
|
@@ -88,6 +93,28 @@ module PicsolveDockerBuilder
|
|
88
93
|
p
|
89
94
|
end
|
90
95
|
|
96
|
+
def liveness_probe
|
97
|
+
# get port with health check
|
98
|
+
port = nil
|
99
|
+
config['ports'].each do |p|
|
100
|
+
next unless p['health_check'] == 'http'
|
101
|
+
port = p
|
102
|
+
break
|
103
|
+
end
|
104
|
+
|
105
|
+
# no health check
|
106
|
+
return nil if port.nil?
|
107
|
+
|
108
|
+
{
|
109
|
+
'httpGet' => {
|
110
|
+
'path' => '/healthcheck',
|
111
|
+
'port' => port['container_port']
|
112
|
+
},
|
113
|
+
'initialDelaySeconds' => 20,
|
114
|
+
'timeoutSeconds' => 1
|
115
|
+
}
|
116
|
+
end
|
117
|
+
|
91
118
|
def repo_tag_hash_unique
|
92
119
|
@repo_tag_hash_unique ||= Registry.repo_tag_unique(config['image'])
|
93
120
|
end
|
@@ -51,6 +51,11 @@ module PicsolveDockerBuilder
|
|
51
51
|
env = @image.environment(@kubernetes)
|
52
52
|
c['env'] = env unless env.nil?
|
53
53
|
end
|
54
|
+
|
55
|
+
# append liveness probe if required
|
56
|
+
liveness_probe = @image.liveness_probe
|
57
|
+
c['livenessProbe'] = liveness_probe unless liveness_probe.nil?
|
58
|
+
|
54
59
|
[c]
|
55
60
|
end
|
56
61
|
|
@@ -28,6 +28,7 @@ Gem::Specification.new do |spec|
|
|
28
28
|
spec.add_development_dependency 'rubocop-checkstyle_formatter'
|
29
29
|
spec.add_development_dependency 'simplecov'
|
30
30
|
spec.add_development_dependency 'simplecov-cobertura'
|
31
|
+
spec.add_development_dependency 'guard-rspec'
|
31
32
|
spec.add_dependency 'rake', '~> 10.0'
|
32
33
|
spec.add_dependency 'kubeclient', '~> 0.5.1'
|
33
34
|
spec.add_dependency 'docker-api'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: picsolve_docker_builder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Christian Simon
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-12-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -108,6 +108,20 @@ dependencies:
|
|
108
108
|
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: guard-rspec
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
111
125
|
- !ruby/object:Gem::Dependency
|
112
126
|
name: rake
|
113
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -192,6 +206,7 @@ files:
|
|
192
206
|
- ".travis.yml"
|
193
207
|
- CHANGELOG.md
|
194
208
|
- Gemfile
|
209
|
+
- Guardfile
|
195
210
|
- README.md
|
196
211
|
- Rakefile
|
197
212
|
- bin/docker_build
|
@@ -244,7 +259,6 @@ files:
|
|
244
259
|
- lib/picsolve_docker_builder/builder/file.rb
|
245
260
|
- lib/picsolve_docker_builder/composer/composer.rb
|
246
261
|
- lib/picsolve_docker_builder/composer/container.rb
|
247
|
-
- lib/picsolve_docker_builder/composer/image.rb
|
248
262
|
- lib/picsolve_docker_builder/composer/registry.rb
|
249
263
|
- lib/picsolve_docker_builder/composer/requirements.rb
|
250
264
|
- lib/picsolve_docker_builder/composer/requirements/base.rb
|
@@ -1,70 +0,0 @@
|
|
1
|
-
require 'picsolve_docker_builder/base'
|
2
|
-
require 'picsolve_docker_builder/composer/registry'
|
3
|
-
|
4
|
-
module PicsolveDockerBuilder
|
5
|
-
module Composer
|
6
|
-
# Represents an image in the registry
|
7
|
-
class Image
|
8
|
-
include PicsolveDockerBuilder::Base
|
9
|
-
attr_reader :config, :name, :composer
|
10
|
-
def initialize(name, config, composer)
|
11
|
-
log.info "Image name=#{name} config=#{config}"
|
12
|
-
@config = config
|
13
|
-
@name = name
|
14
|
-
@composer = composer
|
15
|
-
log.info "repo_tag_uniqe is #{repo_tag_unique}"
|
16
|
-
end
|
17
|
-
|
18
|
-
def repo_tag
|
19
|
-
config['image']
|
20
|
-
end
|
21
|
-
|
22
|
-
def rc(kubernetes)
|
23
|
-
@rcs = {} if @rcs.nil?
|
24
|
-
@rcs[kubernetes] = kubernetes.rc(self) \
|
25
|
-
unless @rcs.key?(kubernetes)
|
26
|
-
@rcs[kubernetes]
|
27
|
-
end
|
28
|
-
|
29
|
-
def service(kubernetes)
|
30
|
-
@services = {} if @rcs.nil?
|
31
|
-
@services[kubernetes] = kubernetes.service(self) \
|
32
|
-
unless @services.key?(kubernetes)
|
33
|
-
@services[kubernetes]
|
34
|
-
end
|
35
|
-
|
36
|
-
def ports
|
37
|
-
config['ports'].map do |port|
|
38
|
-
port_split = port.split(/:/)
|
39
|
-
{
|
40
|
-
'port' => port_split[1].to_i
|
41
|
-
}
|
42
|
-
end
|
43
|
-
rescue StandardError
|
44
|
-
[]
|
45
|
-
end
|
46
|
-
|
47
|
-
def ports_rc
|
48
|
-
p = []
|
49
|
-
ports.each do |port|
|
50
|
-
p << {
|
51
|
-
'containerPort' => port['port']
|
52
|
-
}
|
53
|
-
end
|
54
|
-
p
|
55
|
-
end
|
56
|
-
|
57
|
-
def repo_tag_hash_unique
|
58
|
-
@repo_tag_hash_unique ||= Registry.repo_tag_unique(config['image'])
|
59
|
-
end
|
60
|
-
|
61
|
-
def repo_tag_unique
|
62
|
-
repo_tag_hash_unique[:tag_unique]
|
63
|
-
end
|
64
|
-
|
65
|
-
def hash
|
66
|
-
repo_tag_hash_unique[:hash]
|
67
|
-
end
|
68
|
-
end
|
69
|
-
end
|
70
|
-
end
|