kubernetes-deploy 0.29.0 → 1.0.0.pre.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (97) hide show
  1. checksums.yaml +4 -4
  2. data/.buildkite/pipeline.nightly.yml +7 -0
  3. data/.rubocop.yml +0 -12
  4. data/.shopify-build/{kubernetes-deploy.yml → krane.yml} +8 -2
  5. data/1.0-Upgrade.md +109 -0
  6. data/CHANGELOG.md +60 -0
  7. data/CONTRIBUTING.md +2 -2
  8. data/Gemfile +1 -0
  9. data/README.md +86 -2
  10. data/dev.yml +3 -1
  11. data/dev/flamegraph-from-tests +1 -1
  12. data/exe/kubernetes-deploy +12 -9
  13. data/exe/kubernetes-render +9 -7
  14. data/exe/kubernetes-restart +3 -3
  15. data/exe/kubernetes-run +1 -1
  16. data/kubernetes-deploy.gemspec +5 -5
  17. data/lib/krane.rb +5 -3
  18. data/lib/{kubernetes-deploy → krane}/bindings_parser.rb +1 -1
  19. data/lib/krane/cli/deploy_command.rb +25 -13
  20. data/lib/krane/cli/global_deploy_command.rb +55 -0
  21. data/lib/krane/cli/krane.rb +12 -3
  22. data/lib/krane/cli/render_command.rb +19 -9
  23. data/lib/krane/cli/restart_command.rb +4 -4
  24. data/lib/krane/cli/run_command.rb +4 -4
  25. data/lib/krane/cli/version_command.rb +1 -1
  26. data/lib/krane/cluster_resource_discovery.rb +113 -0
  27. data/lib/{kubernetes-deploy → krane}/common.rb +8 -9
  28. data/lib/krane/concerns/template_reporting.rb +29 -0
  29. data/lib/{kubernetes-deploy → krane}/concurrency.rb +1 -1
  30. data/lib/{kubernetes-deploy → krane}/container_logs.rb +3 -2
  31. data/lib/{kubernetes-deploy → krane}/deferred_summary_logging.rb +2 -2
  32. data/lib/{kubernetes-deploy → krane}/delayed_exceptions.rb +0 -0
  33. data/lib/krane/deploy_task.rb +16 -0
  34. data/lib/krane/deploy_task_config_validator.rb +29 -0
  35. data/lib/krane/deprecated_deploy_task.rb +404 -0
  36. data/lib/{kubernetes-deploy → krane}/duration_parser.rb +1 -3
  37. data/lib/{kubernetes-deploy → krane}/ejson_secret_provisioner.rb +10 -13
  38. data/lib/krane/errors.rb +28 -0
  39. data/lib/{kubernetes-deploy → krane}/formatted_logger.rb +2 -2
  40. data/lib/krane/global_deploy_task.rb +210 -0
  41. data/lib/krane/global_deploy_task_config_validator.rb +12 -0
  42. data/lib/{kubernetes-deploy → krane}/kubeclient_builder.rb +13 -5
  43. data/lib/{kubernetes-deploy → krane}/kubectl.rb +14 -16
  44. data/lib/{kubernetes-deploy → krane}/kubernetes_resource.rb +110 -27
  45. data/lib/{kubernetes-deploy → krane}/kubernetes_resource/cloudsql.rb +1 -1
  46. data/lib/{kubernetes-deploy → krane}/kubernetes_resource/config_map.rb +1 -1
  47. data/lib/{kubernetes-deploy → krane}/kubernetes_resource/cron_job.rb +1 -1
  48. data/lib/{kubernetes-deploy → krane}/kubernetes_resource/custom_resource.rb +2 -2
  49. data/lib/{kubernetes-deploy → krane}/kubernetes_resource/custom_resource_definition.rb +1 -5
  50. data/lib/krane/kubernetes_resource/daemon_set.rb +90 -0
  51. data/lib/{kubernetes-deploy → krane}/kubernetes_resource/deployment.rb +2 -2
  52. data/lib/{kubernetes-deploy → krane}/kubernetes_resource/horizontal_pod_autoscaler.rb +1 -1
  53. data/lib/{kubernetes-deploy → krane}/kubernetes_resource/ingress.rb +1 -1
  54. data/lib/{kubernetes-deploy → krane}/kubernetes_resource/job.rb +1 -1
  55. data/lib/{kubernetes-deploy → krane}/kubernetes_resource/network_policy.rb +1 -1
  56. data/lib/{kubernetes-deploy → krane}/kubernetes_resource/persistent_volume_claim.rb +1 -1
  57. data/lib/{kubernetes-deploy → krane}/kubernetes_resource/pod.rb +6 -2
  58. data/lib/{kubernetes-deploy → krane}/kubernetes_resource/pod_disruption_budget.rb +2 -2
  59. data/lib/{kubernetes-deploy → krane}/kubernetes_resource/pod_set_base.rb +3 -3
  60. data/lib/{kubernetes-deploy → krane}/kubernetes_resource/pod_template.rb +1 -1
  61. data/lib/{kubernetes-deploy → krane}/kubernetes_resource/replica_set.rb +2 -2
  62. data/lib/{kubernetes-deploy → krane}/kubernetes_resource/resource_quota.rb +1 -1
  63. data/lib/{kubernetes-deploy → krane}/kubernetes_resource/role.rb +1 -1
  64. data/lib/{kubernetes-deploy → krane}/kubernetes_resource/role_binding.rb +1 -1
  65. data/lib/{kubernetes-deploy → krane}/kubernetes_resource/secret.rb +1 -1
  66. data/lib/{kubernetes-deploy → krane}/kubernetes_resource/service.rb +2 -2
  67. data/lib/{kubernetes-deploy → krane}/kubernetes_resource/service_account.rb +1 -1
  68. data/lib/{kubernetes-deploy → krane}/kubernetes_resource/stateful_set.rb +2 -2
  69. data/lib/{kubernetes-deploy → krane}/label_selector.rb +1 -1
  70. data/lib/{kubernetes-deploy → krane}/oj.rb +0 -0
  71. data/lib/{kubernetes-deploy → krane}/options_helper.rb +2 -2
  72. data/lib/{kubernetes-deploy → krane}/remote_logs.rb +2 -2
  73. data/lib/krane/render_task.rb +149 -0
  74. data/lib/{kubernetes-deploy → krane}/renderer.rb +1 -1
  75. data/lib/{kubernetes-deploy → krane}/resource_cache.rb +10 -9
  76. data/lib/krane/resource_deployer.rb +265 -0
  77. data/lib/{kubernetes-deploy → krane}/resource_watcher.rb +24 -25
  78. data/lib/krane/restart_task.rb +228 -0
  79. data/lib/{kubernetes-deploy → krane}/rollout_conditions.rb +1 -1
  80. data/lib/krane/runner_task.rb +212 -0
  81. data/lib/{kubernetes-deploy → krane}/runner_task_config_validator.rb +1 -1
  82. data/lib/{kubernetes-deploy → krane}/statsd.rb +13 -27
  83. data/lib/krane/task_config.rb +22 -0
  84. data/lib/{kubernetes-deploy → krane}/task_config_validator.rb +1 -1
  85. data/lib/{kubernetes-deploy → krane}/template_sets.rb +5 -5
  86. data/lib/krane/version.rb +4 -0
  87. data/lib/kubernetes-deploy/deploy_task.rb +6 -608
  88. data/lib/kubernetes-deploy/errors.rb +1 -26
  89. data/lib/kubernetes-deploy/render_task.rb +5 -122
  90. data/lib/kubernetes-deploy/rescue_krane_exceptions.rb +18 -0
  91. data/lib/kubernetes-deploy/restart_task.rb +6 -198
  92. data/lib/kubernetes-deploy/runner_task.rb +6 -184
  93. metadata +96 -70
  94. data/lib/kubernetes-deploy/cluster_resource_discovery.rb +0 -34
  95. data/lib/kubernetes-deploy/kubernetes_resource/daemon_set.rb +0 -54
  96. data/lib/kubernetes-deploy/task_config.rb +0 -16
  97. data/lib/kubernetes-deploy/version.rb +0 -4
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kubernetes-deploy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.29.0
4
+ version: 1.0.0.pre.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Katrina Verey
8
8
  - Kir Shatrov
