uffizzi-cli 2.1.2 → 2.1.4

Sign up to get free protection for your applications and to get access to all the features.
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