Class: KubesAws::SSM
- Inherits:
-
Object
- Object
- KubesAws::SSM
- Includes:
- Services
- Defined in:
- lib/kubes_aws/ssm.rb,
lib/kubes_aws/ssm/fetcher.rb
Defined Under Namespace
Classes: Fetcher
Constant Summary collapse
- PAGE_SIZE =
1
Instance Method Summary collapse
- #call ⇒ Object
- #data ⇒ Object
-
#initialize(upcase: false, base64: false, prefix: nil, filters: []) ⇒ SSM
constructor
A new instance of SSM.
-
#items ⇒ Object
Returns flattened lazy Enumerator.
Methods included from Services
Constructor Details
#initialize(upcase: false, base64: false, prefix: nil, filters: []) ⇒ SSM
Returns a new instance of SSM.
5 6 7 8 |
# File 'lib/kubes_aws/ssm.rb', line 5 def initialize(upcase: false, base64: false, prefix: nil, filters: []) @upcase, @base64, @filters = upcase, base64, filters @prefix = ENV['AWS_SSM_PREFIX'] || prefix # IE: prefix: /demo/dev/ end |
Instance Method Details
#call ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/kubes_aws/ssm.rb', line 10 def call items.each do |item| next unless item.name.include?(@prefix) resp = ssm.get_parameter(name: item.name, with_decryption: true) parameter = resp.parameter key = parameter.name.sub(@prefix,'') value = parameter.value value = Base64.strict_encode64(value).strip if @base64 key = key.upcase if @upcase self.class.data[key] = value end end |
#data ⇒ Object
50 51 52 |
# File 'lib/kubes_aws/ssm.rb', line 50 def data self.class.data end |
#items ⇒ Object
Returns flattened lazy Enumerator
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/kubes_aws/ssm.rb', line 27 def items Enumerator.new do |y| next_token = nil loop do args = {max_results: PAGE_SIZE} args[:next_token] = next_token if next_token args.merge!(parameter_filters: @filters) resp = ssm.get_parameters_by_path( path: @prefix, ) items = resp.parameters next_token = resp.next_token y.yield(items, resp) # also provided the original resp always in case it is useful break unless next_token end end.lazy.flat_map { |v| v } end |