9
- autorequire:
9
+ autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2019-09-30 00:00:00.000000000 Z
12
+ date: 2020-07-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -45,14 +45,14 @@ dependencies:
45
45
  requirements:
46
46
  - - "~>"
47
47
  - !ruby/object:Gem::Version
48
- version: 0.8.0
48
+ version: '0.8'
49
49
  type: :runtime
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
53
  - - "~>"
54
54
  - !ruby/object:Gem::Version
55
- version: 0.8.0
55
+ version: '0.8'
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: ejson
58
58
  requirement: !ruby/object:Gem::Requirement
@@ -85,16 +85,22 @@ dependencies:
85
85
  name: statsd-instrument
86
86
  requirement: !ruby/object:Gem::Requirement
87
87
  requirements:
88
- - - "~>"
88
+ - - ">="
89
89
  - !ruby/object:Gem::Version
90
- version: 2.3.2
90
+ version: '2.8'
91
+ - - "<"
92
+ - !ruby/object:Gem::Version
93
+ version: '3.1'
91
94
  type: :runtime
92
95
  prerelease: false
93
96
  version_requirements: !ruby/object:Gem::Requirement
94
97
  requirements:
95
- - - "~>"
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ version: '2.8'
101
+ - - "<"
96
102
  - !ruby/object:Gem::Version
