awes_cli 0.0.18 → 0.0.20.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 +4 -4
- data/lib/build_app_image.rb +1 -1
- data/lib/deploy_app.rb +15 -3
- data/lib/deploy_config.rb +15 -4
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3275174a80e5f3d18a32e2769363accdb03b48f536cf8d3d7996a0685749db23
|
4
|
+
data.tar.gz: ce31d146d9cbae8e71d5f804ead89707b9100f92cf3bcb4c694c1c19a4587257
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bc2acf535f5e01c844584be94b967e0936a420ab5b0094b025904d8c6cf58fc32caeac7b0e6b10df1477068a33a9d2ce2b804bad4c99bb2ce0d40484d8d0fda1
|
7
|
+
data.tar.gz: 7047d21562e67412e82e3dbb424ee840f73e024af7eaecc34b58154d74f6a94eb495d71ea85105da318322815a5bc1e52375ad6bfc0670a35aa6b89ea6da6ed9
|
data/lib/build_app_image.rb
CHANGED
data/lib/deploy_app.rb
CHANGED
@@ -2,11 +2,13 @@
|
|
2
2
|
require 'optparse'
|
3
3
|
|
4
4
|
class DeployApp
|
5
|
+
attr_accessor :workload_hash
|
6
|
+
|
5
7
|
def main
|
6
8
|
options = get_options
|
7
9
|
take_approval(options)
|
8
10
|
|
9
|
-
gcr_url = "gcr.io/#{options[:project_id]}/#{options[:image_repo] || options[:app_name]}"
|
11
|
+
gcr_url = "asia.gcr.io/#{options[:project_id]}/#{options[:image_repo] || options[:app_name]}"
|
10
12
|
|
11
13
|
if(!options[:image_tag].nil?)
|
12
14
|
image_url = validate_image_tag_exists?(gcr_url, options[:image_tag])
|
@@ -129,11 +131,21 @@ class DeployApp
|
|
129
131
|
"--project #{options[:project_id]} "
|
130
132
|
)
|
131
133
|
|
134
|
+
self.workload_hash = fetch_worload_yaml(options[:app_name], options[:namespace])
|
135
|
+
|
132
136
|
app_name = options[:app_name]
|
133
|
-
shell_cmd("kubectl set image
|
137
|
+
shell_cmd("kubectl set image #{workload_hash['kind']} #{app_name} #{app_name}=#{image_url} -n #{options[:namespace]}")
|
134
138
|
|
135
|
-
shell_cmd("kubectl rollout status
|
139
|
+
shell_cmd("kubectl rollout status #{workload_hash['kind']} #{app_name} -n #{options[:namespace]}")
|
136
140
|
|
137
141
|
shell_cmd("gcloud container images add-tag --quiet #{image_url} #{gcr_url}:current")
|
138
142
|
end
|
143
|
+
|
144
|
+
def fetch_worload_yaml(app_name, namespace)
|
145
|
+
json_deploy = `kubectl get deployment -n #{namespace} #{app_name} -o json`
|
146
|
+
return JSON.parse(json_deploy) if(json_deploy != "")
|
147
|
+
json_statefulset = `kubectl get statefulset -n #{namespace} #{app_name} -o json`
|
148
|
+
return JSON.parse(json_statefulset) if(json_statefulset != "")
|
149
|
+
throw "Workload does not exists "
|
150
|
+
end
|
139
151
|
end
|
data/lib/deploy_config.rb
CHANGED
@@ -6,6 +6,8 @@ require 'yaml'
|
|
6
6
|
require 'fileutils'
|
7
7
|
|
8
8
|
class DeployConfig
|
9
|
+
attr_accessor :workload_hash
|
10
|
+
|
9
11
|
def main
|
10
12
|
options = get_options
|
11
13
|
|
@@ -148,6 +150,8 @@ class DeployConfig
|
|
148
150
|
"--project #{options[:project_id]} "
|
149
151
|
)
|
150
152
|
|
153
|
+
self.workload_hash = fetch_worload_yaml(options[:app_name], options[:namespace])
|
154
|
+
|
151
155
|
spec = app_container_spec(options[:app_name], options[:namespace]) || {}
|
152
156
|
|
153
157
|
override_envs = override_envs(options)
|
@@ -162,11 +166,11 @@ class DeployConfig
|
|
162
166
|
yaml_file.gsub!(/\$#{env_key}\s*$/, "'#{env_val}'")
|
163
167
|
end
|
164
168
|
|
165
|
-
gcr_url = "gcr.io/#{options[:project_id]}/#{options[:image_repo] || options[:app_name]}"
|
169
|
+
gcr_url = "asia.gcr.io/#{options[:project_id]}/#{options[:image_repo] || options[:app_name]}"
|
166
170
|
opt_image_url = options[:image_tag] && "#{gcr_url}:#{options[:image_tag]}"
|
167
171
|
|
168
172
|
image_url = "#{gcr_url}:current"
|
169
|
-
|
173
|
+
image_url = spec[:image] if validate_image_tag_exists?(spec[:image])
|
170
174
|
image_url = opt_image_url if validate_image_tag_exists?(opt_image_url)
|
171
175
|
|
172
176
|
if !validate_image_tag_exists?(image_url)
|
@@ -183,7 +187,7 @@ class DeployConfig
|
|
183
187
|
|
184
188
|
shell_cmd("kubectl apply -f ./tmp/final.yaml")
|
185
189
|
|
186
|
-
shell_cmd("kubectl rollout status
|
190
|
+
shell_cmd("kubectl rollout status #{workload_hash['kind']}/#{options[:app_name]} -n #{options[:namespace]}")
|
187
191
|
end
|
188
192
|
|
189
193
|
def override_envs(options)
|
@@ -215,7 +219,7 @@ class DeployConfig
|
|
215
219
|
end
|
216
220
|
|
217
221
|
def app_container_spec(app_name, namespace)
|
218
|
-
deploy_containers = `kubectl get
|
222
|
+
deploy_containers = `kubectl get #{workload_hash['kind']} -n #{namespace} #{app_name} --output=jsonpath={.spec.template.spec.containers}`
|
219
223
|
return nil if deploy_containers == ''
|
220
224
|
JSON.parse(deploy_containers, symbolize_names: true).find { |container| container[:name] == app_name }
|
221
225
|
end
|
@@ -229,4 +233,11 @@ class DeployConfig
|
|
229
233
|
|
230
234
|
env_export_cmd
|
231
235
|
end
|
236
|
+
|
237
|
+
def fetch_worload_yaml(app_name, namespace)
|
238
|
+
json_deploy = `kubectl get deployment -n #{namespace} #{app_name} -o json`
|
239
|
+
return JSON.parse(json_deploy) if(json_deploy != "")
|
240
|
+
json_statefulset = `kubectl get statefulset -n #{namespace} #{app_name} -o json`
|
241
|
+
return JSON.parse(json_statefulset) if(json_statefulset != "")
|
242
|
+
end
|
232
243
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: awes_cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.20.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Umar Siddiqui
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-08-03 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Ather cli tool
|
14
14
|
email: umar.siddiqui@atherenergy.com
|