uffizzi-cli 2.0.34 → 2.0.36

Sign up to get free protection for your applications and to get access to all the features.
Files changed (132) hide show
  1. checksums.yaml +4 -4
  2. data/lib/uffizzi/cli/cluster.rb +34 -5
  3. data/lib/uffizzi/cli/common.rb +1 -1
  4. data/lib/uffizzi/cli/project/compose.rb +2 -0
  5. data/lib/uffizzi/helpers/config_helper.rb +17 -0
  6. data/lib/uffizzi/services/cluster/disconnect_service.rb +71 -0
  7. data/lib/uffizzi/services/kubeconfig_service.rb +33 -8
  8. data/lib/uffizzi/version.rb +1 -1
  9. data/man/uffizzi +53 -0
  10. data/man/uffizzi-account +29 -0
  11. data/man/uffizzi-account-list +26 -0
  12. data/man/uffizzi-account-list.html +103 -0
  13. data/man/uffizzi-account-list.ronn +19 -0
  14. data/man/uffizzi-account-set-default +29 -0
  15. data/man/uffizzi-account-set-default.html +105 -0
  16. data/man/uffizzi-account-set-default.ronn +22 -0
  17. data/man/uffizzi-account.html +106 -0
  18. data/man/uffizzi-account.ronn +23 -0
  19. data/man/uffizzi-cluster +37 -0
  20. data/man/uffizzi-cluster-create +49 -0
  21. data/man/uffizzi-cluster-create.ronn +41 -0
  22. data/man/uffizzi-cluster-delete +32 -0
  23. data/man/uffizzi-cluster-delete.ronn +24 -0
  24. data/man/uffizzi-cluster-describe +39 -0
  25. data/man/uffizzi-cluster-describe.ronn +30 -0
  26. data/man/uffizzi-cluster-disconnect +40 -0
  27. data/man/uffizzi-cluster-disconnect.ronn +32 -0
  28. data/man/uffizzi-cluster-list +34 -0
  29. data/man/uffizzi-cluster-list.ronn +26 -0
  30. data/man/uffizzi-cluster-update-kubeconfig +37 -0
  31. data/man/uffizzi-cluster-update-kubeconfig.ronn +29 -0
  32. data/man/uffizzi-cluster.ronn +32 -0
  33. data/man/uffizzi-compose +39 -0
  34. data/man/uffizzi-compose-create +67 -0
  35. data/man/uffizzi-compose-create.ronn +57 -0
  36. data/man/uffizzi-compose-delete +38 -0
  37. data/man/uffizzi-compose-delete.ronn +29 -0
  38. data/man/uffizzi-compose-describe +38 -0
  39. data/man/uffizzi-compose-describe.ronn +29 -0
  40. data/man/uffizzi-compose-events +38 -0
  41. data/man/uffizzi-compose-events.ronn +29 -0
  42. data/man/uffizzi-compose-list +58 -0
  43. data/man/uffizzi-compose-list.ronn +49 -0
  44. data/man/uffizzi-compose-service-list +42 -0
  45. data/man/uffizzi-compose-service-list.ronn +32 -0
  46. data/man/uffizzi-compose-service-logs +59 -0
  47. data/man/uffizzi-compose-service-logs.ronn +48 -0
  48. data/man/uffizzi-compose-update +61 -0
  49. data/man/uffizzi-compose-update.ronn +51 -0
  50. data/man/uffizzi-compose.ronn +33 -0
  51. data/man/uffizzi-compose_service_logs +59 -0
  52. data/man/uffizzi-compose_service_logs.ronn +50 -0
  53. data/man/uffizzi-config +65 -0
  54. data/man/uffizzi-config.ronn +55 -0
  55. data/man/uffizzi-connect +40 -0
  56. data/man/uffizzi-connect-acr +37 -0
  57. data/man/uffizzi-connect-acr.ronn +42 -0
  58. data/man/uffizzi-connect-docker-hub +34 -0
  59. data/man/uffizzi-connect-docker-hub.ronn +39 -0
  60. data/man/uffizzi-connect-docker-registry +37 -0
  61. data/man/uffizzi-connect-docker-registry.ronn +41 -0
  62. data/man/uffizzi-connect-ecr +37 -0
  63. data/man/uffizzi-connect-ecr.ronn +42 -0
  64. data/man/uffizzi-connect-gcr +31 -0
  65. data/man/uffizzi-connect-gcr.ronn +36 -0
  66. data/man/uffizzi-connect-ghcr +34 -0
  67. data/man/uffizzi-connect-ghcr.ronn +40 -0
  68. data/man/uffizzi-connect.ronn +45 -0
  69. data/man/uffizzi-disconnect +37 -0
  70. data/man/uffizzi-disconnect.ronn +31 -0
  71. data/man/uffizzi-login +51 -0
  72. data/man/uffizzi-login-by-identity-token +29 -0
  73. data/man/uffizzi-login-by-identity-token.html +106 -0
  74. data/man/uffizzi-login-by-identity-token.ronn +21 -0
  75. data/man/uffizzi-login.html +113 -0
  76. data/man/uffizzi-login.ronn +41 -0
  77. data/man/uffizzi-logout +21 -0
  78. data/man/uffizzi-logout.ronn +19 -0
  79. data/man/uffizzi-preview +39 -0
  80. data/man/uffizzi-preview-create +67 -0
  81. data/man/uffizzi-preview-create.ronn +57 -0
  82. data/man/uffizzi-preview-delete +38 -0
  83. data/man/uffizzi-preview-delete.ronn +29 -0
  84. data/man/uffizzi-preview-describe +38 -0
  85. data/man/uffizzi-preview-describe.ronn +29 -0
  86. data/man/uffizzi-preview-events +38 -0
  87. data/man/uffizzi-preview-events.ronn +29 -0
  88. data/man/uffizzi-preview-list +58 -0
  89. data/man/uffizzi-preview-list.ronn +49 -0
  90. data/man/uffizzi-preview-service-list +42 -0
  91. data/man/uffizzi-preview-service-list.ronn +32 -0
  92. data/man/uffizzi-preview-service-logs +59 -0
  93. data/man/uffizzi-preview-service-logs.ronn +48 -0
  94. data/man/uffizzi-preview-update +61 -0
  95. data/man/uffizzi-preview-update.ronn +51 -0
  96. data/man/uffizzi-preview.ronn +33 -0
  97. data/man/uffizzi-preview_service_logs +59 -0
  98. data/man/uffizzi-preview_service_logs.ronn +50 -0
  99. data/man/uffizzi-project +47 -0
  100. data/man/uffizzi-project-compose +40 -0
  101. data/man/uffizzi-project-compose-describe +37 -0
  102. data/man/uffizzi-project-compose-describe.ronn +29 -0
  103. data/man/uffizzi-project-compose-set +66 -0
  104. data/man/uffizzi-project-compose-set.ronn +57 -0
  105. data/man/uffizzi-project-compose-unset +35 -0
  106. data/man/uffizzi-project-compose-unset.ronn +27 -0
  107. data/man/uffizzi-project-compose.ronn +34 -0
  108. data/man/uffizzi-project-create +50 -0
  109. data/man/uffizzi-project-create.ronn +41 -0
  110. data/man/uffizzi-project-delete +32 -0
  111. data/man/uffizzi-project-delete.ronn +24 -0
  112. data/man/uffizzi-project-describe +43 -0
  113. data/man/uffizzi-project-describe.ronn +34 -0
  114. data/man/uffizzi-project-preview-describe +37 -0
  115. data/man/uffizzi-project-preview-describe.ronn +29 -0
  116. data/man/uffizzi-project-preview-set +66 -0
  117. data/man/uffizzi-project-preview-set.ronn +57 -0
  118. data/man/uffizzi-project-secret +37 -0
  119. data/man/uffizzi-project-secret-create +29 -0
  120. data/man/uffizzi-project-secret-create.ronn +21 -0
  121. data/man/uffizzi-project-secret-delete +29 -0
  122. data/man/uffizzi-project-secret-delete.ronn +21 -0
  123. data/man/uffizzi-project-secret-list +28 -0
  124. data/man/uffizzi-project-secret-list.ronn +20 -0
  125. data/man/uffizzi-project-secret.ronn +30 -0
  126. data/man/uffizzi-project-set-default +34 -0
  127. data/man/uffizzi-project-set-default.ronn +26 -0
  128. data/man/uffizzi-project.html +124 -0
  129. data/man/uffizzi-project.ronn +41 -0
  130. data/man/uffizzi.html +132 -0
  131. data/man/uffizzi.ronn +45 -0
  132. metadata +126 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 04306a581404e8f0a7e0c0f1c530cdd8a8edb18f2ae59d8bcef4f37e88f1172a