97
- version: 2.3.2
103
+ version: '3.1'
98
104
  - !ruby/object:Gem::Dependency
99
105
  name: oj
100
106
  requirement: !ruby/object:Gem::Requirement
@@ -141,16 +147,22 @@ dependencies:
141
147
  name: thor
142
148
  requirement: !ruby/object:Gem::Requirement
143
149
  requirements:
144
- - - "~>"
150
+ - - ">="
145
151
  - !ruby/object:Gem::Version
146
- version: 0.20.3
152
+ version: '0.20'
153
+ - - "<"
154
+ - !ruby/object:Gem::Version
155
+ version: '2.0'
147
156
  type: :runtime
148
157
  prerelease: false
149
158
  version_requirements: !ruby/object:Gem::Requirement
150
159
  requirements:
151
- - - "~>"
160
+ - - ">="
161
+ - !ruby/object:Gem::Version
162
+ version: '0.20'
163
+ - - "<"
152
164
  - !ruby/object:Gem::Version
153
- version: 0.20.3
165
+ version: '2.0'
154
166
  - !ruby/object:Gem::Dependency
155
167
  name: bundler
156
168
  requirement: !ruby/object:Gem::Requirement
@@ -252,7 +264,8 @@ files:
252
264
  - ".gitignore"
253
265
  - ".rubocop.yml"
254
266
  - ".shopify-build/VERSION"
255
- - ".shopify-build/kubernetes-deploy.yml"
267
+ - ".shopify-build/krane.yml"
268
+ - 1.0-Upgrade.md
256
269
  - CHANGELOG.md
257
270
  - CODE_OF_CONDUCT.md
258
271
  - CONTRIBUTING.md
@@ -273,69 +286,82 @@ files:
273
286
  - exe/kubernetes-run
274
287
  - kubernetes-deploy.gemspec
275
288
  - lib/krane.rb
289
+ - lib/krane/bindings_parser.rb
276
290
  - lib/krane/cli/deploy_command.rb
291
+ - lib/krane/cli/global_deploy_command.rb
277
292
  - lib/krane/cli/krane.rb
278
293
  - lib/krane/cli/render_command.rb
279
294
  - lib/krane/cli/restart_command.rb
280
295
  - lib/krane/cli/run_command.rb
281
296
  - lib/krane/cli/version_command.rb
