pfab 0.58.5 → 0.58.7

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9095dc3b5c4ad4e96aee6c137ecfe7700f78e9a62fb8cb88b5706bba4b32c778
4
- data.tar.gz: 0bc0d39e855cd149c15f2b93c831a4468687e8be9fa3d6243da6c40efbc0f7ec
3
+ metadata.gz: b20c68616c45b8a3dfd03878def263856dea71de19c4fdba68f8d486e4b87c9e
4
+ data.tar.gz: 8c6f90dd1980bc20b99b08946fdb2550de3be07432e68fce4a785b71af1cc042
5
5
  SHA512:
6
- metadata.gz: 31d52d5108797d2b5314a79b269187959ec38bb1093a80803deb7652d825ee882cc95baa6d1fabb5103cd8bed1db2892203a0bec2524f796838277257afde974
7
- data.tar.gz: 22810edb93eee2aacc48b0d76f6dd86acd66b73c1ab56aab264a0cff36f6a960f889aeb4ff294d66ccb858caa5059075502ae176115b59cbc0a322ed97f1f5e4
6
+ metadata.gz: cd2b6872de0404da1d7b9a9aa6dd5278c71f93cd311074cb359dcc030ba43f36698f16d7a43f4611ddd336debb7ad8dd2bcea582e91d47312ad8f8efc58619e3
7
+ data.tar.gz: 41ab35fb28d25efe6d9b31dbe51f52834c75724a22156d8ed410b9bef8b6d23cbad2f3af15eb6897c78ff463d6b081be1e0a36980e2e53bd5f029a856bb0e919
data/lib/pfab/cli.rb CHANGED
@@ -68,15 +68,22 @@ module Pfab
68
68
  c.option "-t", "--timeout TIMEOUT", Integer, "timeout for rollout (default 360s)"
69
69
  c.option "-r", "--retries RETRIES", Integer, "number of retries for rollout (default 3)"
70
70
  c.option "-s", "--sleep SLEEP", Integer, "sleep duration between retries in seconds (default 5)"
71
+ c.option "-g", "--tagged TAGGED", String, "target deployables tagged with TAGGED"
71
72
 
72
73
  c.action do |args, options|
73
74
  options.default timeout: 360, retries: 3, sleep: 5
74
- app_name = get_app_name(all: true)
75
+ app_name = ""
76
+ if options.tagged && options.tagged != ""
77
+ app_name = "Apps tagged with #{options.tagged}"
78
+ else
79
+ app_name = get_app_name(all: true)
80
+ end
81
+
75
82
  puts "Shipping #{app_name}"
76
83
  success = cmd_build
77
84
  if success
78
85
  cmd_generate_yaml
79
- cmd_apply(timeout: options.timeout, retries: options.retries, sleep_duration: options.sleep)
86
+ cmd_apply(timeout: options.timeout, retries: options.retries, sleep_duration: options.sleep, tagged: options.tagged)
80
87
  end
81
88
  end
82
89
  end
@@ -209,11 +216,13 @@ module Pfab
209
216
  run!
210
217
  end
211
218
 
212
- def cmd_apply(timeout: 240, retries: 3, sleep_duration: 5)
219
+ def cmd_apply(timeout: 240, retries: 3, sleep_duration: 5, tagged: nil)
213
220
  set_kube_context
214
221
  success = true
215
222
 
216
- get_apps.each do |app_name|
223
+ apps = tagged ? deployables.select { |k, v| v[:tags]&.include?(tagged) }.keys : get_apps
224
+
225
+ apps.each do |app_name|
217
226
  app = deployables[app_name]
218
227
  if app[:deployable_type] == "cron"
219
228
  deployed_name = deployed_name(app)
@@ -233,12 +242,14 @@ module Pfab
233
242
  selector = "application=#{@application_yaml['name']}"
234
243
  deployment_json = `kubectl get deployment -l #{selector} -o json --namespace=#{yy.namespace}`
235
244
  deployments = JSON.parse(deployment_json)
236
-
245
+
237
246
  if deployments["items"].any?
238
247
  deployments["items"].each do |deployment|
239
248
  deployment_name = deployment["metadata"]["name"]
240
249
  puts "Waiting for deployment #{deployment_name} to roll out..."
241
-
250
+
251
+ rollout_success = false
252
+
242
253
  retries.times do |attempt|
243
254
  rollout_success = kubectl("rollout status deployment/#{deployment_name} --timeout=#{timeout}s")
244
255
  if rollout_success
@@ -252,7 +263,7 @@ module Pfab
252
263
  end
253
264
  end
254
265
  end
255
-
266
+
256
267
  unless rollout_success
257
268
  puts "Deployment #{deployment_name} failed to roll out after #{retries} attempts."
258
269
  return false
@@ -422,6 +433,7 @@ module Pfab
422
433
  application: application,
423
434
  deployable: deployable,
424
435
  deployable_type: deployable_type,
436
+ tags: dep["tags"],
425
437
  command: dep["command"],
426
438
  }
427
439
  end
@@ -454,4 +466,4 @@ module Pfab
454
466
  (name == "all") ? deployables.keys : [name]
455
467
  end
456
468
  end
457
- end
469
+ end
data/lib/pfab/version.rb CHANGED
@@ -2,7 +2,7 @@ module Pfab
2
2
  module Version
3
3
  MAJOR = 0
4
4
  MINOR = 58
5
- PATCH = 5
5
+ PATCH = 7
6
6
  BUILD = nil
7
7
 
8
8
  STRING = [MAJOR, MINOR, PATCH, BUILD].compact.join('.')
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.58.5 ruby lib
5
+ # stub: pfab 0.58.7 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "pfab".freeze
9
- s.version = "0.58.5"
9
+ s.version = "0.58.7"
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 = "2024-10-09"
14
+ s.date = "2024-10-10"
15
15
  s.description = "k8s helper".freeze
16
16
  s.email = "jdwyer@prefab.cloud".freeze
17
17
  s.executables = ["pfab".freeze]
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.58.5
4
+ version: 0.58.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff Dwyer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-10-09 00:00:00.000000000 Z
11
+ date: 2024-10-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: commander