ecs_helper 0.0.25 → 0.0.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +7 -3
- data/ecs_helper.gemspec +1 -0
- data/lib/ecs_helper/client.rb +8 -1
- data/lib/ecs_helper/command/base.rb +1 -0
- data/lib/ecs_helper/command/export_env_secrets.rb +46 -0
- data/lib/ecs_helper/command/export_images.rb +1 -1
- data/lib/ecs_helper/command.rb +2 -0
- data/lib/ecs_helper/version.rb +1 -1
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 16ad520e81a6ee88b6cb3b67c8e68ee1cf0e724ea20d1fdd8595ffda8023be65
|
4
|
+
data.tar.gz: 6d1398b798ae584fbb163d6234f01b209abb00bdd33489ee75e5ec2aae1f9bcd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 44029c3fab73d9878376b1590bcba8a0f1ab39324a0aadac136f9736021514390fffec0c221d20769602c14934558221b1685eca8e1867a4f199e7790b5865b5
|
7
|
+
data.tar.gz: abda0b0495455d13034a82345d2ff5dc09349a08b80c4b641b41ad3117f37fe3a28e25469f4857275babcad65673587dbb76f6398602e8b7447095a6a5f99e8d
|
data/Gemfile.lock
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
ecs_helper (0.0.
|
4
|
+
ecs_helper (0.0.25)
|
5
5
|
aws-sdk-ecr (~> 1.42, >= 1.42)
|
6
6
|
aws-sdk-ecrpublic (~> 1.3, >= 1.3)
|
7
7
|
aws-sdk-ecs (~> 1.80, >= 1.80)
|
8
|
+
aws-sdk-ssm (~> 1.0.0.rc7)
|
8
9
|
colorize (~> 0.8, >= 0.8)
|
9
10
|
json (~> 2.5, >= 2.5)
|
10
11
|
terrapin (~> 0.6, >= 0.6)
|
@@ -17,13 +18,13 @@ GEM
|
|
17
18
|
ast (2.4.2)
|
18
19
|
awesome_print (1.9.2)
|
19
20
|
aws-eventstream (1.2.0)
|
20
|
-
aws-partitions (1.
|
21
|
+
aws-partitions (1.503.0)
|
21
22
|
aws-sdk-core (3.121.0)
|
22
23
|
aws-eventstream (~> 1, >= 1.0.2)
|
23
24
|
aws-partitions (~> 1, >= 1.239.0)
|
24
25
|
aws-sigv4 (~> 1.1)
|
25
26
|
jmespath (~> 1.0)
|
26
|
-
aws-sdk-ecr (1.
|
27
|
+
aws-sdk-ecr (1.46.0)
|
27
28
|
aws-sdk-core (~> 3, >= 3.120.0)
|
28
29
|
aws-sigv4 (~> 1.1)
|
29
30
|
aws-sdk-ecrpublic (1.6.0)
|
@@ -32,6 +33,9 @@ GEM
|
|
32
33
|
aws-sdk-ecs (1.85.0)
|
33
34
|
aws-sdk-core (~> 3, >= 3.120.0)
|
34
35
|
aws-sigv4 (~> 1.1)
|
36
|
+
aws-sdk-ssm (1.0.0)
|
37
|
+
aws-sdk-core (~> 3)
|
38
|
+
aws-sigv4 (~> 1.0)
|
35
39
|
aws-sigv4 (1.4.0)
|
36
40
|
aws-eventstream (~> 1, >= 1.0.2)
|
37
41
|
byebug (11.1.3)
|
data/ecs_helper.gemspec
CHANGED
@@ -36,6 +36,7 @@ Gem::Specification.new do |s|
|
|
36
36
|
s.add_runtime_dependency 'aws-sdk-ecr', '~> 1.42', '>= 1.42'
|
37
37
|
s.add_runtime_dependency 'aws-sdk-ecrpublic', '~> 1.3', '>= 1.3'
|
38
38
|
s.add_runtime_dependency 'aws-sdk-ecs', '~> 1.80', '>= 1.80'
|
39
|
+
s.add_runtime_dependency 'aws-sdk-ssm', '~> 1.0.0.rc7'
|
39
40
|
s.add_runtime_dependency 'colorize', '~> 0.8', '>= 0.8'
|
40
41
|
s.add_runtime_dependency 'json', '~> 2.5', '>= 2.5'
|
41
42
|
s.add_runtime_dependency 'terrapin', '~> 0.6', '>= 0.6'
|
data/lib/ecs_helper/client.rb
CHANGED
@@ -1,11 +1,13 @@
|
|
1
1
|
require 'aws-sdk-ecs'
|
2
2
|
require 'aws-sdk-ecr'
|
3
|
+
require 'aws-sdk-ssm'
|
3
4
|
|
4
5
|
class ECSHelper::Client
|
5
|
-
attr_accessor :ecs, :ecr
|
6
|
+
attr_accessor :ecs, :ecr, :ssm
|
6
7
|
def initialize
|
7
8
|
@ecs = Aws::ECS::Client.new
|
8
9
|
@ecr = Aws::ECR::Client.new
|
10
|
+
@ssm = Aws::SSM::Client.new
|
9
11
|
end
|
10
12
|
|
11
13
|
# ECS
|
@@ -62,4 +64,9 @@ class ECSHelper::Client
|
|
62
64
|
def describe_images(params = {})
|
63
65
|
ecr.describe_images(params).image_details[0]
|
64
66
|
end
|
67
|
+
|
68
|
+
# SSM
|
69
|
+
def get_ssm_parameters(params = {})
|
70
|
+
ssm.get_parameters(params).parameters
|
71
|
+
end
|
65
72
|
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'terrapin'
|
2
|
+
|
3
|
+
class ECSHelper::Command::ExportEnvSecrets < ECSHelper::Command::Base
|
4
|
+
attr_accessor :params
|
5
|
+
|
6
|
+
def cmd_option_parser
|
7
|
+
options = {
|
8
|
+
env_vars: []
|
9
|
+
}
|
10
|
+
parser = ::OptionParser.new do |opts|
|
11
|
+
opts.banner = "Usage: ecs_helper export_env_secrets"
|
12
|
+
opts.on('-n', '--name=VARIABLE', '') { |o| options[:env_vars] << o }
|
13
|
+
end
|
14
|
+
[parser, options]
|
15
|
+
end
|
16
|
+
|
17
|
+
def required
|
18
|
+
[]
|
19
|
+
end
|
20
|
+
|
21
|
+
def run
|
22
|
+
return log("No ENV secrets to export. Please pass ENV variables names using -n") if options[:env_vars].empty?
|
23
|
+
export_values
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
def to_aws_ssm_name(name)
|
29
|
+
"/#{helper.project}-#{helper.application}-#{helper.environment}/#{name}"
|
30
|
+
end
|
31
|
+
|
32
|
+
def export_values
|
33
|
+
params_name = options[:env_vars].map {|var_name| to_aws_ssm_name(var_name)}
|
34
|
+
aws_ssm_params = client.get_ssm_parameters(names: params_name, with_decryption: true)
|
35
|
+
|
36
|
+
variables = (['export'] + aws_ssm_params.map do |aws_ssm_param|
|
37
|
+
next if aws_ssm_param.empty?
|
38
|
+
value = aws_ssm_param.value
|
39
|
+
name = aws_ssm_param.name.split('/').last
|
40
|
+
|
41
|
+
"#{name}=#{value}"
|
42
|
+
rescue Aws::SSM::Errors::ParameterNotFound
|
43
|
+
next
|
44
|
+
end).join(' ')
|
45
|
+
end
|
46
|
+
end
|
data/lib/ecs_helper/command.rb
CHANGED
@@ -6,6 +6,7 @@ class ECSHelper::Command
|
|
6
6
|
autoload :ExportImages, 'ecs_helper/command/export_images'
|
7
7
|
autoload :ECRLogin, 'ecs_helper/command/ecr_login'
|
8
8
|
autoload :RunCommand, 'ecs_helper/command/run_command'
|
9
|
+
autoload :ExportEnvSecrets, 'ecs_helper/command/export_env_secrets'
|
9
10
|
|
10
11
|
CMD_MAPPING = {
|
11
12
|
"build_and_push" => BuildAndPush,
|
@@ -13,6 +14,7 @@ class ECSHelper::Command
|
|
13
14
|
"export_images" => ExportImages,
|
14
15
|
"ecr_login" => ECRLogin,
|
15
16
|
"run_command" => RunCommand,
|
17
|
+
"export_env_secrets" => ExportEnvSecrets,
|
16
18
|
}
|
17
19
|
AVAILABLE_COMMANDS = CMD_MAPPING.keys
|
18
20
|
|
data/lib/ecs_helper/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ecs_helper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.26
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Artem Petrov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-09-
|
11
|
+
date: 2021-09-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: awesome_print
|
@@ -238,6 +238,20 @@ dependencies:
|
|
238
238
|
- - "~>"
|
239
239
|
- !ruby/object:Gem::Version
|
240
240
|
version: '1.80'
|
241
|
+
- !ruby/object:Gem::Dependency
|
242
|
+
name: aws-sdk-ssm
|
243
|
+
requirement: !ruby/object:Gem::Requirement
|
244
|
+
requirements:
|
245
|
+
- - "~>"
|
246
|
+
- !ruby/object:Gem::Version
|
247
|
+
version: 1.0.0.rc7
|
248
|
+
type: :runtime
|
249
|
+
prerelease: false
|
250
|
+
version_requirements: !ruby/object:Gem::Requirement
|
251
|
+
requirements:
|
252
|
+
- - "~>"
|
253
|
+
- !ruby/object:Gem::Version
|
254
|
+
version: 1.0.0.rc7
|
241
255
|
- !ruby/object:Gem::Dependency
|
242
256
|
name: colorize
|
243
257
|
requirement: !ruby/object:Gem::Requirement
|
@@ -322,6 +336,7 @@ files:
|
|
322
336
|
- lib/ecs_helper/command/build_and_push.rb
|
323
337
|
- lib/ecs_helper/command/deploy.rb
|
324
338
|
- lib/ecs_helper/command/ecr_login.rb
|
339
|
+
- lib/ecs_helper/command/export_env_secrets.rb
|
325
340
|
- lib/ecs_helper/command/export_images.rb
|
326
341
|
- lib/ecs_helper/command/run_command.rb
|
327
342
|
- lib/ecs_helper/common_helper.rb
|