297
+ - lib/krane/cluster_resource_discovery.rb
298
+ - lib/krane/common.rb
299
+ - lib/krane/concerns/template_reporting.rb
300
+ - lib/krane/concurrency.rb
301
+ - lib/krane/container_logs.rb
302
+ - lib/krane/deferred_summary_logging.rb
303
+ - lib/krane/delayed_exceptions.rb
304
+ - lib/krane/deploy_task.rb
305
+ - lib/krane/deploy_task_config_validator.rb
306
+ - lib/krane/deprecated_deploy_task.rb
307
+ - lib/krane/duration_parser.rb
308
+ - lib/krane/ejson_secret_provisioner.rb
309
+ - lib/krane/errors.rb
310
+ - lib/krane/formatted_logger.rb
311
+ - lib/krane/global_deploy_task.rb
312
+ - lib/krane/global_deploy_task_config_validator.rb
313
+ - lib/krane/kubeclient_builder.rb
314
+ - lib/krane/kubectl.rb
315
+ - lib/krane/kubernetes_resource.rb
316
+ - lib/krane/kubernetes_resource/cloudsql.rb
317
+ - lib/krane/kubernetes_resource/config_map.rb
318
+ - lib/krane/kubernetes_resource/cron_job.rb
319
+ - lib/krane/kubernetes_resource/custom_resource.rb
320
+ - lib/krane/kubernetes_resource/custom_resource_definition.rb
321
+ - lib/krane/kubernetes_resource/daemon_set.rb
322
+ - lib/krane/kubernetes_resource/deployment.rb
323
+ - lib/krane/kubernetes_resource/horizontal_pod_autoscaler.rb
324
+ - lib/krane/kubernetes_resource/ingress.rb
325
+ - lib/krane/kubernetes_resource/job.rb
326
+ - lib/krane/kubernetes_resource/network_policy.rb
327
+ - lib/krane/kubernetes_resource/persistent_volume_claim.rb
328
+ - lib/krane/kubernetes_resource/pod.rb
329
+ - lib/krane/kubernetes_resource/pod_disruption_budget.rb
330
+ - lib/krane/kubernetes_resource/pod_set_base.rb
331
+ - lib/krane/kubernetes_resource/pod_template.rb
332
+ - lib/krane/kubernetes_resource/replica_set.rb
333
+ - lib/krane/kubernetes_resource/resource_quota.rb
334
+ - lib/krane/kubernetes_resource/role.rb
335
+ - lib/krane/kubernetes_resource/role_binding.rb
336
+ - lib/krane/kubernetes_resource/secret.rb
337
+ - lib/krane/kubernetes_resource/service.rb
338
+ - lib/krane/kubernetes_resource/service_account.rb
339
+ - lib/krane/kubernetes_resource/stateful_set.rb
340
+ - lib/krane/label_selector.rb
341
+ - lib/krane/oj.rb
342
+ - lib/krane/options_helper.rb
343
+ - lib/krane/remote_logs.rb
344
+ - lib/krane/render_task.rb
345
+ - lib/krane/renderer.rb
346
+ - lib/krane/resource_cache.rb
347
+ - lib/krane/resource_deployer.rb
348
+ - lib/krane/resource_watcher.rb
349
+ - lib/krane/restart_task.rb
350
+ - lib/krane/rollout_conditions.rb
351
+ - lib/krane/runner_task.rb
352
+ - lib/krane/runner_task_config_validator.rb
353
+ - lib/krane/statsd.rb
354
+ - lib/krane/task_config.rb
355
+ - lib/krane/task_config_validator.rb
356
+ - lib/krane/template_sets.rb
357
+ - lib/krane/version.rb
282
358
  - lib/kubernetes-deploy.rb
283
- - lib/kubernetes-deploy/bindings_parser.rb
284
- - lib/kubernetes-deploy/cluster_resource_discovery.rb
285
- - lib/kubernetes-deploy/common.rb
286
- - lib/kubernetes-deploy/concurrency.rb
287
- - lib/kubernetes-deploy/container_logs.rb
288
- - lib/kubernetes-deploy/deferred_summary_logging.rb
289
- - lib/kubernetes-deploy/delayed_exceptions.rb
290
359
  - lib/kubernetes-deploy/deploy_task.rb
291
- - lib/kubernetes-deploy/duration_parser.rb
292
- - lib/kubernetes-deploy/ejson_secret_provisioner.rb
293
360
  - lib/kubernetes-deploy/errors.rb
