uffizzi-cli 2.1.2 → 2.1.4

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: 53375ab753d707ea69a899c201838dcc0874a185185532b64f3a3cb8b07720fa
4
- data.tar.gz: 177486674f4ba6f11935536cd538ddc6e587ba5a330b738196f082b8fff96c3a
3
+ metadata.gz: 2cd0af3bb51a08a6c011cf4271fc886586fbb262af3419aeaa02c32aa97dc29d
4
+ data.tar.gz: 3f588da373233552310f0490d8e0384acdd2cce6598cb3e2dc3d8435ebda2eab
5
5
  SHA512:
6
- metadata.gz: 7278e21c0ce0a61da3403a874d7ce1e1d9771fd9f45867e4fdf126840fb4ddbc0e86c037be58a3bd9d0311631a819081361c4626c78cf11fdab3e6c89380fee6
7
- data.tar.gz: 3d09264798892e9c97074d073940922bb2e7703941496bc5a77c6ba555ba6de3e275c3151b7dbd480d9e7b6be6f350ea1e939898c33b2bcfc8e64b8f562d6193
6
+ metadata.gz: 2d821267fb032b76f69cf03a2d0e08318e46b87fc8ac2084550a293dbd18591b16c10a48abf5efd82ffff9288edfda9105e00f6db979eb06424c7f68a80c5b56
7
+ data.tar.gz: 3981689282eb4c43ce6bdd2281252cef925d609f879d73aeed3754cbf5b39c983d7927394ba81e1127db00ff372cbe6d8dec5ec2e092ccf28dfb9b4ec9e73bfd
@@ -4,7 +4,7 @@ module Uffizzi
4
4
  module AuthHelper
5
5
  class << self
6
6
  def signed_in?
7
- config_data_exists? || Uffizzi::Token.exists?
7
+ config_data_exists? && authorized?
8
8
  end
9
9
 
10
10
  def sign_out
@@ -16,13 +16,25 @@ module Uffizzi
16
16
  Uffizzi::Token.delete if Uffizzi::Token.exists?
17
17
  end
18
18
 
19
+ def check_login(project_option)
20
+ raise Uffizzi::Error.new('You are not logged in. Run `uffizzi login`.') unless signed_in?
21
+ raise Uffizzi::Error.new('This command needs project to be set in config file') unless project_set?(project_option)
22
+ end
23
+
19
24
  private
20
25
 
21
26
  def config_data_exists?
22
27
  ConfigFile.exists? &&
23
- ConfigFile.option_has_value?(:account) &&
24
- ConfigFile.option_has_value?(:cookie) &&
25
- ConfigFile.option_has_value?(:server)
28
+ ConfigFile.option_has_value?(:server) &&
29
+ ConfigFile.option_has_value?(:account)
30
+ end
31
+
32
+ def authorized?
33
+ ConfigFile.option_has_value?(:cookie) || Uffizzi::Token.exists?
34
+ end
35
+
36
+ def project_set?(project_option)
37
+ !project_option.nil? || (Uffizzi::ConfigFile.exists? && Uffizzi::ConfigFile.option_has_value?(:project))
26
38
  end
27
39
  end
28
40
  end
@@ -25,7 +25,7 @@ module Uffizzi
25
25
  private
26
26
 
27
27
  def run(command, account_name = nil)
28
- return Uffizzi.ui.say('You are not logged in.') unless Uffizzi::AuthHelper.signed_in?
28
+ raise Uffizzi::Error.new('You are not logged in. Run `uffizzi login`.') unless Uffizzi::AuthHelper.signed_in?
29
29
 
30
30
  case command
31
31
  when 'list'
@@ -6,7 +6,6 @@ require 'uffizzi'
6
6
  require 'uffizzi/auth_helper'
7
7
  require 'uffizzi/helpers/config_helper'
8
8
  require 'uffizzi/services/preview_service'
9
- require 'uffizzi/services/command_service'
10
9
  require 'uffizzi/services/cluster_service'
11
10
  require 'uffizzi/services/kubeconfig_service'
12
11
  require 'uffizzi/services/cluster/disconnect_service'
@@ -30,6 +29,7 @@ module Uffizzi
30
29
  method_option :'update-current-context', type: :boolean, required: false, default: true
31
30
  method_option :output, required: false, type: :string, aliases: '-o', enum: ['json', 'pretty-json']
32
31
  method_option :'creation-source', required: false, type: :string
32
+ method_option :'k8s-version', required: false, type: :string
33
33
  def create(name = nil)
34
34
  run('create', { name: name })
35
35
  end
@@ -65,9 +65,7 @@ module Uffizzi
65
65
 
66
66
  def run(command, command_args = {})
