vidar 1.11.0 → 1.12.1

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: 986fa6cad5809e6da811c62569da04a2cb84a82ade6185ba1a9c2f4e28650f2c
4
- data.tar.gz: 4dc0e96055bf9562fc106b7c75a0cded021eda713d024d7838409b1d60ba3572
3
+ metadata.gz: 10d86c884b8a88a7211212d537f8fcb2351bb0c32c051900978aa9ad1ed2aa20
4
+ data.tar.gz: 101da0df09d2d4e04b68cc1f4b9006c7806b14ae693a3f09b2b2aa0d1cc1c69e
5
5
  SHA512:
6
- metadata.gz: 9b5bf1466a14f5d1c1db96feda71317d64b27e46530cf7b5410b1c0afb81319f35178e781e4ace185b95abbee8ab49bc1d6f505dfe37221ab5facf87c9307b6d
7
- data.tar.gz: bb2ba2a926cda73e3315e30345d2f6dcc48f7892435c69b070e761c50105f1daf2cd6a08c6aa11a2d9e05e0a66f18c2adb3b1089972c5a3bcd9b2f3c57b45f07
6
+ metadata.gz: 5f79b3ff1660292fb00ed3fd85425e4e8c125c0c0cb8be761606de09fb2f5b8b49867a089f7cb5ec5b7c688f5e8af63d9e16ff4c3010c9e397d70e0f668c5b7e
7
+ data.tar.gz: 5ad12ad3a731169efe9fdb6a69a8b96bd52b9d9360f6a5b997578d928a9c4cce2efa7ef78c8342d41911404ae2acd6b4fe06ccd191a6f481831a390444ab6c84
data/.bundler-version CHANGED
@@ -1 +1 @@
1
- 2.5.11
1
+ 2.5.16
@@ -0,0 +1,15 @@
1
+ version: 2
2
+
3
+ updates:
4
+ - package-ecosystem: "bundler"
5
+ directory: "/"
6
+ schedule:
7
+ interval: "weekly"
8
+ day: "monday"
9
+ time: "08:00"
10
+ timezone: "UTC"
11
+ commit-message:
12
+ prefix: "[dependabot]"
13
+ labels:
14
+ - "automerge"
15
+ - "dependencies"
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- vidar (1.11.0)
4
+ vidar (1.12.1)
5
5
  colorize
6
6
  faraday
7
7
  thor (~> 1.0)
@@ -9,8 +9,8 @@ PATH
9
9
  GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
- addressable (2.8.6)
13
- public_suffix (>= 2.0.2, < 6.0)
12
+ addressable (2.8.7)
13
+ public_suffix (>= 2.0.2, < 7.0)
14
14
  ast (2.4.2)
15
15
  awesome_print (1.9.2)
16
16
  bigdecimal (3.1.8)
@@ -20,69 +20,62 @@ GEM
20
20
  bigdecimal
21
21
  rexml
22
22
  diff-lcs (1.5.1)
23
- faraday (2.9.0)
23
+ faraday (2.10.0)
24
24
  faraday-net_http (>= 2.0, < 3.2)
25
+ logger
25
26
  faraday-net_http (3.1.0)
26
27
  net-http
27
28
  hashdiff (1.1.0)
28
29
  json (2.7.2)
29
30
  language_server-protocol (3.17.0.3)
31
+ logger (1.6.0)
30
32
  method_source (1.1.0)
31
33
  net-http (0.4.1)
32
34
  uri
33
- parallel (1.24.0)
34
- parser (3.3.2.0)
35
+ parallel (1.25.1)
36
+ parser (3.3.4.0)
35
37
  ast (~> 2.4.1)
36
38
  racc
37
39
  pry (0.14.2)
38
40
  coderay (~> 1.1)
39
41
  method_source (~> 1.0)
40
- public_suffix (5.0.5)
42
+ public_suffix (6.0.0)
41
43
  racc (1.8.0)
