capistrano-nomad 0.5.1 → 0.6.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +28 -3
- data/capistrano-nomad.gemspec +1 -1
- data/lib/capistrano/nomad/helpers/docker.rb +1 -1
- data/lib/capistrano/nomad/helpers/nomad.rb +9 -5
- data/lib/capistrano/nomad.rb +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fd8143ad35ea4f16a890256e65a5a73fab979acd0e63fa5471e8c75248c5fad8
|
4
|
+
data.tar.gz: cdf8f7552d3512ea4968208690ec537040915e42a59b51aef4bd8c85c81e95a1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 52b3e33004964a0ea317bcd55478d02aa2088ded9c7df715be7119028588b9c3f848e63fd4fa8a85f3345c9e5203579428a71b79c3debfe16e5028b37183d477
|
7
|
+
data.tar.gz: f972389f3c4411a75162961f0545605ab87c92d6a81d4192db78e457bd320c8a87bccdcf3a61bb9f9e556c6f64d4b99cb3347752113951612edeb89b3fb9d2e4
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -31,14 +31,39 @@ require "capistrano/nomad"
|
|
31
31
|
install_plugin Capistrano::Nomad
|
32
32
|
```
|
33
33
|
|
34
|
-
|
34
|
+
Within `deploy.rb`
|
35
35
|
|
36
36
|
```ruby
|
37
|
-
|
38
|
-
|
37
|
+
set :nomad_jobs_path, "nomad/jobs"
|
38
|
+
set :nomad_var_files_path, "nomad/vars"
|
39
|
+
|
40
|
+
# Accessible in all .erb files
|
41
|
+
set :nomad_erb_vars, (lambda do
|
42
|
+
{
|
43
|
+
env_name: fetch(:stage).to_sym,
|
44
|
+
domain: fetch(:domain),
|
45
|
+
foo: "bar,"
|
46
|
+
}
|
47
|
+
end)
|
48
|
+
|
49
|
+
# Docker image types
|
50
|
+
nomad_docker_image_type :backend,
|
51
|
+
path: "local/path/backend",
|
52
|
+
alias: ->(image_type:) { "gcr.io/axsuul/#{image_type}" },
|
53
|
+
target: "release",
|
54
|
+
build_args: { foo: "bar" }
|
55
|
+
nomad_docker_image_type :redis,
|
56
|
+
path: "/absolute/path/redis",
|
57
|
+
alias: "gcr.io/axsuul/redis"
|
58
|
+
|
59
|
+
# Jobs
|
60
|
+
nomad_job :frontend
|
61
|
+
nomad_job :backend, docker_image_types: [:backend], var_files: [:rails]
|
62
|
+
nomad_job :redis, docker_image_types: [:redis]
|
39
63
|
|
40
64
|
nomad_namespace :analytics do
|
41
65
|
nomad_job :grafana
|
66
|
+
nomad_job :"node-exporter"
|
42
67
|
end
|
43
68
|
```
|
44
69
|
|
data/capistrano-nomad.gemspec
CHANGED
@@ -101,7 +101,7 @@ def capistrano_nomad_build_docker_image_for_type(image_type)
|
|
101
101
|
image_alias_args << "--tag #{tag}"
|
102
102
|
end
|
103
103
|
|
104
|
-
execute("docker build #{image_alias_args.join(' ')}
|
104
|
+
execute("docker build #{image_alias_args.join(' ')} #{capistrano_nomad_root.join(attributes[:path])}")
|
105
105
|
end
|
106
106
|
end
|
107
107
|
|
@@ -35,6 +35,10 @@ class CapistranoNomadErbNamespace
|
|
35
35
|
# rubocop:enable Style/MissingRespondToMissing
|
36
36
|
end
|
37
37
|
|
38
|
+
def capistrano_nomad_ensure_absolute_path(path)
|
39
|
+
path[0] == "/" ? path : "/#{path}"
|
40
|
+
end
|
41
|
+
|
38
42
|
def capistrano_nomad_build_file_path(parent_path, basename, namespace: nil)
|
39
43
|
segments = [parent_path]
|
40
44
|
segments << namespace if namespace
|
@@ -51,11 +55,11 @@ def capistrano_nomad_build_base_var_file_path(*args)
|
|
51
55
|
capistrano_nomad_build_file_path(fetch(:nomad_var_files_path), *args)
|
52
56
|
end
|
53
57
|
|
54
|
-
def capistrano_nomad_build_local_path(path
|
55
|
-
local_path =
|
58
|
+
def capistrano_nomad_build_local_path(path)
|
59
|
+
local_path = capistrano_nomad_root.join(path)
|
56
60
|
|
57
61
|
# Determine if it has .erb appended or not
|
58
|
-
found_local_path = [local_path, "#{local_path}.erb"].find { |
|
62
|
+
found_local_path = [local_path, "#{local_path}.erb"].find { |each_local_path| File.exist?(each_local_path) }
|
59
63
|
|
60
64
|
raise StandardError, "Could not find local path: #{path}" unless found_local_path
|
61
65
|
|
@@ -71,11 +75,11 @@ def capistrano_nomad_build_local_var_file_path(name, *args)
|
|
71
75
|
end
|
72
76
|
|
73
77
|
def capistrano_nomad_build_release_job_path(*args)
|
74
|
-
"#{release_path}#{capistrano_nomad_build_base_job_path(*args)}"
|
78
|
+
"#{release_path}#{capistrano_nomad_ensure_absolute_path(capistrano_nomad_build_base_job_path(*args))}"
|
75
79
|
end
|
76
80
|
|
77
81
|
def capistrano_nomad_build_release_var_file_path(*args)
|
78
|
-
"#{release_path}#{capistrano_nomad_build_base_var_file_path(*args)}"
|
82
|
+
"#{release_path}#{capistrano_nomad_ensure_absolute_path(capistrano_nomad_build_base_var_file_path(*args))}"
|
79
83
|
end
|
80
84
|
|
81
85
|
def capistrano_nomad_run_nomad_command(kind, *args)
|
data/lib/capistrano/nomad.rb
CHANGED
@@ -9,8 +9,8 @@ require_relative "nomad/helpers/nomad"
|
|
9
9
|
module Capistrano
|
10
10
|
class Nomad < Capistrano::Plugin
|
11
11
|
def set_defaults
|
12
|
-
set_if_empty(:nomad_jobs_path, "
|
13
|
-
set_if_empty(:nomad_var_files_path, "
|
12
|
+
set_if_empty(:nomad_jobs_path, "nomad/jobs")
|
13
|
+
set_if_empty(:nomad_var_files_path, "nomad/var_files")
|
14
14
|
set_if_empty(:nomad_docker_image_alias, ->(**) {})
|
15
15
|
end
|
16
16
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano-nomad
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Hu
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-10-
|
11
|
+
date: 2023-10-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|