orchestration 0.5.12 → 0.5.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +4 -1
- data/lib/orchestration/docker_compose/app_service.rb +7 -1
- data/lib/orchestration/docker_compose/configuration.rb +1 -1
- data/lib/orchestration/docker_compose/install_generator.rb +1 -1
- data/lib/orchestration/docker_compose/rabbitmq_service.rb +4 -2
- data/lib/orchestration/environment.rb +1 -1
- data/lib/orchestration/errors.rb +2 -0
- data/lib/orchestration/services/database/adapters/mysql2.rb +2 -2
- data/lib/orchestration/services/database/configuration.rb +1 -1
- data/lib/orchestration/services/rabbitmq.rb +1 -0
- data/lib/orchestration/templates/orchestration.mk.erb +0 -2
- data/lib/orchestration/templates/rabbitmq.yml.erb +5 -2
- data/lib/orchestration/version.rb +1 -1
- data/orchestration.gemspec +5 -3
- metadata +51 -23
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 037e3ae31fd0262ecde552e105f6313346a790cd8a0325d5162343352c9e972a
|
4
|
+
data.tar.gz: '057219101c53b9046d4b3d5e56c8ee8232aa12bcac73e33aa13e60bf5c831b22'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7e678adc9b3ec89927df730b2f18e6a32dd3da17c84c6dfb77926309523854b7abfa8d29422b00fce976ec269dc48285bded35c3995004d71cca56328d73223f
|
7
|
+
data.tar.gz: 4f25a1bbb55d3bda4df651045f9919de417e9c8eada7cbcd6b5c00ce77308db3793b019e2b1a102771c73c2c878c032c5ac0cb75d0f8de9b7d1de3da5fb59471
|
data/README.md
CHANGED
@@ -27,7 +27,7 @@ The below screenshot demonstrates _Orchestration_ being installed in a brand new
|
|
27
27
|
Add _Orchestration_ to your Gemfile:
|
28
28
|
|
29
29
|
```ruby
|
30
|
-
gem 'orchestration', '~> 0.5.
|
30
|
+
gem 'orchestration', '~> 0.5.13'
|
31
31
|
```
|
32
32
|
|
33
33
|
Install:
|
@@ -402,12 +402,15 @@ _Orchestration_ generates the following `config/rabbitmq.yml`:
|
|
402
402
|
```
|
403
403
|
development:
|
404
404
|
url: amqp://127.0.0.1:51070
|
405
|
+
management_url: http://127.0.0.1:5069
|
405
406
|
|
406
407
|
test:
|
407
408
|
url: amqp://127.0.0.1:51068
|
409
|
+
management_url: http://127.0.0.1:5067
|
408
410
|
|
409
411
|
production:
|
410
412
|
url: <%= ENV['RABBITMQ_URL'] %>
|
413
|
+
management_url: <%= ENV['RABBITMQ_MANAGEMENT_URL'] %>
|
411
414
|
```
|
412
415
|
|
413
416
|
Using this approach, the environment variable `RABBITMQ_URL` can be used to configure _Bunny_ in production (similar to `DATABASE_URL` and `MONGO_URL`).
|
@@ -100,7 +100,13 @@ module Orchestration
|
|
100
100
|
'WEB_PRELOAD_APP' => '1',
|
101
101
|
'WEB_HEALTHCHECK_PATH' => '/',
|
102
102
|
'DATABASE_URL' => database_url
|
103
|
-
}.merge(
|
103
|
+
}.merge(inherited_environment.map { |key| [key, nil] }.to_h).merge(rabbitmq_urls)
|
104
|
+
end
|
105
|
+
|
106
|
+
def rabbitmq_urls
|
107
|
+
return {} unless Services::RabbitMQ::Configuration.new(Environment.new).enabled?
|
108
|
+
|
109
|
+
{ 'RABBITMQ_URL' => 'amqp://rabbitmq:5672', 'RABBITMQ_MANAGEMENT_URL' => 'http://rabbitmq:15672' }
|
104
110
|
end
|
105
111
|
|
106
112
|
def database_url
|
@@ -13,15 +13,17 @@ module Orchestration
|
|
13
13
|
def definition
|
14
14
|
return nil unless @config.enabled?
|
15
15
|
|
16
|
-
{ 'image' => 'library/rabbitmq' }.merge(ports)
|
16
|
+
{ 'image' => 'library/rabbitmq:management' }.merge(ports)
|
17
17
|
end
|
18
18
|
|
19
19
|
def ports
|
20
20
|
return {} unless %i[development test].include?(@environment)
|
21
21
|
|
22
22
|
container_port = Orchestration::Services::RabbitMQ::PORT
|
23
|
+
management_port = Orchestration::Services::RabbitMQ::MANAGEMENT_PORT
|
23
24
|
|
24
|
-
{ 'ports' => ["#{sidecar_port(@environment)}#{container_port}"
|
25
|
+
{ 'ports' => ["#{sidecar_port(@environment)}#{container_port}",
|
26
|
+
"#{sidecar_port(@environment)}#{management_port}"] }
|
25
27
|
end
|
26
28
|
end
|
27
29
|
end
|
@@ -129,7 +129,7 @@ module Orchestration
|
|
129
129
|
def docker_filter(string)
|
130
130
|
# Filter out characters not accepted by Docker Hub
|
131
131
|
permitted = [('0'..'9'), ('a'..'z')].map(&:to_a).flatten
|
132
|
-
string.
|
132
|
+
string.chars.select { |char| permitted.include?(char) }.join
|
133
133
|
end
|
134
134
|
end
|
135
135
|
end
|
data/lib/orchestration/errors.rb
CHANGED
@@ -4,7 +4,9 @@ module Orchestration
|
|
4
4
|
class OrchestrationError < StandardError; end
|
5
5
|
|
6
6
|
class HTTPConnectionError < OrchestrationError; end
|
7
|
+
|
7
8
|
class DatabaseConfigurationError < OrchestrationError; end
|
9
|
+
|
8
10
|
class MongoConfigurationError < OrchestrationError; end
|
9
11
|
|
10
12
|
class UnknownEnvironmentError < DatabaseConfigurationError; end
|
@@ -10,7 +10,7 @@ module Orchestration
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def image
|
13
|
-
return
|
13
|
+
return mysql57 if gem_version < Gem::Version.new('0.4')
|
14
14
|
|
15
15
|
'library/mysql'
|
16
16
|
end
|
@@ -43,7 +43,7 @@ module Orchestration
|
|
43
43
|
|
44
44
|
private
|
45
45
|
|
46
|
-
def
|
46
|
+
def mysql57
|
47
47
|
'library/mysql:5.7'
|
48
48
|
end
|
49
49
|
|
@@ -15,7 +15,7 @@ module Orchestration
|
|
15
15
|
def friendly_config
|
16
16
|
return "[#{adapter.name}]" if sqlite?
|
17
17
|
|
18
|
-
"[#{adapter.name}] #{host}:#{port}"
|
18
|
+
"[#{adapter.name}] #{adapter.name}://#{username}:#{password}@#{host}:#{port}/#{database}"
|
19
19
|
end
|
20
20
|
|
21
21
|
def settings(healthcheck: false)
|
@@ -238,7 +238,6 @@ ifndef verbose
|
|
238
238
|
$(call hr,${red}) ; \
|
239
239
|
)
|
240
240
|
endif
|
241
|
-
ifneq (,$(findstring deploy,$(MAKECMDGOALS)))
|
242
241
|
@echo ; \
|
243
242
|
$(call hr,${yellow}) ; \
|
244
243
|
$(call println,'${gray}docker-compose logs${reset}') ; \
|
@@ -247,7 +246,6 @@ ifneq (,$(findstring deploy,$(MAKECMDGOALS)))
|
|
247
246
|
@${compose} logs
|
248
247
|
@echo ; \
|
249
248
|
$(call hr,${yellow})
|
250
|
-
endif
|
251
249
|
@$(NOOP)
|
252
250
|
|
253
251
|
.PHONY: image
|
@@ -1,12 +1,15 @@
|
|
1
1
|
<% if compose.call('development').services.key?('rabbitmq') %>
|
2
2
|
development:
|
3
|
-
url: <%= "#{'<' + '%' + '='} ENV.fetch('RABBITMQ_URL', 'amqp://127.0.0.1:#{compose.call('development').local_port('rabbitmq')}') #{'%' + '>'}" %>
|
3
|
+
url: <%= "#{'<' + '%' + '='} ENV.fetch('RABBITMQ_URL', 'amqp://127.0.0.1:#{compose.call('development').local_port('rabbitmq', 5672)}') #{'%' + '>'}" %>
|
4
|
+
management_url: <%= "#{'<' + '%' + '='} ENV.fetch('RABBITMQ_MANAGEMENT_URL', 'http://guest:guest@127.0.0.1:#{compose.call('development').local_port('rabbitmq', 15672)}') #{'%' + '>'}" %>
|
4
5
|
<% end %>
|
5
6
|
|
6
7
|
<% if compose.call('test').services.key?('rabbitmq') %>
|
7
8
|
test:
|
8
|
-
url: <%= "#{'<' + '%' + '='} ENV.fetch('RABBITMQ_URL', 'amqp://127.0.0.1:#{compose.call('test').local_port('rabbitmq')}') #{'%' + '>'}" %>
|
9
|
+
url: <%= "#{'<' + '%' + '='} ENV.fetch('RABBITMQ_URL', 'amqp://127.0.0.1:#{compose.call('test').local_port('rabbitmq', 5672)}') #{'%' + '>'}" %>
|
10
|
+
management_url: <%= "#{'<' + '%' + '='} ENV.fetch('RABBITMQ_MANAGEMENT_URL', 'http://guest:guest@127.0.0.1:#{compose.call('test').local_port('rabbitmq', 15672)}') #{'%' + '>'}" %>
|
9
11
|
<% end %>
|
10
12
|
|
11
13
|
production:
|
12
14
|
url: <%%= ENV['RABBITMQ_URL'] %>
|
15
|
+
url: <%%= ENV['RABBITMQ_MANAGEMENT_URL'] %>
|
data/orchestration.gemspec
CHANGED
@@ -33,9 +33,8 @@ Gem::Specification.new do |spec|
|
|
33
33
|
spec.add_runtime_dependency 'thor', '~> 1.0'
|
34
34
|
|
35
35
|
spec.add_development_dependency 'activerecord', '~> 6.0'
|
36
|
-
spec.add_development_dependency 'bundler', '~> 1.16'
|
37
36
|
spec.add_development_dependency 'bunny', '~> 2.12'
|
38
|
-
spec.add_development_dependency 'devpack', '~> 0.3.
|
37
|
+
spec.add_development_dependency 'devpack', '~> 0.3.2'
|
39
38
|
spec.add_development_dependency 'mongoid', '~> 7.0'
|
40
39
|
spec.add_development_dependency 'mysql2', '~> 0.5.2'
|
41
40
|
spec.add_development_dependency 'pg', '~> 1.1'
|
@@ -43,7 +42,10 @@ Gem::Specification.new do |spec|
|
|
43
42
|
spec.add_development_dependency 'rake', '~> 10.0'
|
44
43
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
45
44
|
spec.add_development_dependency 'rspec-its', '~> 1.2'
|
46
|
-
spec.add_development_dependency 'rubocop', '~>
|
45
|
+
spec.add_development_dependency 'rubocop', '~> 1.12'
|
46
|
+
spec.add_development_dependency 'rubocop-rails', '~> 2.9'
|
47
|
+
spec.add_development_dependency 'rubocop-rake', '~> 0.5.1'
|
48
|
+
spec.add_development_dependency 'rubocop-rspec', '~> 2.2'
|
47
49
|
spec.add_development_dependency 'sqlite3', '~> 1.3'
|
48
50
|
spec.add_development_dependency 'strong_versions', '~> 0.4.5'
|
49
51
|
spec.add_development_dependency 'webmock', '~> 3.4'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: orchestration
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bob Farrell
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-03-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: database_url
|
@@ -94,20 +94,6 @@ dependencies:
|
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '6.0'
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: bundler
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - "~>"
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: '1.16'
|
104
|
-
type: :development
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - "~>"
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: '1.16'
|
111
97
|
- !ruby/object:Gem::Dependency
|
112
98
|
name: bunny
|
113
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -128,14 +114,14 @@ dependencies:
|
|
128
114
|
requirements:
|
129
115
|
- - "~>"
|
130
116
|
- !ruby/object:Gem::Version
|
131
|
-
version: 0.3.
|
117
|
+
version: 0.3.2
|
132
118
|
type: :development
|
133
119
|
prerelease: false
|
134
120
|
version_requirements: !ruby/object:Gem::Requirement
|
135
121
|
requirements:
|
136
122
|
- - "~>"
|
137
123
|
- !ruby/object:Gem::Version
|
138
|
-
version: 0.3.
|
124
|
+
version: 0.3.2
|
139
125
|
- !ruby/object:Gem::Dependency
|
140
126
|
name: mongoid
|
141
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -240,14 +226,56 @@ dependencies:
|
|
240
226
|
requirements:
|
241
227
|
- - "~>"
|
242
228
|
- !ruby/object:Gem::Version
|
243
|
-
version:
|
229
|
+
version: '1.12'
|
230
|
+
type: :development
|
231
|
+
prerelease: false
|
232
|
+
version_requirements: !ruby/object:Gem::Requirement
|
233
|
+
requirements:
|
234
|
+
- - "~>"
|
235
|
+
- !ruby/object:Gem::Version
|
236
|
+
version: '1.12'
|
237
|
+
- !ruby/object:Gem::Dependency
|
238
|
+
name: rubocop-rails
|
239
|
+
requirement: !ruby/object:Gem::Requirement
|
240
|
+
requirements:
|
241
|
+
- - "~>"
|
242
|
+
- !ruby/object:Gem::Version
|
243
|
+
version: '2.9'
|
244
|
+
type: :development
|
245
|
+
prerelease: false
|
246
|
+
version_requirements: !ruby/object:Gem::Requirement
|
247
|
+
requirements:
|
248
|
+
- - "~>"
|
249
|
+
- !ruby/object:Gem::Version
|
250
|
+
version: '2.9'
|
251
|
+
- !ruby/object:Gem::Dependency
|
252
|
+
name: rubocop-rake
|
253
|
+
requirement: !ruby/object:Gem::Requirement
|
254
|
+
requirements:
|
255
|
+
- - "~>"
|
256
|
+
- !ruby/object:Gem::Version
|
257
|
+
version: 0.5.1
|
258
|
+
type: :development
|
259
|
+
prerelease: false
|
260
|
+
version_requirements: !ruby/object:Gem::Requirement
|
261
|
+
requirements:
|
262
|
+
- - "~>"
|
263
|
+
- !ruby/object:Gem::Version
|
264
|
+
version: 0.5.1
|
265
|
+
- !ruby/object:Gem::Dependency
|
266
|
+
name: rubocop-rspec
|
267
|
+
requirement: !ruby/object:Gem::Requirement
|
268
|
+
requirements:
|
269
|
+
- - "~>"
|
270
|
+
- !ruby/object:Gem::Version
|
271
|
+
version: '2.2'
|
244
272
|
type: :development
|
245
273
|
prerelease: false
|
246
274
|
version_requirements: !ruby/object:Gem::Requirement
|
247
275
|
requirements:
|
248
276
|
- - "~>"
|
249
277
|
- !ruby/object:Gem::Version
|
250
|
-
version:
|
278
|
+
version: '2.2'
|
251
279
|
- !ruby/object:Gem::Dependency
|
252
280
|
name: sqlite3
|
253
281
|
requirement: !ruby/object:Gem::Requirement
|
@@ -371,7 +399,7 @@ files:
|
|
371
399
|
homepage: https://github.com/bobf/orchestration
|
372
400
|
licenses: []
|
373
401
|
metadata: {}
|
374
|
-
post_install_message:
|
402
|
+
post_install_message:
|
375
403
|
rdoc_options: []
|
376
404
|
require_paths:
|
377
405
|
- lib
|
@@ -387,7 +415,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
387
415
|
version: '0'
|
388
416
|
requirements: []
|
389
417
|
rubygems_version: 3.0.3
|
390
|
-
signing_key:
|
418
|
+
signing_key:
|
391
419
|
specification_version: 4
|
392
420
|
summary: Docker orchestration toolkit
|
393
421
|
test_files: []
|