4
- data.tar.gz: 44c0464fdb788f7f436f224bd5ba9e60a8d793605a985baa724e01c99ff22765
3
+ metadata.gz: 72e1e0754278f9e3fc7069a15d1f7963c9aa578a67fdb7495d52f9d633bf1f71
4
+ data.tar.gz: a1cd9e4a84cba3b3827dfe0bb547ed4f3e734dc8cb9640603f5818937d0abee3
5
5
  SHA512:
6
- metadata.gz: be6c0aa55ad49d607262814c608fdc3ff917f4c4412498836764beaad6bb94429031c1baee33aaba39ca1e2b6e4923c2964a8e58ca47545ef1820ed9038a9e8f
7
- data.tar.gz: d5e9406c04408b403efc2f8adb7e6d934e2e08217ddd1f68f59208b38a15911e649677a9a71c3dc00fe0f8fa9f7afd538dc1b8124ecaf42a46aa62a627c27939
6
+ metadata.gz: f2c0a8c7a2c62cb5ae478f2a18c29a90ee4bdcc2c74b6177930510fc40f1032b2bb8d0e7f8e4947ee30760cc963776d32ac6dbb3e18710a784d2d3cbb4dff862
7
+ data.tar.gz: cbd873c5ef8ab6c8868ee518f34acbada4303f44ef0f30770c1d405ef13b443a9d5431f7593dee81522a6a9b2e1bc1722774f1cce6f20cd16797165391bb9534
@@ -9,6 +9,7 @@ require 'uffizzi/services/preview_service'
9
9
  require 'uffizzi/services/command_service'