67
67
  Uffizzi.ui.output_format = options[:output]
68
- raise Uffizzi::Error.new('You are not logged in.') unless Uffizzi::AuthHelper.signed_in?
69
- raise Uffizzi::Error.new('This command needs project to be set in config file') unless CommandService.project_set?(options)
70
-
68
+ Uffizzi::AuthHelper.check_login(options[:project])
71
69
  project_slug = options[:project].nil? ? ConfigFile.read_option(:project) : options[:project]
72
70
 
73
71
  case command
@@ -114,13 +112,15 @@ module Uffizzi
114
112
 
115
113
  cluster_name = command_args[:name] || options[:name] || ClusterService.generate_name
116
114
  creation_source = options[:"creation-source"] || ClusterService::MANUAL_CREATION_SOURCE
117
-
118
- unless ClusterService.valid_name?(cluster_name)
119
- Uffizzi.ui.say_error_and_exit("Cluster name: #{cluster_name} is not valid.")
120
- end
121
-
122
- manifest_file_path = options[:manifest]
123
- params = cluster_creation_params(cluster_name, creation_source, manifest_file_path)
115
+ k8s_version = options[:"k8s-version"]
116
+ Uffizzi.ui.say_error_and_exit("Cluster name: #{cluster_name} is not valid.") unless ClusterService.valid_name?(cluster_name)
117
+
118
+ params = cluster_creation_params(
119
+ name: cluster_name,
120
+ creation_source: creation_source,
121
+ manifest_file_path: options[:manifest],
122
+ k8s_version: k8s_version,
123
+ )
124
124
  response = create_cluster(ConfigFile.read_option(:server), project_slug, params)
125
125
 
126
126
  return ResponseHelper.handle_failed_response(response) unless ResponseHelper.created?(response)
@@ -239,7 +239,7 @@ module Uffizzi
239
239
  end
240
240
  end
241
241
 
242
- def cluster_creation_params(name, creation_source, manifest_file_path)
242
+ def cluster_creation_params(name:, creation_source:, manifest_file_path:, k8s_version:)
243
243
  manifest_content = load_manifest_file(manifest_file_path)
244
244
  oidc_token = Uffizzi::ConfigFile.read_option(:oidc_token)
245
245
 
@@ -248,6 +248,7 @@ module Uffizzi
248
248
  name: name,
249
249
  manifest: manifest_content,
250
250
  creation_source: creation_source,
251
+ k8s_version: k8s_version,
251
252
  },
252
253
  token: oidc_token,
253
254
  }
@@ -303,6 +304,7 @@ module Uffizzi
303
304
  status: cluster_data[:state],
304
305
  created: Time.strptime(cluster_data[:created_at], '%Y-%m-%dT%H:%M:%S.%N').strftime('%a %b %d %H:%M:%S %Y'),
305
306
  url: cluster_data[:host],
307
+ k8s_version: cluster_data[:k8s_version],
306
308
  }
307
309
 
308
310
  rendered_cluster_data = if Uffizzi.ui.output_format.nil?
@@ -335,7 +337,6 @@ module Uffizzi
335
337
  end
336
338
 
337
339
  def save_kubeconfig(kubeconfig, kubeconfig_path)
338
- kubeconfig_path = kubeconfig_path.nil? ? KubeconfigService.default_path : kubeconfig_path
339
340
  is_update_current_context = options[:'update-current-context']
340
341
 
341
342
  KubeconfigService.save_to_filepath(kubeconfig_path, kubeconfig) do |kubeconfig_by_path|
@@ -354,6 +355,8 @@ module Uffizzi
354
355
  merged_kubeconfig
355
356
  end
356
357
  end
358
+
359
+ Uffizzi.ui.say("Kubeconfig was updated by the path: #{kubeconfig_path}") if is_update_current_context
357
360
  end
358
361
 
359
362
  def update_clusters_config(id, params)
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'uffizzi/services/command_service'
4
3
  require 'uffizzi/services/cluster_service'
5
4
  require 'uffizzi/services/dev_service'
6
5
  require 'uffizzi/services/kubeconfig_service'
6
+ require 'uffizzi/auth_helper'
7
7
 
8
8
  module Uffizzi
9
9
  class Cli::Dev < Thor
@@ -13,11 +13,12 @@ module Uffizzi
13
13
  method_option :quiet, type: :boolean, aliases: :q
14
14
  method_option :'default-repo', type: :string
15
15
  method_option :kubeconfig, type: :string
16
+ method_option :'k8s-version', required: false, type: :string
16
17
  def start(config_path = 'skaffold.yaml')
18
+ Uffizzi::AuthHelper.check_login(options[:project])
17
19
  DevService.check_skaffold_existence
