kuber_kit 0.8.8 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/lib/kuber_kit/actions/shell_launcher.rb +18 -0
- data/lib/kuber_kit/cli.rb +11 -0
- data/lib/kuber_kit/configs.rb +3 -2
- data/lib/kuber_kit/container.rb +12 -12
- data/lib/kuber_kit/core/configuration.rb +7 -4
- data/lib/kuber_kit/core/configuration_definition.rb +10 -3
- data/lib/kuber_kit/core/configuration_factory.rb +2 -1
- data/lib/kuber_kit/core/service.rb +1 -1
- data/lib/kuber_kit/defaults.rb +32 -10
- data/lib/kuber_kit/service_deployer/deployer.rb +0 -19
- data/lib/kuber_kit/shell/abstract_shell.rb +4 -0
- data/lib/kuber_kit/shell/commands/kubectl_commands.rb +6 -0
- data/lib/kuber_kit/shell/local_shell.rb +15 -0
- data/lib/kuber_kit/shell/ssh_shell.rb +4 -0
- data/lib/kuber_kit/shell_launcher/action_handler.rb +12 -0
- data/lib/kuber_kit/shell_launcher/launcher.rb +31 -0
- data/lib/kuber_kit/shell_launcher/strategies/abstract.rb +5 -0
- data/lib/kuber_kit/shell_launcher/strategies/kubernetes.rb +22 -0
- data/lib/kuber_kit/version.rb +1 -1
- data/lib/kuber_kit.rb +11 -0
- data/~/.kuber_kit/deploy.log +1765 -0
- data/~/.kuber_kit/env_files/env_files-test_env +2 -0
- data/~/.kuber_kit/services/auth_app.yml +7 -0
- metadata +10 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6eb3dda64697fc3174d3ae031a7eba5be1f57e80d0c8c43829ff3b36edca38b2
|
4
|
+
data.tar.gz: 85a77edc9bdc91c09c6ba6f3e677df032168c66a69a563ddd9087734fa9636bc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1696812c543f40ec81cb7c4c7804f4f02e739cf7ccff6820f37b884f7965a0822ceb1b2dbc42e7ca9d696f7d539d5b0e44ff6142991178bd9316bdd98276ca09
|
7
|
+
data.tar.gz: 8887273eba2ca2b3f714249d4da29dfb826477e08da4f09d06ab9974c5a32e8b698bbeb2f9b0bb7a6cbd75884aba3bedca6adc71ee7d7e53a1a8d3637b798d7f
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
**0.9.0**
|
2
|
+
- Allow skipping confirmation during deployment
|
3
|
+
- Added `kit sh` command to create a new shell
|
4
|
+
- Do not expand directory path in config
|
5
|
+
|
1
6
|
**0.8.4-0.8.8**
|
2
7
|
- Added initial services support, to deploy before all other servies
|
3
8
|
- Allow namespace as symbol in kubectl commands
|
@@ -0,0 +1,18 @@
|
|
1
|
+
class KuberKit::Actions::ShellLauncher
|
2
|
+
include KuberKit::Import[
|
3
|
+
"shell.local_shell",
|
4
|
+
"shell_launcher.action_handler",
|
5
|
+
"ui",
|
6
|
+
]
|
7
|
+
|
8
|
+
Contract nil => Any
|
9
|
+
def call()
|
10
|
+
action_handler.call(local_shell)
|
11
|
+
|
12
|
+
true
|
13
|
+
rescue KuberKit::Error => e
|
14
|
+
ui.print_error("Error", e.message)
|
15
|
+
|
16
|
+
false
|
17
|
+
end
|
18
|
+
end
|
data/lib/kuber_kit/cli.rb
CHANGED
@@ -41,6 +41,7 @@ class KuberKit::CLI < Thor
|
|
41
41
|
method_option :skip_compile, :type => :boolean, aliases: ["-B"]
|
42
42
|
method_option :skip_dependencies, :type => :boolean, aliases: ["-D"]
|
43
43
|
method_option :require_confirmation, :type => :boolean, aliases: ["-r"]
|
44
|
+
method_option :skip_confirmation, :type => :boolean, aliases: ["-R"]
|
44
45
|
def deploy
|
45
46
|
setup(options)
|
46
47
|
|
@@ -48,6 +49,7 @@ class KuberKit::CLI < Thor
|
|
48
49
|
require_confirmation = options[:require_confirmation] ||
|
49
50
|
KuberKit.current_configuration.deployer_require_confirmation ||
|
50
51
|
false
|
52
|
+
require_confirmation = false if options[:skip_confirmation]
|
51
53
|
started_at = Time.now.to_i
|
52
54
|
action_result = KuberKit::Container['actions.service_deployer'].call(
|
53
55
|
services: (options[:services] || []).flatten.uniq,
|
@@ -161,6 +163,15 @@ class KuberKit::CLI < Thor
|
|
161
163
|
end
|
162
164
|
end
|
163
165
|
|
166
|
+
desc "sh", "Create a new shell with KUBECONFIG env variable in place"
|
167
|
+
def sh()
|
168
|
+
setup(options)
|
169
|
+
|
170
|
+
if KuberKit::Container['actions.configuration_loader'].call(options.merge(load_inventory: false))
|
171
|
+
KuberKit::Container['actions.shell_launcher'].call()
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
164
175
|
desc "get RESOURCE_NAME", "List pods matching RESOURCE_NAME using kubectl"
|
165
176
|
def get(pod_name = nil)
|
166
177
|
setup(options)
|
data/lib/kuber_kit/configs.rb
CHANGED
@@ -5,7 +5,7 @@ class KuberKit::Configs
|
|
5
5
|
:image_dockerfile_name, :image_build_context_dir, :image_tag, :docker_ignore_list, :image_compile_dir,
|
6
6
|
:kuber_kit_dirname, :kuber_kit_min_version, :images_dirname, :services_dirname, :infra_dirname, :configurations_dirname,
|
7
7
|
:artifact_clone_dir, :service_config_dir, :deployer_strategy, :compile_simultaneous_limit, :deploy_simultaneous_limit,
|
8
|
-
:additional_images_paths, :deprecation_warnings_disabled, :log_file_path, :env_file_compile_dir
|
8
|
+
:additional_images_paths, :deprecation_warnings_disabled, :log_file_path, :env_file_compile_dir, :shell_launcher_strategy
|
9
9
|
]
|
10
10
|
DOCKER_IGNORE_LIST = [
|
11
11
|
'Dockerfile',
|
@@ -34,7 +34,7 @@ class KuberKit::Configs
|
|
34
34
|
end
|
35
35
|
|
36
36
|
def add_default_configs
|
37
|
-
home_kuber_kit_path = File.
|
37
|
+
home_kuber_kit_path = File.join("~", ".kuber_kit")
|
38
38
|
|
39
39
|
set :image_dockerfile_name, "Dockerfile"
|
40
40
|
set :image_build_context_dir, "build_context"
|
@@ -50,6 +50,7 @@ class KuberKit::Configs
|
|
50
50
|
set :artifact_clone_dir, File.join(home_kuber_kit_path, "artifacts")
|
51
51
|
set :service_config_dir, File.join(home_kuber_kit_path, "services")
|
52
52
|
set :deployer_strategy, :kubernetes
|
53
|
+
set :shell_launcher_strategy, :kubernetes
|
53
54
|
set :compile_simultaneous_limit, 5
|
54
55
|
set :deploy_simultaneous_limit, 5
|
55
56
|
set :additional_images_paths, []
|
data/lib/kuber_kit/container.rb
CHANGED
@@ -57,6 +57,10 @@ class KuberKit::Container
|
|
57
57
|
KuberKit::Actions::KubectlEnv.new
|
58
58
|
end
|
59
59
|
|
60
|
+
register "actions.shell_launcher" do
|
61
|
+
KuberKit::Actions::ShellLauncher.new
|
62
|
+
end
|
63
|
+
|
60
64
|
register "configs" do
|
61
65
|
KuberKit::Configs.new
|
62
66
|
end
|
@@ -293,18 +297,6 @@ class KuberKit::Container
|
|
293
297
|
KuberKit::ServiceDeployer::ServiceDependencyResolver.new
|
294
298
|
end
|
295
299
|
|
296
|
-
register "service_deployer.strategies.kubernetes" do
|
297
|
-
KuberKit::ServiceDeployer::Strategies::Kubernetes.new
|
298
|
-
end
|
299
|
-
|
300
|
-
register "service_deployer.strategies.docker" do
|
301
|
-
KuberKit::ServiceDeployer::Strategies::Docker.new
|
302
|
-
end
|
303
|
-
|
304
|
-
register "service_deployer.strategies.docker_compose" do
|
305
|
-
KuberKit::ServiceDeployer::Strategies::DockerCompose.new
|
306
|
-
end
|
307
|
-
|
308
300
|
register "service_reader.action_handler" do
|
309
301
|
KuberKit::ServiceReader::ActionHandler.new
|
310
302
|
end
|
@@ -313,6 +305,14 @@ class KuberKit::Container
|
|
313
305
|
KuberKit::ServiceReader::Reader.new
|
314
306
|
end
|
315
307
|
|
308
|
+
register "shell_launcher.action_handler" do
|
309
|
+
KuberKit::ShellLauncher::ActionHandler.new
|
310
|
+
end
|
311
|
+
|
312
|
+
register "shell_launcher.launcher" do
|
313
|
+
KuberKit::ShellLauncher::Launcher.new
|
314
|
+
end
|
315
|
+
|
316
316
|
register "kubernetes.resource_selector" do
|
317
317
|
KuberKit::Kubernetes::ResourceSelector.new
|
318
318
|
end
|
@@ -2,7 +2,8 @@ class KuberKit::Core::Configuration
|
|
2
2
|
attr_reader :name, :artifacts, :registries, :env_files, :templates, :kubeconfig_path, :kubectl_entrypoint,
|
3
3
|
:services_attributes, :enabled_services, :disabled_services, :default_services,
|
4
4
|
:initial_services, :build_servers, :global_build_vars,
|
5
|
-
:deployer_strategy, :deployer_namespace, :deployer_require_confirmation
|
5
|
+
:deployer_strategy, :deployer_namespace, :deployer_require_confirmation,
|
6
|
+
:shell_launcher_strategy
|
6
7
|
|
7
8
|
Contract KeywordArgs[
|
8
9
|
name: Symbol,
|
@@ -21,12 +22,13 @@ class KuberKit::Core::Configuration
|
|
21
22
|
global_build_vars: HashOf[Symbol => Any],
|
22
23
|
deployer_strategy: Symbol,
|
23
24
|
deployer_namespace: Maybe[Or[Symbol, String]],
|
24
|
-
deployer_require_confirmation:
|
25
|
+
deployer_require_confirmation: Bool,
|
26
|
+
shell_launcher_strategy: Symbol,
|
25
27
|
] => Any
|
26
28
|
def initialize(name:, artifacts:, registries:, env_files:, templates:, kubeconfig_path:, kubectl_entrypoint:,
|
27
29
|
services_attributes:, enabled_services:, disabled_services:, default_services:,
|
28
30
|
initial_services:, build_servers:, global_build_vars:,
|
29
|
-
deployer_strategy:, deployer_namespace:, deployer_require_confirmation:)
|
31
|
+
deployer_strategy:, deployer_namespace:, deployer_require_confirmation:, shell_launcher_strategy:)
|
30
32
|
@name = name
|
31
33
|
@artifacts = artifacts
|
32
34
|
@registries = registries
|
@@ -43,7 +45,8 @@ class KuberKit::Core::Configuration
|
|
43
45
|
@global_build_vars = global_build_vars
|
44
46
|
@deployer_strategy = deployer_strategy
|
45
47
|
@deployer_namespace = deployer_namespace
|
46
|
-
@deployer_require_confirmation
|
48
|
+
@deployer_require_confirmation = deployer_require_confirmation
|
49
|
+
@shell_launcher_strategy = shell_launcher_strategy
|
47
50
|
end
|
48
51
|
|
49
52
|
def service_attributes(service_name)
|
@@ -36,7 +36,8 @@ class KuberKit::Core::ConfigurationDefinition
|
|
36
36
|
global_build_vars: @global_build_vars,
|
37
37
|
deployer_strategy: @deployer_strategy,
|
38
38
|
deployer_namespace: @deployer_namespace,
|
39
|
-
deployer_require_confirmation:
|
39
|
+
deployer_require_confirmation: @deployer_require_confirmation || false,
|
40
|
+
shell_launcher_strategy: @shell_launcher_strategy,
|
40
41
|
)
|
41
42
|
end
|
42
43
|
|
@@ -102,8 +103,8 @@ class KuberKit::Core::ConfigurationDefinition
|
|
102
103
|
self
|
103
104
|
end
|
104
105
|
|
105
|
-
def deployer_strategy(
|
106
|
-
@deployer_strategy =
|
106
|
+
def deployer_strategy(strategy)
|
107
|
+
@deployer_strategy = strategy
|
107
108
|
|
108
109
|
self
|
109
110
|
end
|
@@ -115,6 +116,12 @@ class KuberKit::Core::ConfigurationDefinition
|
|
115
116
|
end
|
116
117
|
alias_method :deployer_require_confirimation, :deployer_require_confirmation
|
117
118
|
|
119
|
+
def shell_launcher_strategy(strategy)
|
120
|
+
@shell_launcher_strategy = path
|
121
|
+
|
122
|
+
self
|
123
|
+
end
|
124
|
+
|
118
125
|
def enabled_services(services)
|
119
126
|
if services.is_a?(Hash)
|
120
127
|
@enabled_services += services.keys.map(&:to_sym)
|
@@ -36,7 +36,8 @@ class KuberKit::Core::ConfigurationFactory
|
|
36
36
|
global_build_vars: configuration_attrs.global_build_vars || {},
|
37
37
|
deployer_strategy: configuration_attrs.deployer_strategy || configs.deployer_strategy,
|
38
38
|
deployer_namespace: configuration_attrs.deployer_namespace,
|
39
|
-
deployer_require_confirmation:
|
39
|
+
deployer_require_confirmation: configuration_attrs.deployer_require_confirmation,
|
40
|
+
shell_launcher_strategy: configuration_attrs.shell_launcher_strategy || configs.shell_launcher_strategy,
|
40
41
|
)
|
41
42
|
end
|
42
43
|
|
data/lib/kuber_kit/defaults.rb
CHANGED
@@ -7,26 +7,48 @@ class KuberKit::Defaults
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def init!
|
10
|
-
|
11
|
-
|
10
|
+
container["artifacts_sync.artifact_updater"].use_resolver(
|
11
|
+
container["artifacts_sync.git_artifact_resolver"],
|
12
12
|
artifact_class: KuberKit::Core::Artifacts::Git
|
13
13
|
)
|
14
|
-
|
15
|
-
|
14
|
+
container["artifacts_sync.artifact_updater"].use_resolver(
|
15
|
+
container["artifacts_sync.null_artifact_resolver"],
|
16
16
|
artifact_class: KuberKit::Core::Artifacts::Local
|
17
17
|
)
|
18
|
-
|
19
|
-
|
18
|
+
container["env_file_reader.reader"].use_reader(
|
19
|
+
container["env_file_reader.strategies.artifact_file"],
|
20
20
|
env_file_class: KuberKit::Core::EnvFiles::ArtifactFile
|
21
21
|
)
|
22
|
-
|
23
|
-
|
22
|
+
container["env_file_reader.reader"].use_reader(
|
23
|
+
container["env_file_reader.strategies.env_group"],
|
24
24
|
env_file_class: KuberKit::Core::EnvFiles::EnvGroup
|
25
25
|
)
|
26
|
-
|
27
|
-
|
26
|
+
container["template_reader.reader"].use_reader(
|
27
|
+
container["template_reader.strategies.artifact_file"],
|
28
28
|
template_class: KuberKit::Core::Templates::ArtifactFile
|
29
29
|
)
|
30
|
+
container["service_deployer.deployer"].register_strategy(
|
31
|
+
:kubernetes,
|
32
|
+
KuberKit::ServiceDeployer::Strategies::Kubernetes.new
|
33
|
+
)
|
34
|
+
container["service_deployer.deployer"].register_strategy(
|
35
|
+
:docker,
|
36
|
+
KuberKit::ServiceDeployer::Strategies::Docker.new
|
37
|
+
)
|
38
|
+
container["service_deployer.deployer"].register_strategy(
|
39
|
+
:docker_compose,
|
40
|
+
KuberKit::ServiceDeployer::Strategies::DockerCompose.new
|
41
|
+
)
|
42
|
+
|
43
|
+
container["shell_launcher.launcher"].register_strategy(
|
44
|
+
:kubernetes,
|
45
|
+
KuberKit::ShellLauncher::Strategies::Kubernetes.new
|
46
|
+
)
|
30
47
|
end
|
48
|
+
|
49
|
+
private
|
50
|
+
def container
|
51
|
+
KuberKit::Container
|
52
|
+
end
|
31
53
|
end
|
32
54
|
end
|
@@ -3,16 +3,8 @@ class KuberKit::ServiceDeployer::Deployer
|
|
3
3
|
|
4
4
|
include KuberKit::Import[
|
5
5
|
"core.service_store",
|
6
|
-
"service_deployer.strategies.kubernetes",
|
7
|
-
"service_deployer.strategies.docker",
|
8
|
-
"service_deployer.strategies.docker_compose"
|
9
6
|
]
|
10
7
|
|
11
|
-
def initialize(**injected_deps, &block)
|
12
|
-
super(**injected_deps)
|
13
|
-
add_default_strategies
|
14
|
-
end
|
15
|
-
|
16
8
|
def register_strategy(strategy_name, strategy)
|
17
9
|
@@strategies ||= {}
|
18
10
|
|
@@ -31,15 +23,4 @@ class KuberKit::ServiceDeployer::Deployer
|
|
31
23
|
|
32
24
|
deployer.deploy(shell, service)
|
33
25
|
end
|
34
|
-
|
35
|
-
def reset!
|
36
|
-
@@strategies = {}
|
37
|
-
end
|
38
|
-
|
39
|
-
private
|
40
|
-
def add_default_strategies
|
41
|
-
register_strategy(:kubernetes, kubernetes)
|
42
|
-
register_strategy(:docker, docker)
|
43
|
-
register_strategy(:docker_compose, docker_compose)
|
44
|
-
end
|
45
26
|
end
|
@@ -10,6 +10,10 @@ class KuberKit::Shell::AbstractShell
|
|
10
10
|
raise KuberKit::NotImplementedError, "must be implemented"
|
11
11
|
end
|
12
12
|
|
13
|
+
def replace!(shell_name: nil, env: [])
|
14
|
+
raise KuberKit::NotImplementedError, "must be implemented"
|
15
|
+
end
|
16
|
+
|
13
17
|
def read(file_path)
|
14
18
|
raise KuberKit::NotImplementedError, "must be implemented"
|
15
19
|
end
|
@@ -130,4 +130,10 @@ class KuberKit::Shell::Commands::KubectlCommands
|
|
130
130
|
|
131
131
|
kubectl_run(shell, command_parts, kubeconfig_path: kubeconfig_path, namespace: namespace)
|
132
132
|
end
|
133
|
+
|
134
|
+
def set_namespace(shell, namespace, kubeconfig_path: nil)
|
135
|
+
command = %Q{config set-context --current --namespace=#{namespace}}
|
136
|
+
|
137
|
+
kubectl_run(shell, command, kubeconfig_path: kubeconfig_path)
|
138
|
+
end
|
133
139
|
end
|
@@ -58,6 +58,17 @@ class KuberKit::Shell::LocalShell < KuberKit::Shell::AbstractShell
|
|
58
58
|
end
|
59
59
|
end
|
60
60
|
|
61
|
+
def replace!(shell_name: nil, env: [], log_command: true)
|
62
|
+
shell_name ||= "$SHELL"
|
63
|
+
command = (env + [shell_name]).join(" ")
|
64
|
+
|
65
|
+
if log_command
|
66
|
+
ui.print_debug("LocalShell", "Replace Shell: #{command.to_s.cyan}")
|
67
|
+
end
|
68
|
+
|
69
|
+
system_exec(command)
|
70
|
+
end
|
71
|
+
|
61
72
|
def sync(local_path, remote_path, exclude: nil, delete: true)
|
62
73
|
rsync_commands.rsync(self, local_path, remote_path, exclude: exclude, delete: delete)
|
63
74
|
end
|
@@ -117,6 +128,10 @@ class KuberKit::Shell::LocalShell < KuberKit::Shell::AbstractShell
|
|
117
128
|
end
|
118
129
|
|
119
130
|
private
|
131
|
+
def system_exec(command)
|
132
|
+
exec(command)
|
133
|
+
end
|
134
|
+
|
120
135
|
def ensure_directory_exists(file_path)
|
121
136
|
dir_path = File.dirname(file_path)
|
122
137
|
|
@@ -42,6 +42,10 @@ class KuberKit::Shell::SshShell < KuberKit::Shell::LocalShell
|
|
42
42
|
raise "Currently interactive run is not supported for ssh shell."
|
43
43
|
end
|
44
44
|
|
45
|
+
def replace!(shell_name: nil, env: [])
|
46
|
+
raise "Currently repliace run is not supported for ssh shell."
|
47
|
+
end
|
48
|
+
|
45
49
|
def sync(local_path, remote_path, exclude: nil, delete: true)
|
46
50
|
rsync_commands.rsync(
|
47
51
|
local_shell, local_path, remote_path,
|
@@ -0,0 +1,12 @@
|
|
1
|
+
class KuberKit::ShellLauncher::ActionHandler
|
2
|
+
include KuberKit::Import[
|
3
|
+
"shell_launcher.launcher",
|
4
|
+
]
|
5
|
+
|
6
|
+
Contract KuberKit::Shell::AbstractShell => Any
|
7
|
+
def call(shell)
|
8
|
+
strategy_name = KuberKit.current_configuration.shell_launcher_strategy
|
9
|
+
|
10
|
+
launcher.call(shell, strategy_name)
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
class KuberKit::ShellLauncher::Launcher
|
2
|
+
StrategyNotFoundError = Class.new(KuberKit::NotFoundError)
|
3
|
+
|
4
|
+
include KuberKit::Import[
|
5
|
+
"core.service_store",
|
6
|
+
]
|
7
|
+
|
8
|
+
Contract KuberKit::Shell::AbstractShell, Symbol => Any
|
9
|
+
def call(shell, strategy_name)
|
10
|
+
launcher = get_strategy(strategy_name)
|
11
|
+
|
12
|
+
raise StrategyNotFoundError, "Can't find strategy with name #{strategy_name}" if launcher.nil?
|
13
|
+
|
14
|
+
launcher.call(shell)
|
15
|
+
end
|
16
|
+
|
17
|
+
def register_strategy(strategy_name, strategy)
|
18
|
+
@@strategies ||= {}
|
19
|
+
|
20
|
+
if !strategy.is_a?(KuberKit::ShellLauncher::Strategies::Abstract)
|
21
|
+
raise ArgumentError.new("should be an instance of KuberKit::ShellLauncher::Strategies::Abstract, got: #{strategy.inspect}")
|
22
|
+
end
|
23
|
+
|
24
|
+
@@strategies[strategy_name] = strategy
|
25
|
+
end
|
26
|
+
|
27
|
+
def get_strategy(strategy_name)
|
28
|
+
@@strategies ||= {}
|
29
|
+
@@strategies[strategy_name]
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
class KuberKit::ShellLauncher::Strategies::Kubernetes < KuberKit::ShellLauncher::Strategies::Abstract
|
2
|
+
include KuberKit::Import[
|
3
|
+
"service_reader.reader",
|
4
|
+
"shell.kubectl_commands",
|
5
|
+
"configs",
|
6
|
+
]
|
7
|
+
|
8
|
+
Contract KuberKit::Shell::AbstractShell => Any
|
9
|
+
def call(shell)
|
10
|
+
kubeconfig_path = KuberKit.current_configuration.kubeconfig_path
|
11
|
+
if kubeconfig_path.is_a?(KuberKit::Core::ArtifactPath)
|
12
|
+
kubeconfig_path = artifact_path_resolver.call(kubeconfig_path)
|
13
|
+
end
|
14
|
+
|
15
|
+
deployer_namespace = KuberKit.current_configuration.deployer_namespace
|
16
|
+
if deployer_namespace
|
17
|
+
kubectl_commands.set_namespace(shell, deployer_namespace, kubeconfig_path: kubeconfig_path)
|
18
|
+
end
|
19
|
+
|
20
|
+
shell.replace!(env: ["KUBECONFIG=#{kubeconfig_path}"])
|
21
|
+
end
|
22
|
+
end
|
data/lib/kuber_kit/version.rb
CHANGED
data/lib/kuber_kit.rb
CHANGED
@@ -174,6 +174,16 @@ module KuberKit
|
|
174
174
|
autoload :Reader, 'service_reader/reader'
|
175
175
|
end
|
176
176
|
|
177
|
+
module ShellLauncher
|
178
|
+
autoload :ActionHandler, 'shell_launcher/action_handler'
|
179
|
+
autoload :Launcher, 'shell_launcher/launcher'
|
180
|
+
|
181
|
+
module Strategies
|
182
|
+
autoload :Abstract, 'shell_launcher/strategies/abstract'
|
183
|
+
autoload :Kubernetes, 'shell_launcher/strategies/kubernetes'
|
184
|
+
end
|
185
|
+
end
|
186
|
+
|
177
187
|
module Actions
|
178
188
|
autoload :ActionResult, 'actions/action_result'
|
179
189
|
autoload :ImageCompiler, 'actions/image_compiler'
|
@@ -190,6 +200,7 @@ module KuberKit
|
|
190
200
|
autoload :KubectlGet, 'actions/kubectl_get'
|
191
201
|
autoload :KubectlLogs, 'actions/kubectl_logs'
|
192
202
|
autoload :KubectlEnv, 'actions/kubectl_env'
|
203
|
+
autoload :ShellLauncher, 'actions/shell_launcher'
|
193
204
|
end
|
194
205
|
|
195
206
|
module Extensions
|