cps-property-generator 0.2.13 → 0.2.14

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 202188fe59edafc4ddb51f8b4d285dc8a38ede94
4
- data.tar.gz: 387b7905cfdb7472d09a426fda83f633c41794d7
3
+ metadata.gz: a92aa70bf1eb0d003090e5cb5d7d42d6e3fd2353
4
+ data.tar.gz: d313236d4357af37d7ceca7e4e1703cc982971ee
5
5
  SHA512:
6
- metadata.gz: cd5b14643b19438c1be8cc65b90c5d4bda7bcf5bd710d1a228396982b41c809a2d0c844930c175dae3026f6eb8c4da20b79477045181d3bbe515f8c15f8c1043
7
- data.tar.gz: 3002871e1b5f17a67e5a5b38f84781e4147d1dacbbb5bc6f30c02cc8ec5af4c3d8397243a0fe8ac42d31a4a8a9e6d9d5f33e4055436d3478e47d7117a77508f6
6
+ metadata.gz: 057bd3529819bdcb57760b5692b5f8be89bcd61b00ae0ebbe703030f50c80d534717029dabfea0b0d7eb5f76ae4dc3a325066b39bd0cacba02d6c76914addd4c
7
+ data.tar.gz: beca6f7166b0b8eaa71598433f1b0f81eae384e42ffe31d9a6524f1c3c01ef62e2cbe187d5acadc352085218c629c7848b47df0cfe9eca60332126c7f2adf06d
data/README.md CHANGED
@@ -77,6 +77,21 @@ touch globals.yml
77
77
  1. Create a folder called `environments` inside your folder named after your account.
78
78
  2. Inside the `environments` folder create a yaml file named after the environment you would like to define globals for. Only environments defined in your config are supported. The environment must also be mapped in the config to the account the sharing the same name as the folder the environment global yaml file lives in.
79
79
  3. In the newly created environment's yaml file you may define your globals.
80
+ ###### Encrypted Properties in Environment Globals
81
+ If you would like to pass in an encrypted property to all services in a given environment, you can pass in ckrt encrypted values by having an `encrypted` block in your environment global file.
82
+ ```yaml
83
+ property_name_1: value
84
+ property_name_2: value
85
+ encrypted:
86
+ encrypted_property_1:
87
+ $ssm:
88
+ region: region
89
+ encrypted: encrypted_value
90
+ encrypted_property_2:
91
+ $ssm:
92
+ region: region
93
+ encrypted: encrypted_value
94
+ ```
80
95
 
81
96
  ##### Step 3: Creating your service definitions
82
97
  Service definitions have the highest level of supersedence and will overwrite matching global definitions.
@@ -41,6 +41,11 @@ module PropertyGenerator
41
41
  @environments.each do |env|
42
42
  next unless File.exists?("#{@project_path}/globals/accounts/#{account}/environments/#{env}.yml")
43
43
  data[account][env] = YAML.load_file("#{@project_path}/globals/accounts/#{account}/environments/#{env}.yml")
44
+ unless data[account][env]['encrypted'].nil?
45
+ encrypted = data[account][env]['encrypted'].dup
46
+ not_encrypted = data[account][env].reject { |k,_| k == 'encrypted' }
47
+ data[account][env] = not_encrypted.merge(encrypted)
48
+ end
44
49
  end
45
50
  end
46
51
  data
@@ -16,11 +16,11 @@ module PropertyGenerator
16
16
  end
17
17
 
18
18
  it 'should read the environment globals' do
19
- expect(global.get_environment_globals).to eq({123456789012=>{'my-test-env1'=>{'my_env'=>'my-test-env1'}}})
19
+ expect(global.get_environment_globals).to eq({123456789012=>{'my-test-env1'=>{'my_env'=>'my-test-env1', 'test_encrypted' => { '$ssm' => { 'region' => 'region', 'encrypted' => 'encrypted_value' }}}}})
20
20
  end
21
21
 
22
22
  it 'should condense the globals accurately' do
23
- expect(global.condense_globals).to eq({'my-test-env1'=>{'foo' => 'bar', 'my_account'=>123456789012, 'my_env'=>'my-test-env1'},
23
+ expect(global.condense_globals).to eq({'my-test-env1'=>{'foo' => 'bar', 'my_account'=>123456789012, 'my_env'=>'my-test-env1', 'test_encrypted' => { '$ssm' => { 'region' => 'region', 'encrypted' => 'encrypted_value' }}},
24
24
  'my-test-env2' => {'foo' => 'bar'}})
25
25
  end
26
26
 
@@ -1,18 +1,19 @@
1
- require 'spec_helper'
2
- require_relative '../../lib/generator/service'
3
- require_relative '../../lib/generator/globals'
4
- require_relative '../../lib/generator/config'
5
- require 'pp'
1
+ require "spec_helper"
2
+ require_relative "../../lib/generator/service"
3
+ require_relative "../../lib/generator/globals"
4
+ require_relative "../../lib/generator/config"
5
+ require "pp"
6
6
  module PropertyGenerator
7
7
  describe Service do
8
8
  subject(:config) {PropertyGenerator::Config.new(File.expand_path("./spec/resources"))}
9
9
  subject(:globals) {PropertyGenerator::Globals.new(File.expand_path("./spec/resources"), config)}
10
- subject(:service) {described_class.new(YAML.load_file('./spec/resources/services/my-microservice-1.yml'), config, globals.globals)}
10
+ subject(:service) {described_class.new(YAML.load_file("./spec/resources/services/my-microservice-1.yml"), config, globals.globals)}
11
11
 
12
- it 'Parses and condenses a service\'s defaults and environment definitions' do
12
+ it "Parses and condenses a service\"s defaults and environment definitions" do
13
13
  expect(service.service).to eq({"my-test-env1"=> {"foo"=>"bar",
14
14
  "my_account"=>123456789012,
15
15
  "my_env"=>"my-test-env1",
16
+ "test_encrypted" => { "$ssm" => { "region" => "region", "encrypted" => "encrypted_value" }},
16
17
  "database.host"=>"my.database.{domain}",
17
18
  "database.port"=>3306},
18
19
  "my-test-env2"=> {"foo"=>"bar",
@@ -20,10 +21,11 @@ module PropertyGenerator
20
21
  "database.port"=>3306}})
21
22
  end
22
23
 
23
- it 'Tests interpolations work for a service' do
24
+ it "Tests interpolations work for a service" do
24
25
  expect(service.interpolate).to eq({"my-test-env1"=> {"foo"=>"bar",
25
26
  "my_account"=>123456789012,
26
27
  "my_env"=>"my-test-env1",
28
+ "test_encrypted" => { "$ssm" => { "region" => "region", "encrypted" => "encrypted_value" }},
27
29
  "database.host"=>"my.database.my1.com",
28
30
  "database.port"=>3306},
29
31
  "my-test-env2"=> {"foo"=>"bar",
@@ -1 +1,6 @@
1
- my_env: 'my-test-env1'
1
+ my_env: 'my-test-env1'
2
+ encrypted:
3
+ test_encrypted:
4
+ $ssm:
5
+ region: region
6
+ encrypted: encrypted_value
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cps-property-generator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.13
4
+ version: 0.2.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bryan Call