picsolve_docker_builder 0.3.0 → 0.3.1

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
  SHA1:
3
- metadata.gz: 0d987f527c105ef90502bd0201ecb24ada6573e4
4
- data.tar.gz: 6cacbe31a88fae3264b790e014f7c2ab40528e50
3
+ metadata.gz: 8b29a00fbb04c5a8b3269567ad9a640d5f07bda1
4
+ data.tar.gz: b65052cb5bee9b9e80298d18c264412789704bc4
5
5
  SHA512:
6
- metadata.gz: 95452c0a4140df6b0e8e4d4af1f12e2ea533affad313e437c8e2768d4841d007f05ffaf20210512ba3b9f7906c4359530052d159ca36e6f3c1feba8f4a0325ec
7
- data.tar.gz: 3ff8233cf0152f8078d398b6665caebecc5fb1029abd358f822dfe38d456c925112b559234c30982bc7d1fa3e66d443a4bed66b2d236d3480cad620b23ababd6
6
+ metadata.gz: 83473b874548ae15dcb027c705f7198565d87b750251a10eb709a12bd4e3fe5f5a3a8f84e0f2c6e42945b4fe541ea52a838daf3301c2ff54778695f542c3b807
7
+ data.tar.gz: 8aa15a239796fcedf0e8b9ca3e67a6b68d581a4a905b47d91a4a2873375572edd9f76fa60836db0046e4828f1941b24e58e9430f63e70747860a2d1415b307d1
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Change Log
2
2
 
3
+ ## [0.3.1] - 2015-12-09
4
+ ### Added
5
+ - Support deployment of healthchecks
6
+
3
7
  ## [0.3.0] - 2015-11-13
4
8
  ### Added
5
9
 
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/image'
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 << Image.new(name, config, self)
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' => port['container_port'].to_i
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
 
@@ -1,4 +1,4 @@
1
1
  # version
2
2
  module PicsolveDockerBuilder
3
- VERSION = '0.3.0'
3
+ VERSION = '0.3.1'
4
4
  end
@@ -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.0
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-13 00:00:00.000000000 Z
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