10
10
  require 'uffizzi/services/cluster_service'
11
11
  require 'uffizzi/services/kubeconfig_service'
12
+ require 'uffizzi/services/cluster/disconnect_service'
12
13
 
13
14
  MANUAL = 'manual'
14
15
 
@@ -42,7 +43,7 @@ module Uffizzi
42
43
  end
43
44
 
44
45
  desc 'delete [NAME]', 'Delete a cluster'
45
- method_option :'delete-config', required: false, type: :boolean, aliases: '-dc'
46
+ method_option :'delete-config', required: false, type: :boolean, aliases: '-c'
46
47
  def delete(name)
47
48
  run('delete', cluster_name: name)
48
49
  end
@@ -55,6 +56,13 @@ module Uffizzi
55
56
  run('update-kubeconfig', cluster_name: name)
56
57
  end
57
58
 
59
+ method_option :kubeconfig, type: :string, aliases: '-k'
60
+ method_option :ask, type: :boolean
61
+ desc 'disconnect', 'Switch back to original kubeconfig current context'
62
+ def disconnect
63
+ run('disconnect')
64
+ end
65
+
58
66
  private
59
67
 
60
68
  def run(command, command_args = {})
@@ -75,6 +83,8 @@ module Uffizzi
75
83
  handle_delete_command(project_slug, command_args)
76
84
  when 'update-kubeconfig'
77
85
  handle_update_kubeconfig_command(project_slug, command_args)
86
+ when 'disconnect'
87
+ ClusterDisconnectService.handle(options)
78
88
  end
79
89
  end
80
90
 
@@ -191,8 +201,14 @@ module Uffizzi
191
201
 
192
202
  KubeconfigService.save_to_filepath(kubeconfig_path, parsed_kubeconfig) do |kubeconfig_by_path|
193
203
  merged_kubeconfig = KubeconfigService.merge(kubeconfig_by_path, parsed_kubeconfig)
194
- current_context = KubeconfigService.get_current_context(parsed_kubeconfig)
195
- KubeconfigService.update_current_context(merged_kubeconfig, current_context)
204
+ new_current_context = KubeconfigService.get_current_context(parsed_kubeconfig)
205
+ new_kubeconfig = KubeconfigService.update_current_context(merged_kubeconfig, new_current_context)
206
+
207
+ next new_kubeconfig if kubeconfig_by_path.nil?
208
+
209
+ previous_current_context = KubeconfigService.get_current_context(kubeconfig_by_path)
210
+ save_previous_current_context(kubeconfig_path, previous_current_context)
211
+ new_kubeconfig
196
212
  end
197
213
 
198
214
  update_clusters_config(cluster_data[:id], kubeconfig_path: kubeconfig_path)
@@ -319,8 +335,14 @@ module Uffizzi
319
335
  merged_kubeconfig = KubeconfigService.merge(kubeconfig_by_path, kubeconfig)
320
336
 
321
337
  if is_update_current_context
322
- current_context = KubeconfigService.get_current_context(kubeconfig)
323
- KubeconfigService.update_current_context(merged_kubeconfig, current_context)
338
+ new_current_context = KubeconfigService.get_current_context(kubeconfig)
339
+ new_kubeconfig = KubeconfigService.update_current_context(merged_kubeconfig, new_current_context)
340
+
341
+ next new_kubeconfig if kubeconfig_by_path.nil?
342
+
343
+ previous_current_context = KubeconfigService.get_current_context(kubeconfig_by_path)
344
+ save_previous_current_context(kubeconfig_path, previous_current_context)
345
+ new_kubeconfig
324
346
  else
325
347
  merged_kubeconfig
326
348
  end
@@ -359,5 +381,12 @@ module Uffizzi
359
381
  ResponseHelper.handle_failed_response(response)
360
382
  end
361
383
  end
384
+
385
+ def save_previous_current_context(kubeconfig_path, current_context)
386
+ return if kubeconfig_path.nil? || ConfigHelper.previous_current_context_by_path(kubeconfig_path).present?
387
+
388
+ previous_current_contexts = Uffizzi::ConfigHelper.set_previous_current_context_by_path(kubeconfig_path, current_context)
389
+ ConfigFile.write_option(:previous_current_contexts, previous_current_contexts)
390
+ end
362
391
  end
363
392
  end
