uffizzi-cli 2.0.34 → 2.0.36

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.
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>