42
44
  rainbow (3.1.1)
43
45
  rake (13.2.1)
44
46
  regexp_parser (2.9.2)
45
- rexml (3.2.8)
46
- strscan (>= 3.0.9)
47
+ rexml (3.3.2)
48
+ strscan
47
49
  rspec (3.13.0)
48
50
  rspec-core (~> 3.13.0)
49
51
  rspec-expectations (~> 3.13.0)
50
52
  rspec-mocks (~> 3.13.0)
51
53
  rspec-core (3.13.0)
52
54
  rspec-support (~> 3.13.0)
53
- rspec-expectations (3.13.0)
55
+ rspec-expectations (3.13.1)
54
56
  diff-lcs (>= 1.2.0, < 2.0)
55
57
  rspec-support (~> 3.13.0)
56
58
  rspec-mocks (3.13.1)
57
59
  diff-lcs (>= 1.2.0, < 2.0)
58
60
  rspec-support (~> 3.13.0)
59
61
  rspec-support (3.13.1)
60
- rubocop (1.64.1)
62
+ rubocop (1.65.0)
61
63
  json (~> 2.3)
62
64
  language_server-protocol (>= 3.17.0)
63
65
  parallel (~> 1.10)
64
66
  parser (>= 3.3.0.2)
65
67
  rainbow (>= 2.2.2, < 4.0)
66
- regexp_parser (>= 1.8, < 3.0)
68
+ regexp_parser (>= 2.4, < 3.0)
67
69
  rexml (>= 3.2.5, < 4.0)
68
70
  rubocop-ast (>= 1.31.1, < 2.0)
69
71
  ruby-progressbar (~> 1.7)
70
72
  unicode-display_width (>= 2.4.0, < 3.0)
71
73
  rubocop-ast (1.31.3)
72
74
  parser (>= 3.3.1.0)
73
- rubocop-capybara (2.20.0)
74
- rubocop (~> 1.41)
75
- rubocop-factory_bot (2.25.1)
76
- rubocop (~> 1.41)
77
75
  rubocop-rake (0.6.0)
78
76
  rubocop (~> 1.0)
79
- rubocop-rspec (2.30.0)
80
- rubocop (~> 1.40)
81
- rubocop-capybara (~> 2.17)
82
- rubocop-factory_bot (~> 2.22)
83
- rubocop-rspec_rails (~> 2.28)
84
- rubocop-rspec_rails (2.28.3)
85
- rubocop (~> 1.40)
77
+ rubocop-rspec (3.0.3)
78
+ rubocop (~> 1.61)
86
79
  ruby-progressbar (1.13.0)
87
80
  strscan (3.1.0)
88
81
  thor (1.3.1)
@@ -109,4 +102,4 @@ DEPENDENCIES
109
102
  webmock
110
103
 
111
104
  BUNDLED WITH
112
- 2.5.9
105
+ 2.5.16
data/lib/vidar/cli.rb CHANGED
@@ -89,9 +89,11 @@ module Vidar
89
89
  method_option :destination, required: false, default: "deployments,cronjobs"
90
90
  method_option :container, required: false, default: "*"
91
91
  method_option :all, required: false, type: :boolean, default: true
92
+ method_option :max_tries, required: false, default: "30"
92
93
  def deploy
93
94
  revision = options[:revision] || Config.get!(:revision)
94
95
  kubectl_context = options[:kubectl_context] || Config.get!(:kubectl_context)
96
+ max_tries = options[:max_tries].to_i
95
97
  Log.info "Current kubectl context: #{kubectl_context}"
96
98
 
97
99
  Log.info "Looking for deploy hook..."
@@ -104,14 +106,7 @@ module Vidar
104
106
  if template_name.to_s.empty?
105
107
  Log.info "No deploy hook found"
106
108
  else