294
- - lib/kubernetes-deploy/formatted_logger.rb
295
- - lib/kubernetes-deploy/kubeclient_builder.rb
296
- - lib/kubernetes-deploy/kubectl.rb
297
- - lib/kubernetes-deploy/kubernetes_resource.rb
298
- - lib/kubernetes-deploy/kubernetes_resource/cloudsql.rb
299
- - lib/kubernetes-deploy/kubernetes_resource/config_map.rb
300
- - lib/kubernetes-deploy/kubernetes_resource/cron_job.rb
301
- - lib/kubernetes-deploy/kubernetes_resource/custom_resource.rb
302
- - lib/kubernetes-deploy/kubernetes_resource/custom_resource_definition.rb
303
- - lib/kubernetes-deploy/kubernetes_resource/daemon_set.rb
304
- - lib/kubernetes-deploy/kubernetes_resource/deployment.rb
305
- - lib/kubernetes-deploy/kubernetes_resource/horizontal_pod_autoscaler.rb
306
- - lib/kubernetes-deploy/kubernetes_resource/ingress.rb
307
- - lib/kubernetes-deploy/kubernetes_resource/job.rb
308
- - lib/kubernetes-deploy/kubernetes_resource/network_policy.rb
309
- - lib/kubernetes-deploy/kubernetes_resource/persistent_volume_claim.rb
310
- - lib/kubernetes-deploy/kubernetes_resource/pod.rb
311
- - lib/kubernetes-deploy/kubernetes_resource/pod_disruption_budget.rb
312
- - lib/kubernetes-deploy/kubernetes_resource/pod_set_base.rb
313
- - lib/kubernetes-deploy/kubernetes_resource/pod_template.rb
314
- - lib/kubernetes-deploy/kubernetes_resource/replica_set.rb
315
- - lib/kubernetes-deploy/kubernetes_resource/resource_quota.rb
316
- - lib/kubernetes-deploy/kubernetes_resource/role.rb
317
- - lib/kubernetes-deploy/kubernetes_resource/role_binding.rb
318
- - lib/kubernetes-deploy/kubernetes_resource/secret.rb
319
- - lib/kubernetes-deploy/kubernetes_resource/service.rb
320
- - lib/kubernetes-deploy/kubernetes_resource/service_account.rb
321
- - lib/kubernetes-deploy/kubernetes_resource/stateful_set.rb
322
- - lib/kubernetes-deploy/label_selector.rb
323
- - lib/kubernetes-deploy/oj.rb
324
- - lib/kubernetes-deploy/options_helper.rb
325
- - lib/kubernetes-deploy/remote_logs.rb
326
361
  - lib/kubernetes-deploy/render_task.rb
327
- - lib/kubernetes-deploy/renderer.rb
328
- - lib/kubernetes-deploy/resource_cache.rb
329
- - lib/kubernetes-deploy/resource_watcher.rb
362
+ - lib/kubernetes-deploy/rescue_krane_exceptions.rb
330
363
  - lib/kubernetes-deploy/restart_task.rb
331
- - lib/kubernetes-deploy/rollout_conditions.rb
332
364
  - lib/kubernetes-deploy/runner_task.rb
333
- - lib/kubernetes-deploy/runner_task_config_validator.rb
334
- - lib/kubernetes-deploy/statsd.rb
335
- - lib/kubernetes-deploy/task_config.rb
336
- - lib/kubernetes-deploy/task_config_validator.rb
337
- - lib/kubernetes-deploy/template_sets.rb
338
- - lib/kubernetes-deploy/version.rb
339
365
  - pull_request_template.md
340
366
  - screenshots/deploy-demo.gif
341
367
  - screenshots/migrate-logs.png
@@ -347,7 +373,7 @@ homepage: https://github.com/Shopify/kubernetes-deploy
347
373
  licenses:
348
374
  - MIT
349
375
  metadata: {}
350
- post_install_message:
376
+ post_install_message:
351
377
  rdoc_options: []
352
378
  require_paths:
353
379
  - lib
@@ -358,12 +384,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
358
384
  version: 2.4.0
359
385
  required_rubygems_version: !ruby/object:Gem::Requirement
360
386
  requirements:
361
- - - ">="
387
+ - - ">"
362
388
  - !ruby/object:Gem::Version
363
- version: '0'
389
+ version: 1.3.1
364
390
  requirements: []