18
20
  DevService.check_running_daemon if options[:quiet]
19
21
  DevService.check_skaffold_config_existence(config_path)
20
- check_login
21
22
  cluster_id, cluster_name = start_create_cluster
22
23
  kubeconfig = wait_cluster_creation(cluster_name)
23
24
 
@@ -49,15 +50,12 @@ module Uffizzi
49
50
 
50
51
  private
51
52
 
52
- def check_login
53
- raise Uffizzi::Error.new('You are not logged in.') unless Uffizzi::AuthHelper.signed_in?
54
- raise Uffizzi::Error.new('This command needs project to be set in config file') unless CommandService.project_set?(options)
55
- end
56
-
57
53
  def start_create_cluster
58
- cluster_name = ClusterService.generate_name
59
- creation_source = ClusterService::MANUAL_CREATION_SOURCE
60
- params = cluster_creation_params(cluster_name, creation_source)
54
+ params = cluster_creation_params(
55
+ name: ClusterService.generate_name,
56
+ creation_source: ClusterService::MANUAL_CREATION_SOURCE,
57
+ k8s_version: options[:"k8s-version"],
58
+ )
61
59
  Uffizzi.ui.say('Start creating a cluster')
62
60
  response = create_cluster(ConfigFile.read_option(:server), project_slug, params)
63
61
  return ResponseHelper.handle_failed_response(response) unless ResponseHelper.created?(response)
@@ -110,7 +108,7 @@ module Uffizzi
110
108
  ConfigFile.write_option(:clusters, clusters_config)
111
109
  end
112
110
 
113
- def cluster_creation_params(name, creation_source)
111
+ def cluster_creation_params(name:, creation_source:, k8s_version:)
114
112
  oidc_token = Uffizzi::ConfigFile.read_option(:oidc_token)
115
113
 
116
114
  {
@@ -118,6 +116,7 @@ module Uffizzi
118
116
  name: name,
119
117
  manifest: nil,
120
118
  creation_source: creation_source,
119
+ k8s_version: k8s_version,
121
120
  },
122
121
  token: oidc_token,
123
122
  }
@@ -4,7 +4,6 @@ require 'uffizzi'
4
4
  require 'uffizzi/auth_helper'
5
5
  require 'uffizzi/response_helper'
6
6
  require 'uffizzi/services/preview_service'
7
- require 'uffizzi/services/command_service'
8
7
 
9
8
  module Uffizzi
10
9
  class Cli::Preview::Service < Thor
@@ -12,8 +11,7 @@ module Uffizzi
12
11
 
13
12
  desc 'logs [LOGS_TYPE] [DEPLOYMENT_ID] [CONTAINER_NAME]', 'Show the logs for a container service of a preview'
14
13
  def logs(logs_type, deployment_name, container_name = args)
15
- return Uffizzi.ui.say('You are not logged in.') unless Uffizzi::AuthHelper.signed_in?
16
- return Uffizzi.ui.say('This command needs project to be set in config file') unless CommandService.project_set?(options)
14
+ Uffizzi::AuthHelper.check_login(options[:project])
17
15
 
18
16
  deployment_id = PreviewService.read_deployment_id(deployment_name)
19
17
  response = service_logs_response(logs_type, deployment_id, container_name)
@@ -28,8 +26,7 @@ module Uffizzi
28
26
 
29
27
  desc 'list [DEPLOYMENT_ID]', 'List the container services of a given compose environment (preview)'
30
28
  def list(deployment_name)
31
- return Uffizzi.ui.say('You are not logged in.') unless Uffizzi::AuthHelper.signed_in?
32
- return Uffizzi.ui.say('This command needs project to be set in config file') unless CommandService.project_set?(options)
29
+ Uffizzi::AuthHelper.check_login(options[:project])
33
30
 
34
31
  project_slug = options[:project].nil? ? ConfigFile.read_option(:project) : options[:project]
35
32
  server = ConfigFile.read_option(:server)
@@ -3,7 +3,6 @@
3
3
  require 'uffizzi'
4
4
  require 'uffizzi/auth_helper'
5
5
  require 'uffizzi/services/preview_service'
6
- require 'uffizzi/services/command_service'
7
6
  require 'uffizzi/services/github_service'
8
7
 
9
8
  module Uffizzi
@@ -55,8 +54,7 @@ module Uffizzi
55
54
 
56
55
  def run(command, file_path: nil, deployment_name: nil)
57
56
  Uffizzi.ui.output_format = options[:output]
