hippo-cli 1.2.0 → 1.2.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/cli/exec.rb +23 -0
- data/cli/run.rb +1 -1
- data/cli/setup.rb +1 -1
- data/lib/hippo/manifest.rb +4 -0
- data/lib/hippo/package.rb +11 -0
- data/lib/hippo/secret_manager.rb +1 -1
- data/lib/hippo/stage.rb +10 -1
- data/lib/hippo/version.rb +1 -1
- data/lib/hippo/working_directory.rb +1 -1
- metadata +4 -26
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -3
- data/cli/console.rb +0 -29
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '004641278dbfd92f58567a1f92eaa75b11c1c9eeac15665c199e3df28e22367e'
|
4
|
+
data.tar.gz: 47109ddab7e7fb850c7cc303351647246b1a8c1fffa6b950007a33f4967df810
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 16734fb7e2bfbc8757c15f6b99675506efe9f64810cfc31a676d694a6206e0ed89a4bde0dc3d8ee93417bb9bfc706225371ef2785fe4f0f25d97e4d3bf15d422
|
7
|
+
data.tar.gz: feffdb308806ec55694a0ede2ff980f674d73daa0ee9c2ebba55e87b6c2c34ff54815e82019c8defbeac15e9e4dc1ab945cb927118d6f23289e96c192db7363b
|
data/cli/exec.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
command :exec do
|
4
|
+
desc 'Exec a command on a given pod'
|
5
|
+
|
6
|
+
action do |context|
|
7
|
+
require 'hippo/cli'
|
8
|
+
cli = Hippo::CLI.setup(context)
|
9
|
+
cli.preflight
|
10
|
+
|
11
|
+
command = context.args[2]
|
12
|
+
if command.nil?
|
13
|
+
raise Error, 'Must specify command alias as first argument after `exec`'
|
14
|
+
end
|
15
|
+
|
16
|
+
command = cli.stage.command(command)
|
17
|
+
raise Error, "Invalid command alias `#{context.args[2]}`" if command.nil?
|
18
|
+
|
19
|
+
command_to_run = ([command[:command]] + context.args[3..-1]).join(' ')
|
20
|
+
|
21
|
+
exec cli.stage.kubectl("exec -it #{command[:target]} -- #{command_to_run}").join(' ')
|
22
|
+
end
|
23
|
+
end
|
data/cli/run.rb
CHANGED
@@ -12,7 +12,7 @@ command :run do
|
|
12
12
|
cli = Hippo::CLI.setup(context)
|
13
13
|
cli.preflight
|
14
14
|
|
15
|
-
image = cli.stage.images.values.first
|
15
|
+
image = cli.stage.images[context.options[:image]] || cli.stage.images.values.first
|
16
16
|
raise Error, "No image exists at #{image.image_url}" unless image.exists?
|
17
17
|
|
18
18
|
command = context.options[:command] || '/bin/bash'
|
data/cli/setup.rb
CHANGED
@@ -52,7 +52,7 @@ command :setup do
|
|
52
52
|
|
53
53
|
require 'yaml'
|
54
54
|
config = { 'source' => source }
|
55
|
-
File.open(File.join(path, '
|
55
|
+
File.open(File.join(path, 'manifest.yaml'), 'w') { |f| f.write(config.to_yaml) }
|
56
56
|
puts "Created configuration directory at #{path}"
|
57
57
|
|
58
58
|
require 'hippo/working_directory'
|
data/lib/hippo/manifest.rb
CHANGED
data/lib/hippo/package.rb
CHANGED
@@ -26,6 +26,13 @@ module Hippo
|
|
26
26
|
@options['package']
|
27
27
|
end
|
28
28
|
|
29
|
+
# Return the version of the chart to be used
|
30
|
+
#
|
31
|
+
# @return [String]
|
32
|
+
def chart_version
|
33
|
+
@options['chart_version']
|
34
|
+
end
|
35
|
+
|
29
36
|
# return values defined in the package's manifest file
|
30
37
|
#
|
31
38
|
# @return [Hash]
|
@@ -89,6 +96,9 @@ module Hippo
|
|
89
96
|
private
|
90
97
|
|
91
98
|
def install_command(verb, *additional)
|
99
|
+
if chart_version
|
100
|
+
additional = ['--version', chart_version] + additional
|
101
|
+
end
|
92
102
|
helm(verb, name, package, '-f', '-', *additional)
|
93
103
|
end
|
94
104
|
|
@@ -98,6 +108,7 @@ module Hippo
|
|
98
108
|
end
|
99
109
|
|
100
110
|
def run(command, stdin: nil)
|
111
|
+
puts command
|
101
112
|
stdout, stderr, status = Open3.capture3(*command, stdin_data: stdin)
|
102
113
|
raise Error, "[helm] #{stderr}" unless status.success?
|
103
114
|
|
data/lib/hippo/secret_manager.rb
CHANGED
data/lib/hippo/stage.rb
CHANGED
@@ -45,6 +45,16 @@ module Hippo
|
|
45
45
|
@options['config']
|
46
46
|
end
|
47
47
|
|
48
|
+
def command(name)
|
49
|
+
base = manifest.commands[name]
|
50
|
+
return nil if base.nil?
|
51
|
+
|
52
|
+
{
|
53
|
+
target: base['target'],
|
54
|
+
command: decorator.call(base['command'])
|
55
|
+
}
|
56
|
+
end
|
57
|
+
|
48
58
|
def images
|
49
59
|
@images ||= manifest.images.deep_merge(@options['images'] || {}).each_with_object({}) do |(key, image), hash|
|
50
60
|
hash[key] = Image.new(key, image)
|
@@ -238,7 +248,6 @@ module Hippo
|
|
238
248
|
Util.parse_kubectl_apply_lines(stdout)
|
239
249
|
true
|
240
250
|
else
|
241
|
-
stderr = stderr.read
|
242
251
|
if stderr =~ /\" not found$/
|
243
252
|
false
|
244
253
|
else
|
data/lib/hippo/version.rb
CHANGED
@@ -168,7 +168,7 @@ module Hippo
|
|
168
168
|
#
|
169
169
|
# @return [Hash<Symbol, Hippo::Stage>]
|
170
170
|
def stages
|
171
|
-
objects = Util.load_objects_from_path(File.join(@root, '
|
171
|
+
objects = Util.load_objects_from_path(File.join(@root, '*', 'config.{yml,yaml}'))
|
172
172
|
objects.each_with_object({}) do |(path, objects), hash|
|
173
173
|
objects.each do |obj|
|
174
174
|
stage = Stage.new(self, File.dirname(path), obj)
|
metadata
CHANGED
@@ -1,36 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hippo-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Cooke
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
|
-
cert_chain:
|
11
|
-
-
|
12
|
-
-----BEGIN CERTIFICATE-----
|
13
|
-
MIIDZDCCAkygAwIBAgIBATANBgkqhkiG9w0BAQUFADA8MQswCQYDVQQDDAJtZTEZ
|
14
|
-
MBcGCgmSJomT8ixkARkWCWFkYW1jb29rZTESMBAGCgmSJomT8ixkARkWAmlvMB4X
|
15
|
-
DTE5MDUxNDEzNTIxM1oXDTIwMDUxMzEzNTIxM1owPDELMAkGA1UEAwwCbWUxGTAX
|
16
|
-
BgoJkiaJk/IsZAEZFglhZGFtY29va2UxEjAQBgoJkiaJk/IsZAEZFgJpbzCCASIw
|
17
|
-
DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMUohRlPw3iIOhWZq+qf5N1ATm1H
|
18
|
-
7gBO4TpsUrw/FL/+urFExzt1+4MPfiKjILge48vKpjoTfuZusRsOQebaFidOfmhk
|
19
|
-
sEqa941CvN3OeUYARA53ORlmoLDLmdcrxq430+woFp4uuSYwim/2YQgIMdgiOTqs
|
20
|
-
cHaM9yh/xUGMnH4lB9bBDNfggMmkSFb6P8Ax4rvdX3EVv5P58RHwHszd+UI4fyy9
|
21
|
-
0W143m6ntNmqena4ZOc7HtWtRyDHHXXzlGgmghKEZgOA+/LO53VHp+cM0JqB7lq5
|
22
|
-
ZxN43fQrIT5yY9Dy7dRBeiDo53WNJPspa5soEivCBVYstMqfd+LGk/BnsyMCAwEA
|
23
|
-
AaNxMG8wCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFGlRGerNfr6J
|
24
|
-
Dprgl6DQ3kLvgVvPMBoGA1UdEQQTMBGBD21lQGFkYW1jb29rZS5pbzAaBgNVHRIE
|
25
|
-
EzARgQ9tZUBhZGFtY29va2UuaW8wDQYJKoZIhvcNAQEFBQADggEBAK2TQPMeW9qh
|
26
|
-
NDNoVbbplfSc8/uscSP2DfssCbhXQqeDfF2z+kQpxv8iAc++KTlotqOaX5A6RvLb
|
27
|
-
NvuwMHPJRQJ2e8rbuN8Sh3tUjbkAEv3SFw4hqbKmtp0j2oKBU0dxHWNfp+5ulh2l
|
28
|
-
UXnQAt4zg3v1hTD1VrwLqG/hyk9xAaWB38lEDBuPhLrDIdDJklg9bD1E2TUvoMrg
|
29
|
-
L6TIbdP1TRrxINO1D9GzboR+OuWos7qMLBEEbjat/fQchYrW1KLcHIUCyrGkZTLm
|
30
|
-
3wUJNGnT5XYq+qvTqmjkTSTfdGvZCM63C6bGdN5CAyMokGOOatGqyCMAONolWnfC
|
31
|
-
gm3t2GWWrxY=
|
32
|
-
-----END CERTIFICATE-----
|
33
|
-
date: 2020-02-17 00:00:00.000000000 Z
|
10
|
+
cert_chain: []
|
11
|
+
date: 2021-08-10 00:00:00.000000000 Z
|
34
12
|
dependencies:
|
35
13
|
- !ruby/object:Gem::Dependency
|
36
14
|
name: encryptor
|
@@ -143,9 +121,9 @@ files:
|
|
143
121
|
- bin/hippo
|
144
122
|
- cli/apply_config.rb
|
145
123
|
- cli/apply_services.rb
|
146
|
-
- cli/console.rb
|
147
124
|
- cli/create.rb
|
148
125
|
- cli/deploy.rb
|
126
|
+
- cli/exec.rb
|
149
127
|
- cli/help.rb
|
150
128
|
- cli/init.rb
|
151
129
|
- cli/install.rb
|
checksums.yaml.gz.sig
DELETED
Binary file
|
data.tar.gz.sig
DELETED
data/cli/console.rb
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
command :console do
|
4
|
-
desc 'Open a console based on the configuration'
|
5
|
-
|
6
|
-
option '-d', '--deployment [NAME]', 'The name of the deployment to use' do |value, options|
|
7
|
-
options[:deployment] = value.to_s
|
8
|
-
end
|
9
|
-
|
10
|
-
option '-c', '--command [NAME]', 'The command to run' do |value, options|
|
11
|
-
options[:command] = value.to_s
|
12
|
-
end
|
13
|
-
|
14
|
-
action do |context|
|
15
|
-
require 'hippo/cli'
|
16
|
-
cli = Hippo::CLI.setup(context)
|
17
|
-
|
18
|
-
if cli.manifest.console.nil?
|
19
|
-
raise Error, 'No console configuration has been provided in Hippofile'
|
20
|
-
end
|
21
|
-
|
22
|
-
cli.preflight
|
23
|
-
|
24
|
-
time = Time.now.to_i
|
25
|
-
deployment_name = context.options[:deployment] || cli.manifest.console['deployment']
|
26
|
-
command = context.options[:command] || cli.manifest.console['command'] || 'bash'
|
27
|
-
exec cli.stage.kubectl("exec -it deployment/#{deployment_name} -- #{command}").join(' ')
|
28
|
-
end
|
29
|
-
end
|
metadata.gz.sig
DELETED
Binary file
|