365
- rubygems_version: 3.0.3
366
- signing_key:
391
+ rubygems_version: 3.0.2
392
+ signing_key:
367
393
  specification_version: 4
368
394
  summary: Kubernetes deploy scripts
369
395
  test_files: []
@@ -1,34 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module KubernetesDeploy
4
- class ClusterResourceDiscovery
5
- def initialize(namespace:, context:, logger:, namespace_tags:)
6
- @namespace = namespace
7
- @context = context
8
- @logger = logger
9
- @namespace_tags = namespace_tags
10
- end
11
-
12
- def crds
13
- @crds ||= fetch_crds.map do |cr_def|
14
- CustomResourceDefinition.new(namespace: @namespace, context: @context, logger: @logger,
15
- definition: cr_def, statsd_tags: @namespace_tags)
16
- end
17
- end
18
-
19
- private
20
-
21
- def fetch_crds
22
- raw_json, _, st = kubectl.run("get", "CustomResourceDefinition", output: "json", attempts: 5)
23
- if st.success?
24
- JSON.parse(raw_json)["items"]
25
- else
26
- []
27
- end
28
- end
29
-
30
- def kubectl
31
- @kubectl ||= Kubectl.new(namespace: @namespace, context: @context, logger: @logger, log_failure_by_default: true)
32
- end
33
- end
34
- end
@@ -1,54 +0,0 @@
1
- # frozen_string_literal: true
2
- require 'kubernetes-deploy/kubernetes_resource/pod_set_base'
3
- module KubernetesDeploy
4
- class DaemonSet < PodSetBase
5
- TIMEOUT = 5.minutes
6
- attr_reader :pods
7
-
8
- def sync(cache)
9
- super
10
- @pods = exists? ? find_pods(cache) : []
11
- end
12
-
13
- def status
14
- return super unless exists?
15
- rollout_data.map { |state_replicas, num| "#{num} #{state_replicas}" }.join(", ")
16
- end
17
-
18
- def deploy_succeeded?
19
- return false unless exists?
20
- rollout_data["desiredNumberScheduled"].to_i == rollout_data["updatedNumberScheduled"].to_i &&
21
- rollout_data["desiredNumberScheduled"].to_i == rollout_data["numberReady"].to_i &&
22
- current_generation == observed_generation
23
- end
24
-
25
- def deploy_failed?
26
- pods.present? && pods.any?(&:deploy_failed?) &&
27
- observed_generation == current_generation
28
- end
29
-
30
- def fetch_debug_logs
31
- most_useful_pod = pods.find(&:deploy_failed?) || pods.find(&:deploy_timed_out?) || pods.first
32
- most_useful_pod.fetch_debug_logs
33
- end
34
-
35
- def print_debug_logs?
36
- pods.present? # the kubectl command times out if no pods exist
37
- end
38
-
39
- private
40
-
41
- def rollout_data
42
- return { "currentNumberScheduled" => 0 } unless exists?
43
- @instance_data["status"]
44
- .slice("updatedNumberScheduled", "desiredNumberScheduled", "numberReady")
45
- end
46
-
47
- def parent_of_pod?(pod_data)
48
- return false unless pod_data.dig("metadata", "ownerReferences")
49
- pod_data["metadata"]["ownerReferences"].any? { |ref| ref["uid"] == @instance_data["metadata"]["uid"] } &&
50
- pod_data["metadata"]["labels"]["pod-template-generation"].to_i ==
51
- @instance_data["spec"]["templateGeneration"].to_i
52
- end
53
- end
54
- end
@@ -1,16 +0,0 @@
1
- # frozen_string_literal: true
2
- module KubernetesDeploy
3
- class TaskConfig
4
- attr_reader :context, :namespace
5
-
6
- def initialize(context, namespace, logger = nil)
7
- @context = context
8
- @namespace = namespace
9
- @logger = logger
10
- end
11
-
12
- def logger
13
- @logger ||= KubernetesDeploy::FormattedLogger.build(@namespace, @context)
14
- end
15
- end
16
- end
@@ -1,4 +0,0 @@
1
- # frozen_string_literal: true
2
- module KubernetesDeploy
3
- VERSION = "0.29.0"
4
- end