uffizzi-cli 2.0.36 → 2.0.37
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/uffizzi/auth_helper.rb +2 -0
- data/lib/uffizzi/cli/cluster.rb +21 -10
- data/lib/uffizzi/cli/login.rb +4 -4
- data/lib/uffizzi/cli.rb +2 -2
- data/lib/uffizzi/helpers/login_helper.rb +3 -2
- data/lib/uffizzi/services/cluster_service.rb +2 -1
- data/lib/uffizzi/version.rb +1 -1
- data/man/uffizzi-cluster-create +9 -6
- data/man/uffizzi-cluster-create.ronn +9 -6
- data/man/uffizzi-cluster-delete +7 -1
- data/man/uffizzi-cluster-delete.ronn +5 -0
- data/man/uffizzi-cluster-disconnect +2 -2
- 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: f2764a609f5446a2b7f1a11ac9ec37619b14f441278dd220142edbab2b106876
|
|
4
|
+
data.tar.gz: 5f7196a3c7ef61b8d67685d14ce806b7651c9141de0795cb09248455602fed48
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 741e72b2f9c8c20c6a1bd7631af35f55b321b785b5defb052ea98cd273df80edc31223527bf30bffd59f5f0f3c0269f771ca6473be61292e8b8e985414bd0a44
|
|
7
|
+
data.tar.gz: f3f0f3ab58fcda3b73d8ab178a79d79591f8a86e63ae7e5d78b70eb3e6188732fb7e65a3e664bb0ada2cb7d04a0cb4c51281857b2165a833d2baf193fcbf5ca2
|
data/lib/uffizzi/auth_helper.rb
CHANGED
data/lib/uffizzi/cli/cluster.rb
CHANGED
|
@@ -25,15 +25,15 @@ module Uffizzi
|
|
|
25
25
|
run('list')
|
|
26
26
|
end
|
|
27
27
|
|
|
28
|
-
desc 'create', 'Create a cluster'
|
|
28
|
+
desc 'create [NAME]', 'Create a cluster'
|
|
29
29
|
method_option :name, type: :string, required: false, aliases: '-n'
|
|
30
30
|
method_option :kubeconfig, type: :string, required: false, aliases: '-k'
|
|
31
31
|
method_option :manifest, type: :string, required: false, aliases: '-m'
|
|
32
|
-
method_option :'update-current-context', type: :boolean, required: false
|
|
32
|
+
method_option :'update-current-context', type: :boolean, required: false, default: true
|
|
33
33
|
method_option :output, required: false, type: :string, aliases: '-o', enum: ['json', 'pretty-json']
|
|
34
34
|
method_option :'creation-source', required: false, type: :string
|
|
35
|
-
def create
|
|
36
|
-
run('create')
|
|
35
|
+
def create(name = nil)
|
|
36
|
+
run('create', { name: name })
|
|
37
37
|
end
|
|
38
38
|
|
|
39
39
|
desc 'describe [NAME]', 'Describe a cluster'
|
|
@@ -43,7 +43,7 @@ module Uffizzi
|
|
|
43
43
|
end
|
|
44
44
|
|
|
45
45
|
desc 'delete [NAME]', 'Delete a cluster'
|
|
46
|
-
method_option :'delete-config', required: false, type: :boolean,
|
|
46
|
+
method_option :'delete-config', required: false, type: :boolean, default: true
|
|
47
47
|
def delete(name)
|
|
48
48
|
run('delete', cluster_name: name)
|
|
49
49
|
end
|
|
@@ -76,7 +76,7 @@ module Uffizzi
|
|
|
76
76
|
when 'list'
|
|
77
77
|
handle_list_command(project_slug)
|
|
78
78
|
when 'create'
|
|
79
|
-
handle_create_command(project_slug)
|
|
79
|
+
handle_create_command(project_slug, command_args)
|
|
80
80
|
when 'describe'
|
|
81
81
|
handle_describe_command(project_slug, command_args)
|
|
82
82
|
when 'delete'
|
|
@@ -104,9 +104,17 @@ module Uffizzi
|
|
|
104
104
|
end
|
|
105
105
|
end
|
|
106
106
|
|
|
107
|
-
|
|
107
|
+
# rubocop:disable Metrics/PerceivedComplexity
|
|
108
|
+
def handle_create_command(project_slug, command_args)
|
|
108
109
|
Uffizzi.ui.disable_stdout if Uffizzi.ui.output_format
|
|
109
|
-
|
|
110
|
+
|
|
111
|
+
if options[:name]
|
|
112
|
+
msg = 'DEPRECATION WARNING: The --name option is deprecated and will be removed in the newer versions.' \
|
|
113
|
+
' Please use a positional argument instead: uffizzi cluster create my-awesome-name'
|
|
114
|
+
Uffizzi.ui.say(msg)
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
cluster_name = command_args[:name] || options[:name] || ClusterService.generate_name
|
|
110
118
|
creation_source = options[:"creation-source"] || MANUAL
|
|
111
119
|
|
|
112
120
|
unless ClusterService.valid_name?(cluster_name)
|
|
@@ -133,6 +141,7 @@ module Uffizzi
|
|
|
133
141
|
rescue SystemExit, Interrupt, SocketError
|
|
134
142
|
handle_interrupt_creation(cluster_name, ConfigFile.read_option(:server), project_slug)
|
|
135
143
|
end
|
|
144
|
+
# rubocop:enable Metrics/PerceivedComplexity
|
|
136
145
|
|
|
137
146
|
def handle_describe_command(project_slug, command_args)
|
|
138
147
|
cluster_data = fetch_cluster_data(project_slug, command_args[:cluster_name])
|
|
@@ -150,7 +159,7 @@ module Uffizzi
|
|
|
150
159
|
kubeconfig = parse_kubeconfig(cluster_data[:kubeconfig])
|
|
151
160
|
|
|
152
161
|
handle_delete_cluster(project_slug, cluster_name)
|
|
153
|
-
exclude_kubeconfig(cluster_data[:id], kubeconfig)
|
|
162
|
+
exclude_kubeconfig(cluster_data[:id], kubeconfig) if kubeconfig.present?
|
|
154
163
|
end
|
|
155
164
|
|
|
156
165
|
def exclude_kubeconfig(cluster_id, kubeconfig)
|
|
@@ -308,7 +317,7 @@ module Uffizzi
|
|
|
308
317
|
end
|
|
309
318
|
|
|
310
319
|
def handle_succeed_create_response(cluster_data)
|
|
311
|
-
kubeconfig_path = options[:kubeconfig]
|
|
320
|
+
kubeconfig_path = options[:kubeconfig] || KubeconfigService.default_path
|
|
312
321
|
is_update_current_context = options[:'update-current-context']
|
|
313
322
|
parsed_kubeconfig = parse_kubeconfig(cluster_data[:kubeconfig])
|
|
314
323
|
rendered_cluster_data = render_cluster_data(cluster_data)
|
|
@@ -365,6 +374,8 @@ module Uffizzi
|
|
|
365
374
|
end
|
|
366
375
|
|
|
367
376
|
def parse_kubeconfig(kubeconfig)
|
|
377
|
+
return if kubeconfig.nil?
|
|
378
|
+
|
|
368
379
|
Psych.safe_load(Base64.decode64(kubeconfig))
|
|
369
380
|
end
|
|
370
381
|
|
data/lib/uffizzi/cli/login.rb
CHANGED
|
@@ -21,7 +21,7 @@ module Uffizzi
|
|
|
21
21
|
|
|
22
22
|
def run
|
|
23
23
|
AuthHelper.sign_out if AuthHelper.signed_in?
|
|
24
|
-
return perform_email_login
|
|
24
|
+
return perform_email_login unless @options[:email].nil?
|
|
25
25
|
|
|
26
26
|
perform_browser_login
|
|
27
27
|
end
|
|
@@ -45,7 +45,7 @@ module Uffizzi
|
|
|
45
45
|
def perform_browser_login
|
|
46
46
|
session_id = SecureRandom.uuid
|
|
47
47
|
response = create_access_token(@server, session_id)
|
|
48
|
-
return handle_failed_response(response) unless ResponseHelper.created?(response)
|
|
48
|
+
return ResponseHelper.handle_failed_response(response) unless ResponseHelper.created?(response)
|
|
49
49
|
|
|
50
50
|
url = browser_sign_in_url(@server, session_id)
|
|
51
51
|
open_browser(url)
|
|
@@ -68,7 +68,7 @@ module Uffizzi
|
|
|
68
68
|
token = response[:body][:access_token]
|
|
69
69
|
Uffizzi::Token.delete
|
|
70
70
|
Uffizzi::Token.write(token)
|
|
71
|
-
Uffizzi.ui.say('Login
|
|
71
|
+
Uffizzi.ui.say('Login successful')
|
|
72
72
|
|
|
73
73
|
set_current_account_and_project
|
|
74
74
|
end
|
|
@@ -84,7 +84,7 @@ module Uffizzi
|
|
|
84
84
|
ConfigFile.write_option(:server, @server)
|
|
85
85
|
ConfigFile.write_option(:username, username)
|
|
86
86
|
ConfigFile.write_option(:cookie, response[:headers])
|
|
87
|
-
Uffizzi.ui.say('Login
|
|
87
|
+
Uffizzi.ui.say('Login successful')
|
|
88
88
|
|
|
89
89
|
if ENV.fetch('CI_PIPELINE_RUN', false)
|
|
90
90
|
account = response[:body][:user][:default_account]
|
data/lib/uffizzi/cli.rb
CHANGED
|
@@ -19,7 +19,7 @@ module Uffizzi
|
|
|
19
19
|
desc 'login [OPTIONS]', 'Login to Uffizzi to view and manage your previews'
|
|
20
20
|
method_option :server, required: false, aliases: '-s'
|
|
21
21
|
method_option :username, required: false, aliases: '-u'
|
|
22
|
-
method_option :email, required: false, aliases: '-e'
|
|
22
|
+
method_option :email, required: false, aliases: '-e', lazy_default: ''
|
|
23
23
|
def login
|
|
24
24
|
require_relative 'cli/login'
|
|
25
25
|
Login.new(options).run
|
|
@@ -121,7 +121,7 @@ module Uffizzi
|
|
|
121
121
|
when Thor::Error
|
|
122
122
|
raise exception
|
|
123
123
|
when Interrupt
|
|
124
|
-
|
|
124
|
+
nil
|
|
125
125
|
when StandardError
|
|
126
126
|
raise Uffizzi::CliError.new(exception.message)
|
|
127
127
|
else
|
|
@@ -16,13 +16,14 @@ module Uffizzi
|
|
|
16
16
|
|
|
17
17
|
def set_server(options)
|
|
18
18
|
config_server = ConfigFile.exists? ? Uffizzi::ConfigHelper.read_option_from_config(:server) : nil
|
|
19
|
-
server_address =
|
|
19
|
+
server_address = options[:server] || config_server || Uffizzi.configuration.default_server.to_s
|
|
20
20
|
server_address.start_with?('http:', 'https:') ? server_address : "https://#{server_address}"
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
def set_username(options)
|
|
24
24
|
config_username = ConfigFile.exists? ? Uffizzi::ConfigHelper.read_option_from_config(:username) : nil
|
|
25
|
-
options[:
|
|
25
|
+
options_username = options[:email].present? ? options[:email] : nil
|
|
26
|
+
options_username || config_username || Uffizzi.ui.ask('Username:')
|
|
26
27
|
end
|
|
27
28
|
|
|
28
29
|
def set_password
|
|
@@ -8,6 +8,7 @@ class ClusterService
|
|
|
8
8
|
CLUSTER_STATE_DEPLOYED = 'deployed'
|
|
9
9
|
CLUSTER_STATE_FAILED_DEPLOY_NAMESPACE = 'failed_deploy_namespace'
|
|
10
10
|
CLUSTER_STATE_FAILED = 'failed'
|
|
11
|
+
CLUSTER_NAME_MAX_LENGTH = 15
|
|
11
12
|
|
|
12
13
|
class << self
|
|
13
14
|
include ApiClient
|
|
@@ -42,7 +43,7 @@ class ClusterService
|
|
|
42
43
|
end
|
|
43
44
|
|
|
44
45
|
def generate_name
|
|
45
|
-
name =
|
|
46
|
+
name = Faker::Internet.domain_word[0..CLUSTER_NAME_MAX_LENGTH]
|
|
46
47
|
|
|
47
48
|
return name if valid_name?(name)
|
|
48
49
|
|
data/lib/uffizzi/version.rb
CHANGED
data/man/uffizzi-cluster-create
CHANGED
|
@@ -5,19 +5,21 @@
|
|
|
5
5
|
\fBuffizzi\-cluster\-create\fR \- create a cluster
|
|
6
6
|
.SH "SYNOPSIS"
|
|
7
7
|
.nf
|
|
8
|
-
uffizzi cluster create
|
|
8
|
+
uffizzi cluster create [CLUSTER_NAME]
|
|
9
9
|
.fi
|
|
10
10
|
.SH "DESCRIPTION"
|
|
11
11
|
.nf
|
|
12
|
-
Creates a new cluster\.
|
|
12
|
+
Creates a new cluster\. If no CLUSTER_NAME is specified,
|
|
13
|
+
the cluster is created with the auto generated name\.
|
|
13
14
|
|
|
14
15
|
For more information on Uffizzi clusters, see:
|
|
15
16
|
https://docs\.uffizzi\.com/references/cli/
|
|
16
17
|
.fi
|
|
17
18
|
.SH "FLAGS"
|
|
18
19
|
.nf
|
|
19
|
-
\-\-name
|
|
20
|
-
|
|
20
|
+
\-\- name
|
|
21
|
+
Option is deprecated and will be removed in the newer versions\.
|
|
22
|
+
Please use a positional argument instead: uffizzi cluster create my\-awesome\-name\.
|
|
21
23
|
|
|
22
24
|
\-\-kubeconfig="/path/to/your/kubeconfig"
|
|
23
25
|
Path to kubeconfig file
|
|
@@ -27,6 +29,7 @@ https://docs\.uffizzi\.com/references/cli/
|
|
|
27
29
|
|
|
28
30
|
\-\-update\-current\-context
|
|
29
31
|
Update current\-context in kubeconfig file
|
|
32
|
+
Default is true
|
|
30
33
|
|
|
31
34
|
\-\-output=pretty\-json
|
|
32
35
|
\-\-output=json
|
|
@@ -40,10 +43,10 @@ To create a cluster with the auto generated name, run:
|
|
|
40
43
|
|
|
41
44
|
To create a cluster with name, run:
|
|
42
45
|
|
|
43
|
-
$ uffizzi cluster create
|
|
46
|
+
$ uffizzi cluster create my\-cluster
|
|
44
47
|
|
|
45
48
|
To create a cluster from a manifests directory, run:
|
|
46
49
|
|
|
47
|
-
$ uffizzi cluster create
|
|
50
|
+
$ uffizzi cluster create my\-cluster \-\-manifest=manifests/
|
|
48
51
|
.fi
|
|
49
52
|
|
|
@@ -2,17 +2,19 @@ uffizzi-cluster-create - create a cluster
|
|
|
2
2
|
================================================================
|
|
3
3
|
|
|
4
4
|
## SYNOPSIS
|
|
5
|
-
uffizzi cluster create
|
|
5
|
+
uffizzi cluster create [CLUSTER_NAME]
|
|
6
6
|
|
|
7
7
|
## DESCRIPTION
|
|
8
|
-
Creates a new cluster.
|
|
8
|
+
Creates a new cluster. If no CLUSTER_NAME is specified,
|
|
9
|
+
the cluster is created with the auto generated name.
|
|
9
10
|
|
|
10
11
|
For more information on Uffizzi clusters, see:
|
|
11
12
|
https://docs.uffizzi.com/references/cli/
|
|
12
13
|
|
|
13
14
|
## FLAGS
|
|
14
|
-
--name
|
|
15
|
-
|
|
15
|
+
--name
|
|
16
|
+
Option is deprecated and will be removed in the newer versions.
|
|
17
|
+
Please use a positional argument instead: uffizzi cluster create my-awesome-name.
|
|
16
18
|
|
|
17
19
|
--kubeconfig="/path/to/your/kubeconfig"
|
|
18
20
|
Path to kubeconfig file
|
|
@@ -22,6 +24,7 @@ uffizzi-cluster-create - create a cluster
|
|
|
22
24
|
|
|
23
25
|
--update-current-context
|
|
24
26
|
Update current-context in kubeconfig file
|
|
27
|
+
Default is true
|
|
25
28
|
|
|
26
29
|
--output=pretty-json
|
|
27
30
|
--output=json
|
|
@@ -34,8 +37,8 @@ uffizzi-cluster-create - create a cluster
|
|
|
34
37
|
|
|
35
38
|
To create a cluster with name, run:
|
|
36
39
|
|
|
37
|
-
$ uffizzi cluster create
|
|
40
|
+
$ uffizzi cluster create my-cluster
|
|
38
41
|
|
|
39
42
|
To create a cluster from a manifests directory, run:
|
|
40
43
|
|
|
41
|
-
$ uffizzi cluster create
|
|
44
|
+
$ uffizzi cluster create my-cluster --manifest=manifests/
|
data/man/uffizzi-cluster-delete
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.\" generated with Ronn-NG/v0.9.1
|
|
2
2
|
.\" http://github.com/apjanke/ronn-ng/tree/0.9.1
|
|
3
|
-
.TH "UFFIZZI\-CLUSTER\-DELETE" "" "
|
|
3
|
+
.TH "UFFIZZI\-CLUSTER\-DELETE" "" "September 2023" ""
|
|
4
4
|
.SH "NAME"
|
|
5
5
|
\fBuffizzi\-cluster\-delete\fR \- delete a cluster
|
|
6
6
|
.SH "SYNOPSIS"
|
|
@@ -23,6 +23,12 @@ https://docs\.uffizzi\.com/references/cli/
|
|
|
23
23
|
[CLUSTER_NAME]
|
|
24
24
|
Name for the cluster you want to delete\.
|
|
25
25
|
.fi
|
|
26
|
+
.SH "FLAGS"
|
|
27
|
+
.nf
|
|
28
|
+
\-\-delete\-config=false
|
|
29
|
+
Delete cluster from kubeconfig\.
|
|
30
|
+
Default is true\.
|
|
31
|
+
.fi
|
|
26
32
|
.SH "EXAMPLES"
|
|
27
33
|
.nf
|
|
28
34
|
The following command deletes the cluster with CLUSTER_NAME my\-cluster:
|
|
@@ -18,6 +18,11 @@ uffizzi-cluster-delete - delete a cluster
|
|
|
18
18
|
[CLUSTER_NAME]
|
|
19
19
|
Name for the cluster you want to delete.
|
|
20
20
|
|
|
21
|
+
## FLAGS
|
|
22
|
+
--delete-config=false
|
|
23
|
+
Delete cluster from kubeconfig.
|
|
24
|
+
Default is true.
|
|
25
|
+
|
|
21
26
|
## EXAMPLES
|
|
22
27
|
The following command deletes the cluster with CLUSTER_NAME my-cluster:
|
|
23
28
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
.\" http://github.com/apjanke/ronn-ng/tree/0.9.1
|
|
3
3
|
.TH "UFFIZZI\-CLUSTER\-DISCONNECT" "" "September 2023" ""
|
|
4
4
|
.SH "NAME"
|
|
5
|
-
\fBuffizzi\-cluster\-disconnect\fR \- disconnect from current cluster
|
|
5
|
+
\fBuffizzi\-cluster\-disconnect\fR \- disconnect from current cluster context
|
|
6
6
|
.SH "SYNOPSIS"
|
|
7
7
|
.nf
|
|
8
8
|
uffizzi cluster disconnect
|
|
@@ -17,7 +17,7 @@ https://docs\.uffizzi\.com/references/cli/
|
|
|
17
17
|
.SH "FLAGS"
|
|
18
18
|
.nf
|
|
19
19
|
\-\-ask
|
|
20
|
-
Show list available contexts for kubeconfig
|
|
20
|
+
Show list available contexts for kubeconfig and set new origin current context
|
|
21
21
|
|
|
22
22
|
\-\-kubeconfig="/path/to/your/kubeconfig"
|
|
23
23
|
Path to kubeconfig file
|
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.0.
|
|
4
|
+
version: 2.0.37
|
|
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: 2023-09-
|
|
12
|
+
date: 2023-09-19 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: activesupport
|