pfab 0.21.0 → 0.24.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 27a890e2f61bd9bc6199fe0274e29a31e84746e7525e78db1d4c6aa521599fec
4
- data.tar.gz: 256394a7e22e8396c7a7a48e1b719cc2d0d70f82061dd7ce76766ce6dc13e5e4
3
+ metadata.gz: f606a8c659a0664f7f4869438a917a897f9c7009cdc1e23e45522739d2e69fe1
4
+ data.tar.gz: 919bdc6f011315fcf45a4b5fd4722b4c414c892b6e81417041371da63548da76
5
5
  SHA512:
6
- metadata.gz: fbfc48c374b2014452e18bcb00f0fc58d81058e592bc842106de08f472c8e7841896b4a809d34dfabe5dbdc59f164df86f053dc4b93916a90dca9ab4134e73a2
7
- data.tar.gz: e319e0ee8b66448ddcc084fb1dafb871b9e2b0ea4092966deebcb53b15e6dad69e6a79807b406b1281bd259154e712d2051ce2ba83e02ae9bc11bf882836213a
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 cmd_build(force: false)
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
- # return 0 if image exists 1 if not
213
- cmd = "docker manifest inspect #{full_image_name} > /dev/null ; echo $?"
214
- say "Looking for images with #{cmd}"
215
- existing = `#{cmd}`.strip
216
-
217
- if existing == "0" && !force
218
- say "Found image #{full_image_name} already, skipping prebuild, build & push"
219
- return true
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"
@@ -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
@@ -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: {
@@ -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: {
@@ -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
@@ -1,7 +1,7 @@
1
1
  module Pfab
2
2
  module Version
3
3
  MAJOR = 0
4
- MINOR = 21
4
+ MINOR = 24
5
5
  PATCH = 0
6
6
  BUILD = nil
7
7
 
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.21.0 ruby lib
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.21.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-07-21"
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.2.32".freeze
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
- if s.respond_to? :add_runtime_dependency then
55
- s.add_runtime_dependency(%q<commander>.freeze, [">= 0"])
56
- s.add_runtime_dependency(%q<activesupport>.freeze, [">= 0"])
57
- s.add_runtime_dependency(%q<pry-byebug>.freeze, [">= 0"])
58
- s.add_development_dependency(%q<rdoc>.freeze, ["~> 3.12"])
59
- s.add_development_dependency(%q<bundler>.freeze, ["~> 1.0"])
60
- s.add_development_dependency(%q<juwelier>.freeze, ["~> 2.4.9"])
61
- s.add_development_dependency(%q<simplecov>.freeze, [">= 0"])
62
- s.add_development_dependency(%q<test-unit>.freeze, [">= 0"])
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.21.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-07-21 00:00:00.000000000 Z
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.2.32
174
+ rubygems_version: 3.0.3.1
175
175
  signing_key:
176
176
  specification_version: 4
177
177
  summary: helper gem