mina-kubernetes 3.0.1 → 3.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 76153150ae5d8361a350e922f80d085ccac26c5e2392221406c7274beed11f6d
4
- data.tar.gz: f48f99022032c0d4a439e669fd2bd871b65e8c3327b1dfb3539d793b7fb84c4d
3
+ metadata.gz: e4803de1f3f3decf1da5772d6ac1a9cbaa20810e722fc273e981071f57b219b7
4
+ data.tar.gz: 5b011e4604e76d94866888c5ab3676b740237d4cb5becf04e2a24f857c144960
5
5
  SHA512:
6
- metadata.gz: f225945b130d447d4c9a1796556cbe55608756d34e3ceed41e57eb0962b0e0cce826a2ccb625d76ce5d005c9c5b4c0a69c05dd2f632c1a6c1da204efafd8a1fc
7
- data.tar.gz: 4d63d35634985d8588a82d8ee6aeb9822aaf476d7a9a5cbc20a5190b9c4fe1cd751a413745c24cb26e9fec7a9d208fad373a874f00e300cd922ccb19ff625828
6
+ metadata.gz: 32284456c631a418eae7c04feca2d3ce5b059095012af00c90e5fd291002844f68aafdf919a6c435afb7c29ddc05c7f0c0f6527e71de0bfc945c43c13cf32bc6
7
+ data.tar.gz: c468d84b45f08bddad72937500f8e7054c87b5ee1d14dbc8b7d7ae903c96ae900330e6063b3f8250ba2bb1849bbe8debde463565d741db5bd31c155ad33b43b5
@@ -1,5 +1,5 @@
1
1
  module Mina
2
2
  module Kubernetes
3
- VERSION = "3.0.1"
3
+ VERSION = "3.1.0"
4
4
  end
5
5
  end
@@ -8,19 +8,26 @@ set :execution_mode, :pretty
8
8
 
9
9
  namespace :kubernetes do
10
10
  set :proxy, nil
11
+ set :skip_image_ready_check, false
11
12
 
12
13
  task :deploy, [:options] do |task, args|
13
14
  desc "Set image tag to be latest commit of prompted branch (unless provided) then applies resources to cluster"
14
15
  set_tag_from_branch_commit unless fetch(:image_tag)
15
- wait_until_image_ready(fetch(:image_tag))
16
+ wait_until_image_ready(fetch(:image_tag)) unless fetch(:skip_image_ready_check)
16
17
  create_namespace_on_cluster
17
18
  apply_kubernetes_resources(args[:options])
18
19
  end
19
20
 
21
+ task :global_deploy, [:options] do |task, args|
22
+ set_tag_from_branch_commit unless fetch(:image_tag)
23
+ wait_until_image_ready(fetch(:image_tag)) unless fetch(:skip_image_ready_check)
24
+ apply_global_kubernetes_resources(args[:options])
25
+ end
26
+
20
27
  task :bash do
21
28
  desc "Spins up temporary pod with image and opens remote interactive bash"
22
29
  set_tag_from_branch_commit unless fetch(:image_tag)
23
- wait_until_image_ready(fetch(:image_tag))
30
+ wait_until_image_ready(fetch(:image_tag)) unless fetch(:skip_image_ready_check)
24
31
  run_command("bash")
25
32
  end
26
33
 
@@ -118,7 +125,7 @@ def run_command(command, env_hash = {})
118
125
  when :replace
119
126
  system delete_command
120
127
  run :local do
121
- comment "Lauching Pod #{color(pod_name, 36)} to run #{color(command, 36)}"
128
+ comment "Launching Pod #{color(pod_name, 36)} to run #{color(command, 36)}"
122
129
  end
123
130
  wait_for_image_and_run_command("#{pod_run_command} -- #{command}")
124
131
  when :other
@@ -149,3 +156,21 @@ def apply_kubernetes_resources(options)
149
156
  command "#{render_cmd} | #{deploy_cmd}"
150
157
  end
151
158
  end
159
+
160
+ def apply_global_kubernetes_resources(options)
161
+ run :local do
162
+ comment "Applying all global Kubernetes resources..."
163
+
164
+ proxy_env = "HTTPS_PROXY=#{fetch(:proxy)}" if fetch(:proxy)
165
+ filepaths = options&.[](:filepaths) || "config/deploy/#{fetch(:stage)}"
166
+
167
+ render_cmd = "#{proxy_env} krane render --bindings=image_repo=#{fetch(:image_repo)},image_tag=#{fetch(:image_tag)},nzamespace=#{fetch(:namespace)} --current_sha #{fetch(:image_tag)} -f #{filepaths}"
168
+ deploy_cmd = "#{proxy_env} krane global-deploy #{fetch(:kubernetes_context)} --selector #{fetch(:global_deploy_selector_key)}=#{fetch(:global_deploy_selector_value)} --stdin "
169
+ deploy_cmd += options[:deployment_options] if options&.[](:deployment_options)
170
+
171
+ ejson_secrets_path = "#{filepaths}/secrets.ejson"
172
+ deploy_cmd += " --filenames #{ejson_secrets_path}" if File.exist?(ejson_secrets_path)
173
+
174
+ command "#{render_cmd} | #{deploy_cmd}"
175
+ end
176
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mina-kubernetes
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.1
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Antoine Sabourin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-05-11 00:00:00.000000000 Z
11
+ date: 2023-10-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -141,7 +141,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
141
141
  - !ruby/object:Gem::Version
142
142
  version: '0'
143
143
  requirements: []
144
- rubygems_version: 3.4.10
144
+ rubygems_version: 3.2.15
145
145
  signing_key:
146
146
  specification_version: 4
147
147
  summary: Mina plugin to streamline deployment of resources to Kubernetes cluster