@@ -4,7 +4,7 @@ module Uffizzi
4
4
  class Cli::Common
5
5
  class << self
6
6
  def show_manual(command_name)
7
- manual_doc_path = File.join(Uffizzi.root, "share/man/#{command_name}.ronn")
7
+ manual_doc_path = File.join(Uffizzi.root, "man/#{command_name}.ronn")
8
8
 
9
9
  Uffizzi.ui.say(File.read(manual_doc_path))
10
10
  end
@@ -79,6 +79,8 @@ module Uffizzi
79
79
  else
80
80
  ResponseHelper.handle_invalid_compose_response(response)
81
81
  end
82
+ elsif ResponseHelper.not_found?(response)
83
+ Uffizzi.ui.say('The project does not have a compose file set.')
82
84
  else
83
85
  ResponseHelper.handle_failed_response(response)
84
86
  end
@@ -39,11 +39,28 @@ module Uffizzi
39
39
  clusters.detect { |c| c[:id] == id }
40
40
  end
41
41
 
42
+ def set_previous_current_context_by_path(path, current_context)
43
+ current_contexts = previous_current_contexts_without(path)
44
+ current_contexts << { current_context: current_context, kubeconfig_path: path }
45
+ end
46
+
47
+ def previous_current_contexts_without(path)
48
+ cluster_previous_current_contexts.reject { |c| c[:kubeconfig_path] == path }
49
+ end
50
+
51
+ def previous_current_context_by_path(path)
52
+ cluster_previous_current_contexts.detect { |c| c[:kubeconfig_path] == path }
53
+ end
54
+
42
55
  private
43
56
 
44
57
  def clusters
45
58
  read_option_from_config(:clusters) || []
46
59
  end
60
+
61
+ def cluster_previous_current_contexts
62
+ read_option_from_config(:previous_current_contexts) || []
63
+ end
47
64
  end
48
65
  end
49
66
  end
@@ -0,0 +1,71 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'uffizzi/helpers/config_helper'
4
+ require 'uffizzi/services/cluster_service'
5
+ require 'uffizzi/services/kubeconfig_service'
6
+
7
+ class ClusterDisconnectService
8
+ class << self
9
+ def handle(options)
10
+ kubeconfig_path = options[:kubeconfig] || KubeconfigService.default_path
11
+ is_ask_origin_current_context = options[:ask]
12
+
13
+ prev_current_context = Uffizzi::ConfigHelper.previous_current_context_by_path(kubeconfig_path)&.fetch(:current_context, nil)
14
+ kubeconfig = KubeconfigService.read_kubeconfig(kubeconfig_path)
15
+
16
+ if kubeconfig.nil?
17
+ return Uffizzi.ui.say("Kubeconfig does not exist by path #{kubeconfig_path}")
18
+ end
19
+
20
+ contexts = KubeconfigService.get_cluster_contexts(kubeconfig)
21
+ current_context = KubeconfigService.get_current_context(kubeconfig)
22
+
23
+ if contexts.empty?
24
+ return Uffizzi.ui.say("No contexts by kubeconfig path #{kubeconfig_path}")
25
+ end
26
+
27
+ if KubeconfigService.find_cluster_contexts_by_name(kubeconfig, prev_current_context).present? &&
28
+ prev_current_context != current_context &&
29
+ !is_ask_origin_current_context
30
+ update_current_context_by_filepath(kubeconfig_path, prev_current_context)
31
+ say_success(prev_current_context, kubeconfig_path)
32
+ return
33
+ end
34
+
35
+ new_current_context = ask_context(contexts, current_context)
36
+ update_current_context_by_filepath(kubeconfig_path, new_current_context)
37
+ set_previous_current_context_to_config(kubeconfig_path, new_current_context)
38
+ say_success(new_current_context, kubeconfig_path)
39
+ end
40
+
41
+ private
42
+
43
+ def say_success(current_context, kubeconfig_path)
44
+ Uffizzi.ui.say("Now your current context is '#{current_context}' for kubeconfig path '#{kubeconfig_path}'")
45
+ end
46
+
47
+ def update_current_context_by_filepath(filepath, current_context)
48
+ KubeconfigService.save_to_filepath(filepath) do |kubeconfig|
49
+ KubeconfigService.update_current_context(kubeconfig, current_context)
50
+ end
51
+ end
52
+
53
+ def set_previous_current_context_to_config(kubeconfig_path, current_context)
54
+ previous_current_contexts = Uffizzi::ConfigHelper.set_previous_current_context_by_path(kubeconfig_path, current_context)
55
+ Uffizzi::ConfigFile.write_option(:previous_current_contexts, previous_current_contexts)
56
+ end
57
+
58
+ def ask_context(contexts, current_context)
59
+ context_names = contexts
60
+ .map { |c| { name: c['name'], value: c['name'] } }
61
+ .reject { |c| c[:value] == current_context }
62
+
63
+ if context_names.empty?
64
+ return Uffizzi.ui.say_error_and_exit('No other contexts')
65
+ end
66
+
67
+ question = 'Select origin context to switch on:'
68
+ Uffizzi.prompt.select(question, context_names)
69
+ end
70
+ end
71
+ end
@@ -41,15 +41,25 @@ class KubeconfigService
41
41
  end