58
- raise Uffizzi::Error.new('You are not logged in.') unless Uffizzi::AuthHelper.signed_in?
59
- raise Uffizzi::Error.new('This command needs project to be set in config file') unless CommandService.project_set?(options)
57
+ Uffizzi::AuthHelper.check_login(options[:project])
60
58
 
61
59
  project_slug = options[:project].nil? ? ConfigFile.read_option(:project) : options[:project]
62
60
 
@@ -5,7 +5,6 @@ require 'uffizzi/auth_helper'
5
5
  require 'uffizzi/response_helper'
6
6
  require 'uffizzi/services/compose_file_service'
7
7
  require 'uffizzi/services/env_variables_service'
8
- require 'uffizzi/services/command_service'
9
8
 
10
9
  module Uffizzi
11
10
  class Cli::Project::Compose < Thor
@@ -29,8 +28,7 @@ module Uffizzi
29
28
  private
30
29
 
31
30
  def run(command)
32
- return Uffizzi.ui.say('You are not logged in.') unless Uffizzi::AuthHelper.signed_in?
33
- return Uffizzi.ui.say('This command needs project to be set in config file') unless CommandService.project_set?(options)
31
+ Uffizzi::AuthHelper.check_login(options[:project])
34
32
 
35
33
  project_slug = options[:project].nil? ? ConfigFile.read_option(:project) : options[:project]
36
34
  file_path = options[:file]
@@ -55,7 +55,7 @@ module Uffizzi
55
55
  private
56
56
 
57
57
  def run(command, project_slug: nil)
58
- return Uffizzi.ui.say('You are not logged in.') unless Uffizzi::AuthHelper.signed_in?
58
+ raise Uffizzi::Error.new('You are not logged in. Run `uffizzi login`.') unless Uffizzi::AuthHelper.signed_in?
59
59
 
60
60
  case command
61
61
  when 'list'
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Uffizzi
4
- VERSION = '2.1.2'
4
+ VERSION = '2.1.4'
5
5
  end
@@ -1,3 +1,4 @@
1
+ uffizzi cluster create -h
1
2
  uffizzi-cluster-create - create a cluster
2
3
  ================================================================
3
4
 
@@ -12,9 +13,17 @@ uffizzi-cluster-create - create a cluster
12
13
  https://docs.uffizzi.com/references/cli/
13
14
 
14
15
  ## FLAGS
16
+
15
17
  --name
16
18
  Option is deprecated and will be removed in the newer versions.
17
- Please use a positional argument instead: uffizzi cluster create my-awesome-name.
19
+ Please use a positional argument instead: uffizzi cluster create
20
+ my-awesome-name.
21
+
22
+ --k8s-version=<api-version>
23
+ Specify which version of the Kubernetes API to use when creating
24
+ the cluster, formatted as [MAJOR].[MINOR]. Defaults to 1.27.
25
+ Minor versions point to the latest release of the corresponding k3s
26
+ minor version. See https://github.com/k3s-io/k3s/releases
18
27
 
19
28
  --kubeconfig="/path/to/your/kubeconfig"
20
29
  Path to kubeconfig file
@@ -31,10 +31,11 @@ uffizzi-dev-start - start a development environment
31
31
  Currently supports skaffold.yaml files.
32
32
 
33
33
  ## FLAGS
34
- --build="<local-or-remote>"
35
- This option specifies whether to build images on the
36
- local environment or on the remote Uffizzi cluster.
37
- Possible values are "local" or "remote".
34
+ --k8s-version=<api-version>
35
+ Specify which version of the Kubernetes API to use when creating
36
+ the cluster, formatted as [MAJOR].[MINOR]. Defaults to 1.27.
37
+ Minor versions point to the latest release of the corresponding k3s
38
+ minor version. See https://github.com/k3s-io/k3s/releases
38
39
 
39
40
  --default-repo="<container-registry-domain>"
40
41
  A public or private repo used to push/pull build
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.1.2
4
+ version: 2.1.4
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-10-09 00:00:00.000000000 Z
12
+ date: 2023-10-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -448,7 +448,6 @@ files:
448
448
  - lib/uffizzi/response_helper.rb
449
449
  - lib/uffizzi/services/cluster/disconnect_service.rb
450
450
  - lib/uffizzi/services/cluster_service.rb
451
- - lib/uffizzi/services/command_service.rb
452
451
  - lib/uffizzi/services/compose_file_service.rb
453
452
  - lib/uffizzi/services/dev_service.rb
454
453
  - lib/uffizzi/services/env_variables_service.rb
@@ -1,9 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class CommandService
4
- class << self
5
- def project_set?(options)
6
- !options[:project].nil? || (Uffizzi::ConfigFile.exists? && Uffizzi::ConfigFile.option_has_value?(:project))
7
- end
8
- end
9
- end