uffizzi-cli 2.4.9 → 2.4.11
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 30f7c016d8af15ece13fcf170ef4b0cb244aba87837567b042e4d2d2cfba9512
|
4
|
+
data.tar.gz: 17ecf2ed0ba109eb515ad05695b92d0bccfe7ac535bd923e14d091ddc5feb814
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6482ab9cf846b47402a332de11f054c0c845efa472cf754e627c0b767c2926f5f9e5ffcbf604f34ccaa562fd551124c777e572b28a298cf96982d9cf7f0446c0
|
7
|
+
data.tar.gz: 685212d7f1102ed76976a330499e9ada8e0f9cf2e61a58fd01b65f240d2af66ac27f128c20bdc01d8b0dae06f014f947a7db2dd633481bce7471db616e43b6ee
|
data/lib/uffizzi/cli/install.rb
CHANGED
@@ -20,9 +20,10 @@ module Uffizzi
|
|
20
20
|
method_option :'node-selector-template', required: false, type: :string
|
21
21
|
def controller(hostname)
|
22
22
|
Uffizzi::AuthHelper.check_login
|
23
|
+
check_account_can_install
|
23
24
|
|
24
|
-
|
25
|
-
|
25
|
+
InstallService.kubectl_exists?
|
26
|
+
InstallService.helm_exists?
|
26
27
|
|
27
28
|
if options[:context].present? && options[:context] != InstallService.kubeconfig_current_context
|
28
29
|
InstallService.set_current_context(options[:context])
|
@@ -71,16 +72,16 @@ module Uffizzi
|
|
71
72
|
}
|
72
73
|
end
|
73
74
|
|
74
|
-
def
|
75
|
+
def wait_endpoint
|
75
76
|
spinner = TTY::Spinner.new('[:spinner] Waiting on IP address...', format: :dots)
|
76
77
|
spinner.auto_spin
|
77
78
|
|
78
|
-
|
79
|
+
endpoint = nil
|
79
80
|
try = 0
|
80
81
|
|
81
82
|
loop do
|
82
|
-
|
83
|
-
break if
|
83
|
+
endpoint = InstallService.get_controller_endpoint(namespace)
|
84
|
+
break if endpoint.present?
|
84
85
|
|
85
86
|
if try == 90
|
86
87
|
spinner.error
|
@@ -94,7 +95,7 @@ module Uffizzi
|
|
94
95
|
|
95
96
|
spinner.success
|
96
97
|
|
97
|
-
|
98
|
+
endpoint
|
98
99
|
end
|
99
100
|
|
100
101
|
def build_helm_values(params)
|
@@ -182,7 +183,18 @@ module Uffizzi
|
|
182
183
|
|
183
184
|
def create_controller_settings(params)
|
184
185
|
response = create_account_controller_settings(server, account_id, params)
|
185
|
-
|
186
|
+
unless Uffizzi::ResponseHelper.created?(response)
|
187
|
+
Uffizzi::ResponseHelper.handle_failed_response(response)
|
188
|
+
raise Uffizzi::Error.new
|
189
|
+
end
|
190
|
+
end
|
191
|
+
|
192
|
+
def check_account_can_install
|
193
|
+
response = check_can_install(server, account_id)
|
194
|
+
unless Uffizzi::ResponseHelper.ok?(response)
|
195
|
+
Uffizzi::ResponseHelper.handle_failed_response(response)
|
196
|
+
raise Uffizzi::Error.new
|
197
|
+
end
|
186
198
|
end
|
187
199
|
|
188
200
|
def build_controller_setting_params(uri, installation_options)
|
@@ -196,10 +208,10 @@ module Uffizzi
|
|
196
208
|
end
|
197
209
|
|
198
210
|
def say_success(uri)
|
199
|
-
|
211
|
+
endpoint = wait_endpoint
|
200
212
|
|
201
213
|
msg = 'Your Uffizzi controller is ready. To configure DNS,'\
|
202
|
-
" create a record for the hostname '*.#{uri.host}' pointing to '#{
|
214
|
+
" create a record for the hostname '*.#{uri.host}' pointing to '#{endpoint}'"
|
203
215
|
Uffizzi.ui.say(msg)
|
204
216
|
end
|
205
217
|
|
@@ -44,6 +44,14 @@ module ApiClient
|
|
44
44
|
build_response(response)
|
45
45
|
end
|
46
46
|
|
47
|
+
def check_can_install(server, account_id)
|
48
|
+
uri = account_can_install_uri(server, account_id)
|
49
|
+
|
50
|
+
response = http_client.make_get_request(uri)
|
51
|
+
|
52
|
+
build_response(response)
|
53
|
+
end
|
54
|
+
|
47
55
|
def fetch_projects(server)
|
48
56
|
uri = projects_uri(server)
|
49
57
|
response = http_client.make_get_request(uri)
|
@@ -11,6 +11,10 @@ module ApiRoutes
|
|
11
11
|
"#{server}/api/cli/v1/accounts/#{account_name}"
|
12
12
|
end
|
13
13
|
|
14
|
+
def account_can_install_uri(server, account_id)
|
15
|
+
"#{server}/api/cli/v1/accounts/#{account_id}/check_can_install"
|
16
|
+
end
|
17
|
+
|
14
18
|
def compose_file_uri(server, project_slug)
|
15
19
|
"#{server}/api/cli/v1/projects/#{project_slug}/compose_file"
|
16
20
|
end
|
@@ -85,7 +85,7 @@ class InstallService
|
|
85
85
|
execute_command(cmd, say: false) { |stdout| stdout.present? && stdout.chop }
|
86
86
|
end
|
87
87
|
|
88
|
-
def
|
88
|
+
def get_controller_endpoint(namespace)
|
89
89
|
cmd = "kubectl get ingress -n #{namespace} -o json"
|
90
90
|
res = execute_command(cmd, say: false)
|
91
91
|
ingress = JSON.parse(res)['items'].detect { |i| i['metadata']['name'] = INGRESS_NAME }
|
@@ -95,7 +95,10 @@ class InstallService
|
|
95
95
|
load_balancers = ingress.dig('status', 'loadBalancer', 'ingress')
|
96
96
|
return if load_balancers.blank?
|
97
97
|
|
98
|
-
load_balancers.map { |i| i['ip'] }[0]
|
98
|
+
ip = load_balancers.map { |i| i['ip'] }[0]
|
99
|
+
return ip if ip.present?
|
100
|
+
|
101
|
+
load_balancers.map { |i| i['hostname'] }[0]
|
99
102
|
end
|
100
103
|
|
101
104
|
def build_controller_host(host)
|
data/lib/uffizzi/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: uffizzi-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.4.
|
4
|
+
version: 2.4.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Josh Thurman
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2024-
|
12
|
+
date: 2024-08-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|