42
42
 
43
43
  def get_first_context(kubeconfig)
44
- kubeconfig.fetch('contexts', [])[0]
44
+ get_cluster_contexts(kubeconfig)[0]
45
45
  end
46
46
 
47
47
  def get_current_cluster_name(kubeconfig)
48
- kubeconfig['contexts']
48
+ get_cluster_contexts(kubeconfig)
49
49
  .detect { |c| c['name'] == get_current_context(kubeconfig) }
50
50
  .dig('context', 'cluster')
51
51
  end
52
52
 
53
+ def get_cluster_contexts(kubeconfig)
54
+ kubeconfig.fetch('contexts', [])
55
+ end
56
+
57
+ def find_cluster_contexts_by_name(kubeconfig, context_name)
58
+ return if context_name.nil?
59
+
60
+ get_cluster_contexts(kubeconfig).detect { |c| c['name'] == context_name }
61
+ end
62
+
53
63
  def update_current_context(kubeconfig, current_context)
54
64
  new_kubeconfig = kubeconfig.deep_dup
55
65
  new_kubeconfig['current-context'] = current_context
@@ -57,9 +67,8 @@ class KubeconfigService
57
67
  new_kubeconfig
58
68
  end
59
69
 
60
- def save_to_filepath(filepath, kubeconfig)
61
- real_file_path = File.expand_path(filepath)
62
- target_kubeconfig = File.exist?(real_file_path) ? Psych.safe_load(File.read(real_file_path)) : nil
70
+ def save_to_filepath(filepath, kubeconfig = nil)
71
+ target_kubeconfig = read_kubeconfig(filepath)
63
72
 
64
73
  if target_kubeconfig.present? && !valid_kubeconfig?(target_kubeconfig)
65
74
  raise InvalidKubeconfigError.new(filepath)
@@ -68,15 +77,31 @@ class KubeconfigService
68
77
  new_kubeconfig = block_given? ? yield(target_kubeconfig) : kubeconfig
69
78
  return if new_kubeconfig.nil?
70
79
 
71
- dir_path = File.dirname(real_file_path)
72
- FileUtils.mkdir_p(dir_path) unless File.directory?(dir_path)
73
- File.write(real_file_path, new_kubeconfig.to_yaml)
80
+ write_kubeconfig(filepath, new_kubeconfig)
74
81
  end
75
82
 
76
83
  def default_path
77
84
  kubeconfig_env_path || Uffizzi.configuration.default_kubeconfig_path
78
85
  end
79
86
 
87
+ def read_kubeconfig(filepath)
88
+ real_file_path = File.expand_path(filepath)
89
+ kubeconfig = File.exist?(real_file_path) ? Psych.safe_load(File.read(real_file_path)) : nil
90
+
91
+ if kubeconfig.present? && !valid_kubeconfig?(kubeconfig)
92
+ raise InvalidKubeconfigError.new(filepath)
93
+ end
94
+
95
+ kubeconfig
96
+ end
97
+
98
+ def write_kubeconfig(filepath, kubeconfig)
99
+ real_file_path = File.expand_path(filepath)
100
+ dir_path = File.dirname(real_file_path)
101
+ FileUtils.mkdir_p(dir_path) unless File.directory?(dir_path)
102
+ File.write(real_file_path, kubeconfig.to_yaml)
103
+ end
104
+
80
105
  private
81
106
 
82
107
  def cluster_exists_in_kubeconfig?(kubeconfig, cluster_name)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Uffizzi
4
- VERSION = '2.0.34'
4
+ VERSION = '2.0.36'
5
5
  end