107
- Log.info "Executing deploy hook #{template_name.strip!}..."
108
- Run.kubectl "delete job deploy-hook --ignore-not-found=true"
109
- Run.kubectl "set image cronjobs/deploy-hook-template deploy-hook-template=#{Config.get!(:image)}:#{revision} --all"
110
- Run.kubectl "create job deploy-hook --from=#{template_name}"
111
-
112
- deploy_status = Vidar::DeployStatus.new(namespace: Config.get!(:namespace), filter: "deploy-hook")
113
- deploy_status.wait_until_up
114
- deploy_status.wait_until_completed
109
+ deploy_status = run_deploy_hook(template_name:, revision:, max_tries:)
115
110
 
116
111
  unless deploy_status.success?
117
112
  Run.kubectl "describe job deploy-hook"
@@ -163,14 +158,17 @@ module Vidar
163
158
  end
164
159
 
165
160
  desc "monitor_deploy_status", "Check is deployment has finished and sends post-deploy notification"
161
+ method_option :max_tries, required: false, default: "30"
166
162
  def monitor_deploy_status
163
+ max_tries = options[:max_tries].to_i
164
+
167
165
  Log.info "Current kubectl context: #{Config.get!(:kubectl_context)}"
168
- Log.info "Checking if all containers in #{Config.get!(:namespace)} namespace(s) are ready..."
166
+ Log.info "Checking if all containers in #{Config.get!(:namespace)} namespace(s) are ready (#{max_tries} tries)..."
169
167
 
170
168
  slack_notification = SlackNotification.get
171
169
  honeycomb_notification = HoneycombNotification.get
172
170
 
173
- deploy_status = Vidar::DeployStatus.new(namespace: Config.get!(:namespace))
171
+ deploy_status = Vidar::DeployStatus.new(namespace: Config.get!(:namespace), max_tries:)
174
172
 
175
173
  deploy_status.wait_until_completed
176
174
 
@@ -257,5 +255,19 @@ module Vidar
257
255
 
258
256
  slack_notification.deliver(message: options[:message]) if slack_notification.configured?
259
257
  end
258
+
259
+ private
260
+
261
+ def run_deploy_hook(template_name:, revision:, max_tries:)
262
+ Log.info "Executing deploy hook #{template_name.strip!} (#{max_tries} tries)..."
263
+ Run.kubectl "delete job deploy-hook --ignore-not-found=true"
264
+ Run.kubectl "set image cronjobs/deploy-hook-template deploy-hook-template=#{Config.get!(:image)}:#{revision} --all"
265
+ Run.kubectl "create job deploy-hook --from=#{template_name}"
266
+
267
+ deploy_status = Vidar::DeployStatus.new(namespace: Config.get!(:namespace), filter: "deploy-hook", max_tries:)
268
+ deploy_status.wait_until_up
269
+ deploy_status.wait_until_completed
270
+ deploy_status
271
+ end
260
272
  end
261
273
  end
data/lib/vidar/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Vidar
2
- VERSION = '1.11.0'.freeze
2
+ VERSION = '1.12.1'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vidar
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.11.0
4
+ version: 1.12.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Krzysztof Knapik
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2024-06-04 00:00:00.000000000 Z
12
+ date: 2024-07-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: colorize
@@ -68,6 +68,7 @@ files:
68
68
  - ".github/ISSUE_TEMPLATE/config.yml"
69
69
  - ".github/ISSUE_TEMPLATE/story.md"
70
70
  - ".github/PULL_REQUEST_TEMPLATE.md"
71
+ - ".github/dependabot.yml"
71
72
  - ".github/workflows/auto-approve.yml"
72
73
  - ".github/workflows/auto-merge.yml"
73
74
  - ".github/workflows/ci.yml"
@@ -118,7 +119,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
118
119
  - !ruby/object:Gem::Version
119
120
  version: '0'
120
121
  requirements: []
121
- rubygems_version: 3.5.11
122
+ rubygems_version: 3.5.16
122
123
  signing_key:
123
124
  specification_version: 4
124
125
  summary: K8s deployment tools based on thor