kuber_kit 0.3.0 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/TODO.md +0 -1
- data/lib/kuber_kit/service_deployer/strategies/docker_compose.rb +6 -1
- data/lib/kuber_kit/shell/abstract_shell.rb +4 -0
- data/lib/kuber_kit/shell/commands/docker_compose_commands.rb +14 -2
- data/lib/kuber_kit/shell/commands/kubectl_commands.rb +1 -2
- data/lib/kuber_kit/shell/local_shell.rb +10 -0
- data/lib/kuber_kit/shell/ssh_shell.rb +4 -0
- data/lib/kuber_kit/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d3088efcb997e3dda2dbcd85d584265b7a5eec03b20093265842e3396592ab35
|
4
|
+
data.tar.gz: a52e92d808c31b2a0f654e8ba2eaa9cf46a0b7352855f7602e63fee7a09a1271
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5ab6df03558b78d0d146cd6d77224f048564ae8d84c9c6d18d2b9abddb6d6cd8c1e8306549bad16c254fd5632b83c2cfceb690518216251efc4008983aa31f86
|
7
|
+
data.tar.gz: 1a2837bfa4334e33fa3c7aee7274516c297e9df0b92adf0fd7f021576c3682af2b48f9336c80b849bf1c5655a88f4d3cf43a42f6669140f5875e99a6710b5a5e
|
data/Gemfile.lock
CHANGED
data/TODO.md
CHANGED
@@ -4,6 +4,5 @@
|
|
4
4
|
- allow deploying only services enabled for specific configuration
|
5
5
|
- find a way to always deploy some service, e.g. for migrations and env_files
|
6
6
|
- add ability to set container health checks
|
7
|
-
- implement interactive shell.exec!
|
8
7
|
- template should be able to set default attributes
|
9
8
|
- template should be able to depend on image?
|
@@ -13,7 +13,12 @@ class KuberKit::ServiceDeployer::Strategies::DockerCompose < KuberKit::ServiceDe
|
|
13
13
|
|
14
14
|
deployment_service_name = service.attribute(:deployment_service_name, default: service.name.to_s)
|
15
15
|
deployment_command_name = service.attribute(:deployment_command_name, default: "bash")
|
16
|
+
deployment_interactive = service.attribute(:deployment_interactive, default: false)
|
16
17
|
|
17
|
-
docker_compose_commands.run(shell, config_path,
|
18
|
+
docker_compose_commands.run(shell, config_path,
|
19
|
+
service: deployment_service_name,
|
20
|
+
command: deployment_command_name,
|
21
|
+
interactive: deployment_interactive
|
22
|
+
)
|
18
23
|
end
|
19
24
|
end
|
@@ -6,6 +6,10 @@ class KuberKit::Shell::AbstractShell
|
|
6
6
|
raise KuberKit::NotImplementedError, "must be implemented"
|
7
7
|
end
|
8
8
|
|
9
|
+
def interactive!(command)
|
10
|
+
raise KuberKit::NotImplementedError, "must be implemented"
|
11
|
+
end
|
12
|
+
|
9
13
|
def read(file_path)
|
10
14
|
raise KuberKit::NotImplementedError, "must be implemented"
|
11
15
|
end
|
@@ -1,5 +1,17 @@
|
|
1
1
|
class KuberKit::Shell::Commands::DockerComposeCommands
|
2
|
-
def run(shell, path, service:, command:)
|
3
|
-
|
2
|
+
def run(shell, path, service:, command:, interactive: false)
|
3
|
+
command_parts = [
|
4
|
+
"docker-compose",
|
5
|
+
"-f #{path}",
|
6
|
+
"run",
|
7
|
+
service,
|
8
|
+
command
|
9
|
+
]
|
10
|
+
|
11
|
+
if interactive
|
12
|
+
shell.interactive!(command_parts.join(" "))
|
13
|
+
else
|
14
|
+
shell.exec!(command_parts.join(" "))
|
15
|
+
end
|
4
16
|
end
|
5
17
|
end
|
@@ -16,9 +16,8 @@ class KuberKit::Shell::Commands::KubectlCommands
|
|
16
16
|
|
17
17
|
command_parts += Array(command_list)
|
18
18
|
|
19
|
-
# TODO: investigate how to do it with shell.
|
20
19
|
if interactive
|
21
|
-
|
20
|
+
shell.interactive!(command_parts.join(" "))
|
22
21
|
else
|
23
22
|
shell.exec!(command_parts.join(" "))
|
24
23
|
end
|
@@ -30,6 +30,16 @@ class KuberKit::Shell::LocalShell < KuberKit::Shell::AbstractShell
|
|
30
30
|
result
|
31
31
|
end
|
32
32
|
|
33
|
+
def interactive!(command, log_command: true)
|
34
|
+
command_number = command_counter.get_number.to_s.rjust(2, "0")
|
35
|
+
|
36
|
+
if log_command
|
37
|
+
logger.info("Interactive: [#{command_number}]: #{command.to_s.cyan}")
|
38
|
+
end
|
39
|
+
|
40
|
+
system(command)
|
41
|
+
end
|
42
|
+
|
33
43
|
def sync(local_path, remote_path, exclude: nil, delete: true)
|
34
44
|
rsync_commands.rsync(self, local_path, remote_path, exclude: exclude, delete: delete)
|
35
45
|
end
|
@@ -38,6 +38,10 @@ class KuberKit::Shell::SshShell < KuberKit::Shell::LocalShell
|
|
38
38
|
raise ShellError.new(e.message)
|
39
39
|
end
|
40
40
|
|
41
|
+
def interactive!(command, log_command: true)
|
42
|
+
raise "Currently interactive run is not supported for ssh shell."
|
43
|
+
end
|
44
|
+
|
41
45
|
def sync(local_path, remote_path, exclude: nil, delete: true)
|
42
46
|
rsync_commands.rsync(
|
43
47
|
local_shell, local_path, remote_path,
|
data/lib/kuber_kit/version.rb
CHANGED
metadata
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kuber_kit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Iskander Khaziev
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
date: 2020-12-10 00:00:00.000000000 Z
|
@@ -289,7 +289,7 @@ homepage: https://github.com/ArtStation/kuber_kit
|
|
289
289
|
licenses:
|
290
290
|
- MIT
|
291
291
|
metadata: {}
|
292
|
-
post_install_message:
|
292
|
+
post_install_message:
|
293
293
|
rdoc_options: []
|
294
294
|
require_paths:
|
295
295
|
- lib
|
@@ -305,7 +305,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
305
305
|
version: '0'
|
306
306
|
requirements: []
|
307
307
|
rubygems_version: 3.0.8
|
308
|
-
signing_key:
|
308
|
+
signing_key:
|
309
309
|
specification_version: 4
|
310
310
|
summary: Docker Containers Build & Deployment
|
311
311
|
test_files: []
|