data/man/uffizzi ADDED
@@ -0,0 +1,53 @@
1
+ .\" generated with Ronn-NG/v0.9.1
2
+ .\" http://github.com/apjanke/ronn-ng/tree/0.9.1
3
+ .TH "UFFIZZI" "" "September 2023" ""
4
+ .SH "NAME"
5
+ \fBuffizzi\fR \- manage Uffizzi resources
6
+ .SH "SYNOPSIS"
7
+ .nf
8
+ uffizzi GROUP | COMMAND
9
+ .fi
10
+ .SH "DESCRIPTION"
11
+ .nf
12
+ The uffizzi CLI manages authentication, configuration, and
13
+ interaction with Uffizzi APIs\.
14
+
15
+ For more information on the uffizzi CLI, see:
16
+ https://docs\.uffizzi\.com/references/cli/
17
+ .fi
18
+ .SH "GROUP"
19
+ .nf
20
+ GROUP is one of the following:
21
+ cluster
22
+ Manage virtual clusters
23
+
24
+ config
25
+ Configure the uffizzi CLI
26
+
27
+ connect
28
+ Grant a Uffizzi user account access to external services
29
+
30
+ compose
31
+ Manage Uffizzi compose environments (previews) and view logs
32
+
33
+ project
34
+ Manage Uffizzi project resources including compose files for
35
+ specifying compose environment (preview) configurations and secrets
36
+ .fi
37
+ .SH "COMMAND"
38
+ .nf
39
+ COMMAND is one of the following:
40
+
41
+ help
42
+ Show uffizzi documentation
43
+
44
+ login
45
+ Log in to a Uffizzi user account
46
+
47
+ logout
48
+ Log out of a Uffizzi user account
49
+
50
+ version
51
+ Print version information for uffizzi CLI
52
+ .fi
53
+
@@ -0,0 +1,29 @@
1
+ .\" generated with Ronn-NG/v0.9.1
2
+ .\" http://github.com/apjanke/ronn-ng/tree/0.9.1
3
+ .TH "UFFIZZI\-ACCOUNT" "" "August 2023" ""
4
+ .SH "NAME"
5
+ \fBuffizzi\-account\fR \- manage Uffizzi accounts
6
+ .SH "SYNOPSIS"
7
+ .nf
8
+ uffizzi account COMMAND [UFFIZZI_WIDE_FLAG \|\.\|\.\|\.]
9
+ .fi
10
+ .SH "DESCRIPTION"
11
+ .nf
12
+ Manage Uffizzi accounts
13
+
14
+ For more information on Uffizzi accounts, see:
15
+ https://docs\.uffizzi\.com/references/cli/
16
+ .fi
17
+ .SH "COMMANDS"
18
+ .nf
19
+ COMMAND is one of the following:
20
+
21
+ list
22
+ List all accounts associated with the user\'s credentials
23
+
24
+ set\-default
25
+ Set the default account in the uffizzi configuration\. Also see
26
+ $ uffizzi config help for details\.
27
+ .fi
28
+ .P
29
+ Run $ uffizzi account COMMAND \-\-help for more information on a command\.
@@ -0,0 +1,26 @@
1
+ .\" generated with Ronn-NG/v0.9.1
2
+ .\" http://github.com/apjanke/ronn-ng/tree/0.9.1
3
+ .TH "UFFIZZI\-ACCOUNT\-LIST" "" "August 2023" ""
4
+ .SH "NAME"
5
+ \fBuffizzi\-account\-list\fR \- list the accounts of the user
6
+ .SH "SYNOPSIS"
7
+ .nf
8
+ uffizzi account list
9
+ .fi
10
+ .SH "DESCRIPTION"
11
+ .nf
12
+ This command lists all accounts (not projects) for the associated user
13
+
14
+ This command can fail for the following reasons:
15
+ \- The user is not authenticated
16
+
17
+ For more information on preview services, see:
18
+ https://docs\.uffizzi\.com/references/cli/
19
+ .fi
20
+ .SH "EXAMPLES"
21
+ .nf
22
+ The following command lists the user\'s accounts:
23
+
24
+ $ uffizzi account list
25
+ .fi
26
+
@@ -0,0 +1,103 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv='content-type' content='text/html;charset=utf8'>
5
+ <meta name='generator' content='Ronn-NG/v0.9.1 (http://github.com/apjanke/ronn-ng/tree/0.9.1)'>
6
+ <title>list the accounts of the user</title>
7
+ <style type='text/css' media='all'>
8
+ /* style: man */
9
+ body#manpage {margin:0}
10
+ .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
11
+ .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
12
+ .mp h2 {margin:10px 0 0 0}
13
+ .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
14
+ .mp h3 {margin:0 0 0 4ex}
15
+ .mp dt {margin:0;clear:left}
16
+ .mp dt.flush {float:left;width:8ex}
17
+ .mp dd {margin:0 0 0 9ex}
18
+ .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
19
+ .mp pre {margin-bottom:20px}
20
+ .mp pre+h2,.mp pre+h3 {margin-top:22px}
21
+ .mp h2+pre,.mp h3+pre {margin-top:5px}
22
+ .mp img {display:block;margin:auto}
23
+ .mp h1.man-title {display:none}
24
+ .mp,.mp code,.mp pre,.mp tt,.mp kbd,.mp samp,.mp h3,.mp h4 {font-family:monospace;font-size:14px;line-height:1.42857142857143}
25
+ .mp h2 {font-size:16px;line-height:1.25}
26
+ .mp h1 {font-size:20px;line-height:2}
27
+ .mp {text-align:justify;background:#fff}
28
+ .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
29
+ .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
30
+ .mp u {text-decoration:underline}
31
+ .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
32
+ .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
33
+ .mp a,.mp a:link,.mp a:hover,.mp a code,.mp a pre,.mp a tt,.mp a kbd,.mp a samp {color:#0000ff}
34
+ .mp b.man-ref {font-weight:normal;color:#434241}
35
+ .mp pre {padding:0 4ex}
36
+ .mp pre code {font-weight:normal;color:#434241}
37
+ .mp h2+pre,h3+pre {padding-left:0}
38
+ ol.man-decor,ol.man-decor li {margin:3px 0 10px 0;padding:0;float:left;width:33%;list-style-type:none;text-transform:uppercase;color:#999;letter-spacing:1px}
39
+ ol.man-decor {width:100%}
40
+ ol.man-decor li.tl {text-align:left}
41
+ ol.man-decor li.tc {text-align:center;letter-spacing:4px}
42
+ ol.man-decor li.tr {text-align:right;float:right}
43
+ </style>
44
+ </head>
45
+ <!--
46
+ The following styles are deprecated and will be removed at some point:
47
+ div#man, div#man ol.man, div#man ol.head, div#man ol.man.
48
+
49
+ The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
50
+ .man-navigation should be used instead.
51
+ -->
52
+ <body id='manpage'>
53
+ <div class='mp' id='man'>
54
+
55
+ <div class='man-navigation' style='display:none'>
56
+ <a href="#NAME">NAME</a>
57
+ <a href="#SYNOPSIS">SYNOPSIS</a>
58
+ <a href="#DESCRIPTION">DESCRIPTION</a>
59
+ <a href="#EXAMPLES">EXAMPLES</a>
60
+ </div>
61
+
62
+ <ol class='man-decor man-head man head'>
63
+ <li class='tl'>uffizzi-account-list</li>
64
+ <li class='tc'></li>
65
+ <li class='tr'>uffizzi-account-list</li>
66
+ </ol>
67
+
68
+
69
+
70
+ <h2 id="NAME">NAME</h2>
71
+ <p class="man-name">
72
+ <code>uffizzi-account-list</code> - <span class="man-whatis">list the accounts of the user</span>
73
+ </p>
74
+ <h2 id="SYNOPSIS">SYNOPSIS</h2>
75
+ <pre><code>uffizzi account list
76
+ </code></pre>
77
+
78
+ <h2 id="DESCRIPTION">DESCRIPTION</h2>
79
+ <pre><code>Shows a list of the container services that make up a given preview
80
+ deployment.
81
+
82
+ This command can fail for the following reasons:
83
+ - The user is not authenticated
84
+
85
+ For more information on preview services, see:
86
+ https://github.com/UffizziCloud/uffizzi_cli
87
+ </code></pre>
88
+
89
+ <h2 id="EXAMPLES">EXAMPLES</h2>
90
+ <pre><code>The following command lists the user's accounts:
91
+
92
+ $ uffizzi account list
93
+ </code></pre>
94
+
95
+ <ol class='man-decor man-foot man foot'>
96
+ <li class='tl'></li>
97
+ <li class='tc'>July 2023</li>
98
+ <li class='tr'>uffizzi-account-list</li>
99
+ </ol>
100
+
101
+ </div>
102
+ </body>
103
+ </html>
@@ -0,0 +1,19 @@
1
+ uffizzi-account-list - list the accounts of the user
2
+ ================================================================
3
+
4
+ ## SYNOPSIS
5
+ uffizzi account list
6
+
7
+ ## DESCRIPTION
8
+ This command lists all accounts (not projects) for the associated user
9
+
10
+ This command can fail for the following reasons:
11
+ - The user is not authenticated
12
+
13
+ For more information on preview services, see:
14
+ https://docs.uffizzi.com/references/cli/
15
+
16
+ ## EXAMPLES
17
+ The following command lists the user's accounts:
18
+
19
+ $ uffizzi account list
@@ -0,0 +1,29 @@
1
+ .\" generated with Ronn-NG/v0.9.1
2
+ .\" http://github.com/apjanke/ronn-ng/tree/0.9.1
3
+ .TH "UFFIZZI\-ACCOUNT\-SET\-DEFAULT" "" "August 2023" ""
4
+ .SH "NAME"
5
+ \fBuffizzi\-account\-set\-default\fR \- set the default account
6
+ .SH "SYNOPSIS"
7
+ .nf
8
+ uffizzi account set\-default ACCOUNT_NAME
9
+ .fi
10
+ .SH "DESCRIPTION"
11
+ .nf
12
+ This command sets the default account (project) for the uffizzi configuration\.
13
+ When set, all commands use this account as the default context unless
14
+ overridden by the \-\-project flag\.
15
+
16
+ This command can fail for the following reasons:
17
+ \- There is no account with the given account name
18
+
19
+ For more information on Uffizzi projects, see:
20
+ https://docs\.uffizzi\.com/references/cli/
21
+ .fi
22
+ .SH "EXAMPLES"
23
+ .nf
24
+ The following sets the default account with account name
25
+ example for the active account:
26
+
27
+ $ uffizzi account set\-default example
28
+ .fi
29
+
@@ -0,0 +1,105 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv='content-type' content='text/html;charset=utf8'>
5
+ <meta name='generator' content='Ronn-NG/v0.9.1 (http://github.com/apjanke/ronn-ng/tree/0.9.1)'>
6
+ <title>set the default account</title>
7
+ <style type='text/css' media='all'>
8
+ /* style: man */
9
+ body#manpage {margin:0}
10
+ .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
11
+ .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
12
+ .mp h2 {margin:10px 0 0 0}
13
+ .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
14
+ .mp h3 {margin:0 0 0 4ex}
15
+ .mp dt {margin:0;clear:left}
16
+ .mp dt.flush {float:left;width:8ex}
17
+ .mp dd {margin:0 0 0 9ex}
18
+ .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
19
+ .mp pre {margin-bottom:20px}
20
+ .mp pre+h2,.mp pre+h3 {margin-top:22px}
21
+ .mp h2+pre,.mp h3+pre {margin-top:5px}
22
+ .mp img {display:block;margin:auto}
23
+ .mp h1.man-title {display:none}
24
+ .mp,.mp code,.mp pre,.mp tt,.mp kbd,.mp samp,.mp h3,.mp h4 {font-family:monospace;font-size:14px;line-height:1.42857142857143}
25
+ .mp h2 {font-size:16px;line-height:1.25}
26
+ .mp h1 {font-size:20px;line-height:2}
27
+ .mp {text-align:justify;background:#fff}
28
+ .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
29
+ .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
30
+ .mp u {text-decoration:underline}
31
+ .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
32
+ .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
33
+ .mp a,.mp a:link,.mp a:hover,.mp a code,.mp a pre,.mp a tt,.mp a kbd,.mp a samp {color:#0000ff}
34
+ .mp b.man-ref {font-weight:normal;color:#434241}
35
+ .mp pre {padding:0 4ex}
36
+ .mp pre code {font-weight:normal;color:#434241}
37
+ .mp h2+pre,h3+pre {padding-left:0}
38
+ ol.man-decor,ol.man-decor li {margin:3px 0 10px 0;padding:0;float:left;width:33%;list-style-type:none;text-transform:uppercase;color:#999;letter-spacing:1px}
39
+ ol.man-decor {width:100%}
40
+ ol.man-decor li.tl {text-align:left}
41
+ ol.man-decor li.tc {text-align:center;letter-spacing:4px}
42
+ ol.man-decor li.tr {text-align:right;float:right}
43
+ </style>
44
+ </head>
45
+ <!--
46
+ The following styles are deprecated and will be removed at some point:
47
+ div#man, div#man ol.man, div#man ol.head, div#man ol.man.
48
+
49
+ The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
50
+ .man-navigation should be used instead.
51
+ -->
52
+ <body id='manpage'>
53
+ <div class='mp' id='man'>
54
+
55
+ <div class='man-navigation' style='display:none'>
56
+ <a href="#NAME">NAME</a>
57
+ <a href="#SYNOPSIS">SYNOPSIS</a>
58
+ <a href="#DESCRIPTION">DESCRIPTION</a>
59
+ <a href="#EXAMPLES">EXAMPLES</a>
60
+ </div>
61
+
62
+ <ol class='man-decor man-head man head'>
63
+ <li class='tl'>uffizzi-account-set-default</li>
64
+ <li class='tc'></li>
65
+ <li class='tr'>uffizzi-account-set-default</li>
66
+ </ol>
67
+
68
+
69
+
70
+ <h2 id="NAME">NAME</h2>
71
+ <p class="man-name">
72
+ <code>uffizzi-account-set-default</code> - <span class="man-whatis">set the default account</span>
73
+ </p>
74
+ <h2 id="SYNOPSIS">SYNOPSIS</h2>
75
+ <pre><code>uffizzi account set-default ACCOUNT_NAME
76
+ </code></pre>
77
+
78
+ <h2 id="DESCRIPTION">DESCRIPTION</h2>
79
+ <pre><code>Sets the default account given with the given account name. When set,
80
+ all commands use this account as the default context unless
81
+ overridden by the --project flag.
82
+
83
+ This command can fail for the following reasons:
84
+ - There is no account with the given account name
85
+
86
+ For more information on Uffizzi projects, see:
87
+ https://github.com/UffizziCloud/uffizzi_cli
88
+ </code></pre>
89
+
90
+ <h2 id="EXAMPLES">EXAMPLES</h2>
91
+ <pre><code>The following sets the default account with account name
92
+ example for the active account:
93
+
94
+ $ uffizzi account set-default example
95
+ </code></pre>
96
+
97
+ <ol class='man-decor man-foot man foot'>
98
+ <li class='tl'></li>
99
+ <li class='tc'>July 2023</li>
100
+ <li class='tr'>uffizzi-account-set-default</li>
101
+ </ol>
102
+
103
+ </div>
104
+ </body>
105
+ </html>