hako-rcredstash 0.1.0

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 0ecc22a246047ebeac2287068ead419f54ca8379
4
+ data.tar.gz: ee0eeb21b008d2b0cf569806043c2efc67224ce2
5
+ SHA512:
6
+ metadata.gz: 0074da641369a64b653168533a17c593ac80dbd26b1cef5f64663a0a352e2e25a85860410502d80a8bdc395fecfb159355cf421f27bead9ed9b8860f9041829a
7
+ data.tar.gz: 7eeaba3c2b787322de73cb6b4900cda6f4b21c6254b3e807f856ba055d194f55f21b39d1b236b33776bfdd412fe16b6930d5e3cf77caead97a8bccc53b809dc6
data/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
data/.rubocop.yml ADDED
@@ -0,0 +1,17 @@
1
+ inherit_from: .rubocop_todo.yml
2
+
3
+ Style/GuardClause:
4
+ Enabled: false
5
+
6
+ Style/HashSyntax:
7
+ Exclude:
8
+ - 'Rakefile'
9
+
10
+ Style/IfUnlessModifier:
11
+ Enabled: false
12
+
13
+ Style/SignalException:
14
+ Enabled: false
15
+
16
+ Style/TrailingComma:
17
+ Enabled: false
data/.rubocop_todo.yml ADDED
@@ -0,0 +1,11 @@
1
+ Metrics/AbcSize:
2
+ Enabled: false
3
+
4
+ Metrics/LineLength:
5
+ Enabled: false
6
+
7
+ Metrics/MethodLength:
8
+ Enabled: false
9
+
10
+ Style/Documentation:
11
+ Enabled: false
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in hako-etcenv.gemspec
4
+ gemspec
data/README.md ADDED
@@ -0,0 +1,47 @@
1
+ # Hako::EnvProviders::Rcredstash
2
+ Provide variables from [rcredstash](https://github.com/adorechic/rcredstash) to [hako](https://github.com/eagletmt/hako)
3
+
4
+ ## Installation
5
+
6
+ Add this line to your application's Gemfile:
7
+
8
+ ```ruby
9
+ gem 'hako-rcredstash'
10
+ ```
11
+
12
+ And then execute:
13
+
14
+ $ bundle
15
+
16
+ Or install it yourself as:
17
+
18
+ $ gem install hako-rcredstash
19
+
20
+ ## Usage
21
+
22
+ 1. Put encrypted value using rcredstash
23
+
24
+ ```
25
+ $ rcredstash put encrypted.some_password
26
+ secret value> veryverysecret
27
+ $ rcredstash get encrypted.some_password
28
+ veryverysecret
29
+ ```
30
+
31
+ 2. Setting hako and run it
32
+ ```
33
+ env:
34
+ $providers:
35
+ - type: rcredstash
36
+ SOME_PASSWORD: ‘#{encrypted.some_password}'
37
+ ```
38
+
39
+ 3. A value is set for the ECS environment variable
40
+
41
+ ```
42
+ Environment Variables
43
+ Key Value
44
+ SOME_PASSWORD veryverysecret
45
+ ```
46
+
47
+
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require 'bundler/gem_tasks'
2
+
3
+ task :default => [:rubocop]
4
+
5
+ require 'rubocop/rake_task'
6
+ RuboCop::RakeTask.new(:rubocop)
@@ -0,0 +1,26 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = 'hako-rcredstash'
7
+ spec.version = '0.1.0'
8
+ spec.authors = ['moaikids']
9
+ spec.email = ['moaikids@gmail.com']
10
+
11
+ spec.summary = 'Provide variables from rcredstash to hako using etcenv'
12
+ spec.description = 'Provide variables from rcredstash to hako using etcenv'
13
+ spec.homepage = 'https://github.com/moaikids/hako-rcredstash'
14
+
15
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
16
+ spec.bindir = 'exe'
17
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
18
+ spec.require_paths = ['lib']
19
+
20
+ spec.add_dependency 'etcenv'
21
+ spec.add_dependency 'hako', '>= 0.2.0'
22
+ spec.add_dependency 'rcredstash', '>= 0.11.0'
23
+ spec.add_development_dependency 'bundler'
24
+ spec.add_development_dependency 'rake'
25
+ spec.add_development_dependency 'rubocop'
26
+ end
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'hako/env_provider'
4
+ require 'rcredstash'
5
+
6
+ module Hako
7
+ module EnvProviders
8
+ class Rcredstash < EnvProvider
9
+ # @param [Pathname] root_path
10
+ # @param [Hash<String, Object>] options
11
+ def initialize(root_path, options)
12
+ @client = options['client'] || CredStash
13
+ end
14
+
15
+ # @param [Array<String>] variables
16
+ # @return [Hash<String, String>]
17
+ def ask(variables)
18
+ env = {}
19
+ variables.each do |key|
20
+ val = get_value_from_credstash(key)
21
+ if val
22
+ env[key] = val
23
+ end
24
+ end
25
+ env
26
+ end
27
+
28
+ # @return [Boolean]
29
+ def can_ask_keys?
30
+ true
31
+ end
32
+
33
+ # @param [Array<String>] variables
34
+ # @return [Array<String>]
35
+ def ask_keys(variables)
36
+ keys = []
37
+ read_keys_from_credstash.each do |key, _|
38
+ if variables.include?(key)
39
+ keys << key
40
+ end
41
+ end
42
+ keys
43
+ end
44
+
45
+ private
46
+
47
+ # @return [Hash<String, Integer>]
48
+ def read_keys_from_credstash()
49
+ @client.list
50
+ end
51
+
52
+ # @param [String] key
53
+ # @return [String]
54
+ def get_value_from_credstash(key)
55
+ @client.get(key)
56
+ end
57
+ end
58
+ end
59
+ end
metadata ADDED
@@ -0,0 +1,135 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: hako-rcredstash
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - moaikids
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2017-09-15 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: etcenv
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: hako
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 0.2.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 0.2.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: rcredstash
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: 0.11.0
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: 0.11.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: bundler
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rubocop
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ description: Provide variables from rcredstash to hako using etcenv
98
+ email:
99
+ - moaikids@gmail.com
100
+ executables: []
101
+ extensions: []
102
+ extra_rdoc_files: []
103
+ files:
104
+ - ".gitignore"
105
+ - ".rubocop.yml"
106
+ - ".rubocop_todo.yml"
107
+ - Gemfile
108
+ - README.md
109
+ - Rakefile
110
+ - hako-rcredstash.gemspec
111
+ - lib/hako/env_providers/rcredstash.rb
112
+ homepage: https://github.com/moaikids/hako-rcredstash
113
+ licenses: []
114
+ metadata: {}
115
+ post_install_message:
116
+ rdoc_options: []
117
+ require_paths:
118
+ - lib
119
+ required_ruby_version: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: '0'
124
+ required_rubygems_version: !ruby/object:Gem::Requirement
125
+ requirements:
126
+ - - ">="
127
+ - !ruby/object:Gem::Version
128
+ version: '0'
129
+ requirements: []
130
+ rubyforge_project:
131
+ rubygems_version: 2.6.12
132
+ signing_key:
133
+ specification_version: 4
134
+ summary: Provide variables from rcredstash to hako using etcenv
135
+ test_files: []