From e3c7673d2a7556f0a2aa62ba8c24b061903cd132 Mon Sep 17 00:00:00 2001 From: Lidia Mokevnina Date: Wed, 11 Oct 2023 14:17:30 +0200 Subject: [PATCH] [346] added k8s version option to uffizzi dev --- lib/uffizzi/cli/cluster.rb | 4 +--- lib/uffizzi/cli/dev.rb | 12 ++++++++---- man/uffizzi-dev-start.ronn | 9 +++++---- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/lib/uffizzi/cli/cluster.rb b/lib/uffizzi/cli/cluster.rb index b38460d5..91b17ffd 100644 --- a/lib/uffizzi/cli/cluster.rb +++ b/lib/uffizzi/cli/cluster.rb @@ -11,8 +11,6 @@ require 'uffizzi/services/kubeconfig_service' require 'uffizzi/services/cluster/disconnect_service' -MANUAL = 'manual' - module Uffizzi class Cli::Cluster < Thor class Error < StandardError; end @@ -116,7 +114,7 @@ def handle_create_command(project_slug, command_args) end cluster_name = command_args[:name] || options[:name] || ClusterService.generate_name - creation_source = options[:"creation-source"] || MANUAL + creation_source = options[:"creation-source"] || ClusterService::MANUAL_CREATION_SOURCE k8s_version = options[:"k8s-version"] Uffizzi.ui.say_error_and_exit("Cluster name: #{cluster_name} is not valid.") unless ClusterService.valid_name?(cluster_name) diff --git a/lib/uffizzi/cli/dev.rb b/lib/uffizzi/cli/dev.rb index a41bbdb0..1395781d 100644 --- a/lib/uffizzi/cli/dev.rb +++ b/lib/uffizzi/cli/dev.rb @@ -13,6 +13,7 @@ class Cli::Dev < Thor method_option :quiet, type: :boolean, aliases: :q method_option :'default-repo', type: :string method_option :kubeconfig, type: :string + method_option :'k8s-version', required: false, type: :string def start(config_path = 'skaffold.yaml') DevService.check_skaffold_existence DevService.check_running_daemon if options[:quiet] @@ -55,9 +56,11 @@ def check_login end def start_create_cluster - cluster_name = ClusterService.generate_name - creation_source = ClusterService::MANUAL_CREATION_SOURCE - params = cluster_creation_params(cluster_name, creation_source) + params = cluster_creation_params( + name: ClusterService.generate_name, + creation_source: ClusterService::MANUAL_CREATION_SOURCE, + k8s_version: options[:"k8s-version"], + ) Uffizzi.ui.say('Start creating a cluster') response = create_cluster(ConfigFile.read_option(:server), project_slug, params) return ResponseHelper.handle_failed_response(response) unless ResponseHelper.created?(response) @@ -110,7 +113,7 @@ def update_clusters_config(id, params) ConfigFile.write_option(:clusters, clusters_config) end - def cluster_creation_params(name, creation_source) + def cluster_creation_params(name:, creation_source:, k8s_version:) oidc_token = Uffizzi::ConfigFile.read_option(:oidc_token) { @@ -118,6 +121,7 @@ def cluster_creation_params(name, creation_source) name: name, manifest: nil, creation_source: creation_source, + k8s_version: k8s_version, }, token: oidc_token, } diff --git a/man/uffizzi-dev-start.ronn b/man/uffizzi-dev-start.ronn index 59e510c4..35b5c02a 100644 --- a/man/uffizzi-dev-start.ronn +++ b/man/uffizzi-dev-start.ronn @@ -31,10 +31,11 @@ uffizzi-dev-start - start a development environment Currently supports skaffold.yaml files. ## FLAGS - --build="" - This option specifies whether to build images on the - local environment or on the remote Uffizzi cluster. - Possible values are "local" or "remote". + --k8s-version= + Specify which version of the Kubernetes API to use when creating + the cluster, formatted as [MAJOR].[MINOR]. Defaults to 1.27. + Minor versions point to the latest release of the corresponding k3s + minor version. See https://github.com/k3s-io/k3s/releases --default-repo="" A public or private repo used to push/pull build