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 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