pfab 0.21.0 → 0.24.0
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/lib/pfab/cli.rb +32 -10
- data/lib/pfab/templates/base.rb +8 -2
- data/lib/pfab/templates/cron.rb +7 -1
- data/lib/pfab/templates/daemon.rb +7 -1
- data/lib/pfab/templates/job.rb +7 -1
- data/lib/pfab/templates/web.rb +22 -2
- data/lib/pfab/version.rb +1 -1
- data/pfab.gemspec +23 -14
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f606a8c659a0664f7f4869438a917a897f9c7009cdc1e23e45522739d2e69fe1
|
4
|
+
data.tar.gz: 919bdc6f011315fcf45a4b5fd4722b4c414c892b6e81417041371da63548da76
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6263093d254e986ee4d9282ea7768c78c4ca5de747296b44298682557422963b4e8d52f334c0b8fec275876b66a1c87993630a4c9b0c8d8c33b0114084319fa4
|
7
|
+
data.tar.gz: 4846e1aa24220ef5ecf7ab25111613ade6ae9fd7c456fd5a77700cc0b6546bfca9dd58cce3128f912bde5d5cd349c8e63a0159ac1859ca79b49e01fbeaca616e
|
data/lib/pfab/cli.rb
CHANGED
@@ -31,8 +31,9 @@ module Pfab
|
|
31
31
|
c.syntax = "pfab build"
|
32
32
|
c.summary = "build image"
|
33
33
|
c.option "--force", "force build and push"
|
34
|
+
c.option "--check", "just check if built"
|
34
35
|
c.action do |_args, options|
|
35
|
-
cmd_build(force: options.force)
|
36
|
+
cmd_build(force: options.force, checkonly: options.check)
|
36
37
|
end
|
37
38
|
end
|
38
39
|
|
@@ -83,6 +84,18 @@ module Pfab
|
|
83
84
|
end
|
84
85
|
end
|
85
86
|
|
87
|
+
command :restart do |c|
|
88
|
+
c.syntax = "pfab restart"
|
89
|
+
c.summary = "rolling restart of a deployment"
|
90
|
+
c.description = "rolling restart of a deployment"
|
91
|
+
c.action do
|
92
|
+
set_kube_context
|
93
|
+
app_name = get_app_name
|
94
|
+
|
95
|
+
puts_and_system "kubectl rollout restart deployment.apps/#{app_name}"
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
86
99
|
command :exec do |c|
|
87
100
|
c.syntax = "pfab exec"
|
88
101
|
c.summary = "kubectl exec into a pod"
|
@@ -193,7 +206,16 @@ module Pfab
|
|
193
206
|
end
|
194
207
|
end
|
195
208
|
|
196
|
-
def
|
209
|
+
def image_exists?(full_image_name)
|
210
|
+
|
211
|
+
# return 0 if image exists 1 if not
|
212
|
+
cmd = "docker manifest inspect #{full_image_name} > /dev/null ; echo $?"
|
213
|
+
say "Looking for images with #{cmd}"
|
214
|
+
existing = `#{cmd}`.strip
|
215
|
+
existing == "0"
|
216
|
+
end
|
217
|
+
|
218
|
+
def cmd_build(force: false, checkonly: false)
|
197
219
|
rev = get_current_sha
|
198
220
|
say "This repo is at rev: #{rev}"
|
199
221
|
uncommitted_changes = !`git diff-index HEAD --`.empty?
|
@@ -209,14 +231,14 @@ module Pfab
|
|
209
231
|
|
210
232
|
full_image_name = "#{container_repository}/#{image_name}:#{rev}"
|
211
233
|
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
return
|
234
|
+
unless force
|
235
|
+
if image_exists?(full_image_name)
|
236
|
+
say "Found image #{full_image_name} already, skipping prebuild, build & push"
|
237
|
+
return true
|
238
|
+
else
|
239
|
+
say "No image #{full_image_name} present"
|
240
|
+
end
|
241
|
+
return if checkonly
|
220
242
|
end
|
221
243
|
|
222
244
|
say "No image #{full_image_name} present, building"
|
data/lib/pfab/templates/base.rb
CHANGED
@@ -42,16 +42,22 @@ module Pfab
|
|
42
42
|
}
|
43
43
|
end
|
44
44
|
|
45
|
+
# overridden in subtypes
|
46
|
+
def application_type
|
47
|
+
"base"
|
48
|
+
end
|
45
49
|
|
46
50
|
def deploy_id
|
47
51
|
"#{@data['application']}.#{application_type}.#{@data['deployed_name']}"
|
48
52
|
end
|
49
53
|
|
50
54
|
def env_vars
|
51
|
-
|
52
55
|
env_vars = { "DEPLOYED_NAME" => { value: @data['deployed_name'] },
|
53
56
|
"DEPLOY_ID" => { value: deploy_id },
|
54
|
-
"POD_ID" => { valueFrom: { fieldRef: { fieldPath: 'metadata.name' } } }
|
57
|
+
"POD_ID" => { valueFrom: { fieldRef: { fieldPath: 'metadata.name' } } },
|
58
|
+
"DD_ENV" => { valueFrom: { fieldRef: { fieldPath: "metadata.labels['tags.datadoghq.com/env']" } } },
|
59
|
+
"DD_SERVICE" => { valueFrom: { fieldRef: { fieldPath: "metadata.labels['tags.datadoghq.com/service']" } } },
|
60
|
+
"DD_VERSION" => { valueFrom: { fieldRef: { fieldPath: "metadata.labels['tags.datadoghq.com/version']" } } }
|
55
61
|
}
|
56
62
|
|
57
63
|
# load defaults
|
data/lib/pfab/templates/cron.rb
CHANGED
@@ -20,7 +20,10 @@ module Pfab
|
|
20
20
|
application: @data['application'],
|
21
21
|
"deployed-name" => @data['deployed_name'],
|
22
22
|
"application-type" => application_type,
|
23
|
-
"deploy-id" => deploy_id
|
23
|
+
"deploy-id" => deploy_id,
|
24
|
+
"tags.datadoghq.com/env": @data['env'],
|
25
|
+
"tags.datadoghq.com/service": @data['deployed_name'],
|
26
|
+
"tags.datadoghq.com/service": @data['sha']
|
24
27
|
}
|
25
28
|
},
|
26
29
|
spec: {
|
@@ -44,6 +47,9 @@ module Pfab
|
|
44
47
|
application: @data['application'],
|
45
48
|
"deployed-name" => @data['deployed_name'],
|
46
49
|
"application-type" => "cron",
|
50
|
+
"tags.datadoghq.com/env": @data['env'],
|
51
|
+
"tags.datadoghq.com/service": @data['deployed_name'],
|
52
|
+
"tags.datadoghq.com/service": @data['sha']
|
47
53
|
},
|
48
54
|
},
|
49
55
|
spec: {
|
@@ -20,7 +20,10 @@ module Pfab
|
|
20
20
|
application: @data['application'],
|
21
21
|
"deployed-name" => @data['deployed_name'],
|
22
22
|
"application-type" => application_type,
|
23
|
-
"deploy-id" => deploy_id
|
23
|
+
"deploy-id" => deploy_id,
|
24
|
+
"tags.datadoghq.com/env": @data['env'],
|
25
|
+
"tags.datadoghq.com/service": @data['deployed_name'],
|
26
|
+
"tags.datadoghq.com/service": @data['sha']
|
24
27
|
}
|
25
28
|
},
|
26
29
|
spec: {
|
@@ -40,6 +43,9 @@ module Pfab
|
|
40
43
|
application: @data['application'],
|
41
44
|
"deployed-name" => @data['deployed_name'],
|
42
45
|
"application-type" => "daemon",
|
46
|
+
"tags.datadoghq.com/env": @data['env'],
|
47
|
+
"tags.datadoghq.com/service": @data['deployed_name'],
|
48
|
+
"tags.datadoghq.com/service": @data['sha']
|
43
49
|
},
|
44
50
|
},
|
45
51
|
spec: {
|
data/lib/pfab/templates/job.rb
CHANGED
@@ -20,7 +20,10 @@ module Pfab
|
|
20
20
|
application: @data['application'],
|
21
21
|
"deployed-name" => @data['deployed_name'],
|
22
22
|
"application-type" => application_type,
|
23
|
-
"deploy-id" => deploy_id
|
23
|
+
"deploy-id" => deploy_id,
|
24
|
+
"tags.datadoghq.com/env": @data['env'],
|
25
|
+
"tags.datadoghq.com/service": @data['deployed_name'],
|
26
|
+
"tags.datadoghq.com/service": @data['sha']
|
24
27
|
}
|
25
28
|
},
|
26
29
|
spec: {
|
@@ -32,6 +35,9 @@ module Pfab
|
|
32
35
|
application: @data['application'],
|
33
36
|
"deployed-name" => @data['deployed_name'],
|
34
37
|
"application-type" => "job",
|
38
|
+
"tags.datadoghq.com/env": @data['env'],
|
39
|
+
"tags.datadoghq.com/service": @data['deployed_name'],
|
40
|
+
"tags.datadoghq.com/service": @data['sha']
|
35
41
|
},
|
36
42
|
},
|
37
43
|
spec: {
|
data/lib/pfab/templates/web.rb
CHANGED
@@ -151,7 +151,10 @@ module Pfab
|
|
151
151
|
application: @data['application'],
|
152
152
|
"deployed-name" => @data['deployed_name'],
|
153
153
|
"application-type" => application_type,
|
154
|
-
"deploy-id" => deploy_id
|
154
|
+
"deploy-id" => deploy_id,
|
155
|
+
"tags.datadoghq.com/env": @data['env'],
|
156
|
+
"tags.datadoghq.com/service": @data['deployed_name'],
|
157
|
+
"tags.datadoghq.com/service": @data['sha']
|
155
158
|
}
|
156
159
|
},
|
157
160
|
spec: {
|
@@ -176,6 +179,9 @@ module Pfab
|
|
176
179
|
application: @data['application'],
|
177
180
|
"deployed-name" => @data['deployed_name'],
|
178
181
|
"application-type" => "web",
|
182
|
+
"tags.datadoghq.com/env": @data['env'],
|
183
|
+
"tags.datadoghq.com/service": @data['deployed_name'],
|
184
|
+
"tags.datadoghq.com/version": @data['sha']
|
179
185
|
},
|
180
186
|
},
|
181
187
|
spec: {
|
@@ -188,8 +194,22 @@ module Pfab
|
|
188
194
|
resources: resources,
|
189
195
|
livenessProbe: livenessProbe,
|
190
196
|
readinessProbe: readinessProbe,
|
197
|
+
volumeMounts: [
|
198
|
+
{
|
199
|
+
name: "apmsocketpath",
|
200
|
+
mountPath: "/var/run/datadog"
|
201
|
+
}
|
202
|
+
]
|
203
|
+
}
|
204
|
+
],
|
205
|
+
volumes: [
|
206
|
+
{
|
207
|
+
name: "apmsocketpath",
|
208
|
+
hostPath: {
|
209
|
+
path: "/var/run/datadog/",
|
210
|
+
}
|
191
211
|
}
|
192
|
-
]
|
212
|
+
],
|
193
213
|
},
|
194
214
|
},
|
195
215
|
},
|
data/lib/pfab/version.rb
CHANGED
data/pfab.gemspec
CHANGED
@@ -2,16 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: pfab 0.
|
5
|
+
# stub: pfab 0.24.0 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "pfab".freeze
|
9
|
-
s.version = "0.
|
9
|
+
s.version = "0.24.0"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib".freeze]
|
13
13
|
s.authors = ["Jeff Dwyer".freeze]
|
14
|
-
s.date = "2022-
|
14
|
+
s.date = "2022-08-10"
|
15
15
|
s.description = "k8s helper".freeze
|
16
16
|
s.email = "jdwyer@prefab.cloud".freeze
|
17
17
|
s.executables = ["pfab".freeze]
|
@@ -44,22 +44,31 @@ Gem::Specification.new do |s|
|
|
44
44
|
]
|
45
45
|
s.homepage = "http://github.com/prefab-cloud/pfab".freeze
|
46
46
|
s.licenses = ["MIT".freeze]
|
47
|
-
s.rubygems_version = "3.
|
47
|
+
s.rubygems_version = "3.0.3.1".freeze
|
48
48
|
s.summary = "helper gem".freeze
|
49
49
|
|
50
50
|
if s.respond_to? :specification_version then
|
51
51
|
s.specification_version = 4
|
52
|
-
end
|
53
52
|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
53
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
54
|
+
s.add_runtime_dependency(%q<commander>.freeze, [">= 0"])
|
55
|
+
s.add_runtime_dependency(%q<activesupport>.freeze, [">= 0"])
|
56
|
+
s.add_runtime_dependency(%q<pry-byebug>.freeze, [">= 0"])
|
57
|
+
s.add_development_dependency(%q<rdoc>.freeze, ["~> 3.12"])
|
58
|
+
s.add_development_dependency(%q<bundler>.freeze, ["~> 1.0"])
|
59
|
+
s.add_development_dependency(%q<juwelier>.freeze, ["~> 2.4.9"])
|
60
|
+
s.add_development_dependency(%q<simplecov>.freeze, [">= 0"])
|
61
|
+
s.add_development_dependency(%q<test-unit>.freeze, [">= 0"])
|
62
|
+
else
|
63
|
+
s.add_dependency(%q<commander>.freeze, [">= 0"])
|
64
|
+
s.add_dependency(%q<activesupport>.freeze, [">= 0"])
|
65
|
+
s.add_dependency(%q<pry-byebug>.freeze, [">= 0"])
|
66
|
+
s.add_dependency(%q<rdoc>.freeze, ["~> 3.12"])
|
67
|
+
s.add_dependency(%q<bundler>.freeze, ["~> 1.0"])
|
68
|
+
s.add_dependency(%q<juwelier>.freeze, ["~> 2.4.9"])
|
69
|
+
s.add_dependency(%q<simplecov>.freeze, [">= 0"])
|
70
|
+
s.add_dependency(%q<test-unit>.freeze, [">= 0"])
|
71
|
+
end
|
63
72
|
else
|
64
73
|
s.add_dependency(%q<commander>.freeze, [">= 0"])
|
65
74
|
s.add_dependency(%q<activesupport>.freeze, [">= 0"])
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pfab
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.24.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeff Dwyer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-08-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: commander
|
@@ -171,7 +171,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
171
171
|
- !ruby/object:Gem::Version
|
172
172
|
version: '0'
|
173
173
|
requirements: []
|
174
|
-
rubygems_version: 3.
|
174
|
+
rubygems_version: 3.0.3.1
|
175
175
|
signing_key:
|
176
176
|
specification_version: 4
|
177
177
|
summary: helper gem
|