orchestration 0.7.8 → 0.7.10
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/Gemfile.lock +1 -1
- data/README.md +8 -2
- data/lib/orchestration/docker_compose/app_service.rb +1 -1
- data/lib/orchestration/healthcheck.bash +16 -0
- data/lib/orchestration/install_generator.rb +15 -4
- data/lib/orchestration/make/orchestration.mk +4 -0
- data/lib/orchestration/terminal.rb +2 -1
- data/lib/orchestration/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aea7091859513085daaa652226e9e6e2eaad838f8cea0fc5e4f92baabf231d66
|
4
|
+
data.tar.gz: 01f656a8e0a4c94679ea1cede73a276345dd097254c8feee73ecf4d71c6ae0f8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aac8c41311328ee9285d9d3172baed798ca89a17a9311c16bd2dfd75ff2ee9631b4f8b464c208d0e607cd9c488641e8cce33fc6988204d5812b4ac1abd428861
|
7
|
+
data.tar.gz: 6c5bd17caaa053100b721f78fe93620aa8579e55c141b35a477ce162ed1929bb10a2e073d2f4b8ca6e5ca3ffe110d862bab3bfdce1b33f332431fdd3d5fbef98
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -31,13 +31,13 @@ Add _Orchestration_ to your `Gemfile`:
|
|
31
31
|
_Ruby 3.x_:
|
32
32
|
|
33
33
|
```ruby
|
34
|
-
gem 'orchestration', '~> 0.7.
|
34
|
+
gem 'orchestration', '~> 0.7.9'
|
35
35
|
```
|
36
36
|
|
37
37
|
_Ruby 2.x_:
|
38
38
|
|
39
39
|
```ruby
|
40
|
-
gem 'orchestration', '~> 0.6.
|
40
|
+
gem 'orchestration', '~> 0.6.12'
|
41
41
|
```
|
42
42
|
|
43
43
|
Install:
|
@@ -60,6 +60,12 @@ To rebuild all build-out at any time, pass `force=yes` to the above install comm
|
|
60
60
|
|
61
61
|
You will be prompted to enter values for your _Docker_ organisation and repository name. For example, the _organisation_ and _repository_ for https://hub.docker.com/r/rubyorchestration/sampleapp are `rubyorchestration` and `sampleapp` respectively. If you are unsure of these values, they can be modified later by editing `.orchestration.yml` in the root of your project directory.
|
62
62
|
|
63
|
+
Override these values from the command line by passing `project` and `organization` variables:
|
64
|
+
|
65
|
+
```bash
|
66
|
+
rake orchestration:install project=myapp organization=myorg
|
67
|
+
```
|
68
|
+
|
63
69
|
#### Configuration files
|
64
70
|
|
65
71
|
_Orchestration_ generates the following files where appropriate. Backups are created if a file is replaced.
|
@@ -30,7 +30,7 @@ module Orchestration
|
|
30
30
|
|
31
31
|
def healthcheck
|
32
32
|
{
|
33
|
-
'test' => ['
|
33
|
+
'test' => ['/app/orchestration/healthcheck'],
|
34
34
|
# Defaults according to
|
35
35
|
# https://docs.docker.com/engine/reference/builder/#healthcheck
|
36
36
|
# Except start_period which cannot be set to 0s
|
@@ -0,0 +1,16 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
url="${WEB_HEALTHCHECK_PROTOCOL:-http}://${WEB_HOST:-localhost}:${WEB_PORT:-8080}${WEB_HEALTHCHECK_PATH:-/healthcheck}"
|
4
|
+
curl_options="--max-time ${WEB_HEALTHCHECK_READ_TIMEOUT:-10} --connect-timeout ${WEB_HEALTHCHECK_OPEN_TIMEOUT:-10} --silent --output /dev/null --write-out %{http_code}"
|
5
|
+
status_code="$(curl ${curl_options} "${url}")"
|
6
|
+
|
7
|
+
echo "Status Code: ${status_code} (${url})"
|
8
|
+
|
9
|
+
if [[ "${WEB_HEALTHCHECK_SUCCESS_CODES:-200,201,202,204}" =~ (^|,)"${status_code}"(,|$) ]]
|
10
|
+
then
|
11
|
+
echo 'Healthcheck SUCCESS'
|
12
|
+
exit 0
|
13
|
+
else
|
14
|
+
echo 'Healthcheck FAILURE'
|
15
|
+
exit 1
|
16
|
+
fi
|
@@ -17,10 +17,8 @@ module Orchestration
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def orchestration_configuration
|
20
|
-
|
21
|
-
@
|
22
|
-
@terminal.ask_setting('docker.repository', @env.default_app_name)
|
23
|
-
relpath = relative_path(path)
|
20
|
+
configure_orchestration_settings
|
21
|
+
relpath = relative_path(@env.orchestration_configuration_path)
|
24
22
|
return @terminal.write(:create, relpath) unless @settings.exist? || force?
|
25
23
|
return @terminal.write(:update, relpath) if @settings.dirty?
|
26
24
|
|
@@ -155,6 +153,19 @@ module Orchestration
|
|
155
153
|
healthcheck: DockerCompose::AppService.healthcheck
|
156
154
|
)
|
157
155
|
end
|
156
|
+
|
157
|
+
def configure_orchestration_settings
|
158
|
+
@terminal.ask_setting(
|
159
|
+
'docker.organization',
|
160
|
+
override: ENV.fetch('organization', nil)
|
161
|
+
)
|
162
|
+
|
163
|
+
@terminal.ask_setting(
|
164
|
+
'docker.repository',
|
165
|
+
default: @env.default_app_name,
|
166
|
+
override: ENV.fetch('project', nil)
|
167
|
+
)
|
168
|
+
end
|
158
169
|
end
|
159
170
|
# rubocop:enable Metrics/ClassLength
|
160
171
|
end
|
@@ -449,6 +449,8 @@ build: _create-log-directory check-local-changes
|
|
449
449
|
@$(call echo,Preparing build context from ${cyan}${git_branch}${reset} (${cyan}${git_version}${reset})${reset})
|
450
450
|
@$(call system,git archive --format "tar" -o "${context}" "${git_branch}")
|
451
451
|
@mkdir -p ${orchestration_dir}/.build ${log} || ${exit_fail}
|
452
|
+
@cp '$(shell bundle info --path orchestration)/lib/orchestration/healthcheck.bash' '${orchestration_dir}/healthcheck'
|
453
|
+
@chmod +x '${orchestration_dir}/healthcheck'
|
452
454
|
ifndef dev
|
453
455
|
@git show ${git_branch}:./Gemfile > ${orchestration_dir}/.build/Gemfile 2>${stderr} || ${exit_fail}
|
454
456
|
@git show ${git_branch}:./Gemfile.lock > ${orchestration_dir}/.build/Gemfile.lock 2>${stderr} || ${exit_fail}
|
@@ -456,6 +458,8 @@ ifndef dev
|
|
456
458
|
else
|
457
459
|
@tar -cvf '${context}' . ${log} || ${exit_fail}
|
458
460
|
endif
|
461
|
+
@tar --append --file '${context}' '${orchestration_dir}/healthcheck'
|
462
|
+
@rm '${orchestration_dir}/healthcheck'
|
459
463
|
ifdef include
|
460
464
|
@$(call echo,Including files from: ${cyan}${include}${reset})
|
461
465
|
@(while read line; do \
|
@@ -39,8 +39,9 @@ module Orchestration
|
|
39
39
|
result
|
40
40
|
end
|
41
41
|
|
42
|
-
def ask_setting(setting, default
|
42
|
+
def ask_setting(setting, default: nil, override: nil)
|
43
43
|
return unless @settings.get(setting).nil?
|
44
|
+
return @settings.set(setting, override) unless override.nil?
|
44
45
|
|
45
46
|
write(:setup, t("settings.#{setting}.description"))
|
46
47
|
prompt = t("settings.#{setting}.prompt")
|
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.7.
|
4
|
+
version: 0.7.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bob Farrell
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-10-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: database_url
|
@@ -414,6 +414,7 @@ files:
|
|
414
414
|
- lib/orchestration/environment.rb
|
415
415
|
- lib/orchestration/errors.rb
|
416
416
|
- lib/orchestration/file_helpers.rb
|
417
|
+
- lib/orchestration/healthcheck.bash
|
417
418
|
- lib/orchestration/install_generator.rb
|
418
419
|
- lib/orchestration/make.rb
|
419
420
|
- lib/orchestration/make/orchestration.mk
|