ky 0.4.3 → 0.5.0debug

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: b4e1439327b6aed61becdad4564dba6d626bc279
4
- data.tar.gz: b9bc624a510108032079a2d5a53766e10e6ecc0a
3
+ metadata.gz: c3e900e99fbe794371a6194de65233955fa778c3
4
+ data.tar.gz: 29d2ec6a95bd09685859d6df7804d00e5da03bb9
5
5
  SHA512:
6
- metadata.gz: 2fb56300523159011c8af092522a9590ceb4cae1493a63e10f843a17a88ac714815e2fb7c402803a27a0a64db19c4cc8c63cf83ef98787a40472a458b2d43e7e
7
- data.tar.gz: eccefe9f0eb273c22ac337e4178bbf0c9941fa25080aa247f7fbc148905ad0919d712ef81dc7259133fe9a5e053fb043ad935e84c6ae602eb868d61883558a2a
6
+ metadata.gz: bef037f6e81299d4f489ea1677ca509d5bf73f7f193d71c86aa8cbb9e8491d7e85eaebbc9794205cbe8caf4a35781320df390e5dd7dbd2034998b2cd83372b8d
7
+ data.tar.gz: 640d8f96713fcabb7066419a3e234ce0ae1d5528eb19e87b63d8bc46b591d9f8623216a36660a1e83c4ba58861279a4556623021bcf523eb79b313ce5b8f0179
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require 'bundler/gem_tasks'
data/ky.gemspec CHANGED
@@ -14,6 +14,7 @@ Gem::Specification.new do |s|
14
14
  s.summary = 'Kubernetes Yaml utilities and lubricant'
15
15
  s.rubyforge_project = 'ky'
16
16
  s.require_paths = ['lib']
17
+ s.add_development_dependency 'rake', '~> 11.3'
17
18
  s.add_development_dependency 'rspec', '~> 3.5'
18
19
  s.add_development_dependency 'pry', '~> 0.10'
19
20
  s.add_runtime_dependency 'thor', '~> 0.19'
@@ -25,12 +25,16 @@ module KY
25
25
  def initialize(input1, input2, configuration = Configuration.new)
26
26
  input_hashes = YAML.load(input1.read).with_indifferent_access, YAML.load(input2.read).with_indifferent_access
27
27
  @configuration = configuration
28
+ @config_hsh = input_hashes.find {|h| h[kind] == config_map }
29
+ @secret_hsh = input_hashes.find {|h| h[kind] == secret }
30
+ secret_project = secret_hsh[metadata][name]
31
+ config_project = config_hsh[metadata][name]
28
32
  input_hashes.each do |env_hsh|
29
33
  env_hsh[:metadata][:namespace] = configuration[:namespace]
34
+ env_hsh[:metadata][:name] = immutable_project_name
30
35
  end
31
- @config_hsh = input_hashes.find {|h| h[kind] == config_map }
32
- @secret_hsh = input_hashes.find {|h| h[kind] == secret }
33
- raise ConflictingProjectError.new("Config and Secret metadata names do not agree") unless secret_hsh[metadata][name] == project
36
+
37
+ raise ConflictingProjectError.new("Config and Secret metadata names do not agree") unless secret_project == config_project
34
38
  end
35
39
 
36
40
  def to_h
@@ -38,11 +42,23 @@ module KY
38
42
  end
39
43
 
40
44
  def project
41
- config_hsh[metadata][name]
45
+ @name ||= config_hsh[metadata][name]
42
46
  end
43
47
 
44
48
  private
45
49
 
50
+ def immutable_project_name
51
+ project + env_sha
52
+ end
53
+
54
+ def env_sha
55
+ sha = Digest::SHA1.new
56
+ sha.update config_hsh[data].to_json
57
+ sha.update secret_hsh[data].to_json
58
+ sha.digest
59
+ "-#{sha.hexdigest}"
60
+ end
61
+
46
62
  def force_config
47
63
  return [] unless configuration[:force_configmap_apply]
48
64
  [inline_env_map(config_map_key_ref, "force-configmap-apply", SecureRandom.hex)]
@@ -72,7 +88,7 @@ module KY
72
88
 
73
89
  def env_map(type, kebab_version)
74
90
  puts "WARNING: #{kebab_version} format appears incorrect, format as #{kebab_version.dasherize.downcase}" unless kebab_version == kebab_version.dasherize.downcase
75
- {name => kebab_version.underscore.upcase, value_from => { type => {name => project, key => kebab_version }}}
91
+ {name => kebab_version.underscore.upcase, value_from => { type => {name => immutable_project_name, key => kebab_version }}}
76
92
  end
77
93
 
78
94
  def output_hash(env_array)
data/lib/ky/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module KY
2
- VERSION = "0.4.3"
2
+ VERSION = "0.5.0debug"
3
3
  end
@@ -13,10 +13,10 @@ spec:
13
13
  - name: DATABASE_URL
14
14
  valueFrom:
15
15
  secretKeyRef:
16
- name: test
16
+ name: test-eef44890a5e5a7eb49214ac9c3992a4ace8888bb
17
17
  key: database-url
18
18
  - name: PII_ENCRYPTION_KEY
19
19
  valueFrom:
20
20
  secretKeyRef:
21
- name: test
21
+ name: test-eef44890a5e5a7eb49214ac9c3992a4ace8888bb
22
22
  key: pii-encryption-key
@@ -31,10 +31,10 @@ spec:
31
31
  - name: DATABASE_URL
32
32
  valueFrom:
33
33
  secretKeyRef:
34
- name: test
34
+ name: test-eef44890a5e5a7eb49214ac9c3992a4ace8888bb
35
35
  key: database-url
36
36
  - name: PII_ENCRYPTION_KEY
37
37
  valueFrom:
38
38
  secretKeyRef:
39
- name: test
39
+ name: test-eef44890a5e5a7eb49214ac9c3992a4ace8888bb
40
40
  key: pii-encryption-key
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ky
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.3
4
+ version: 0.5.0debug
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Glusman
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-15 00:00:00.000000000 Z
11
+ date: 2016-12-04 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rake
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '11.3'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '11.3'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: rspec
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -94,6 +108,7 @@ files:
94
108
  - Gemfile
95
109
  - LICENSE.txt
96
110
  - README.md
111
+ - Rakefile
97
112
  - bin/ky
98
113
  - examples/.ky.yml
99
114
  - examples/deployment_base.yml
@@ -137,12 +152,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
137
152
  version: '0'
138
153
  required_rubygems_version: !ruby/object:Gem::Requirement
139
154
  requirements:
140
- - - ">="
155
+ - - ">"
141
156
  - !ruby/object:Gem::Version
142
- version: '0'
157
+ version: 1.3.1
143
158
  requirements: []
144
159
  rubyforge_project: ky
145
- rubygems_version: 2.5.1
160
+ rubygems_version: 2.6.8
146
161
  signing_key:
147
162
  specification_version: 4
148
163
  summary: Kubernetes Yaml utilities and lubricant