ky 0.4.3 → 0.5.0debug
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/Rakefile +1 -0
- data/ky.gemspec +1 -0
- data/lib/ky/env_generation.rb +21 -5
- data/lib/ky/version.rb +1 -1
- data/spec/support/web-env.yml +2 -2
- data/spec/support/web-merged.yml +2 -2
- metadata +20 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c3e900e99fbe794371a6194de65233955fa778c3
|
4
|
+
data.tar.gz: 29d2ec6a95bd09685859d6df7804d00e5da03bb9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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'
|
data/lib/ky/env_generation.rb
CHANGED
@@ -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
|
-
|
32
|
-
|
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 =>
|
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
data/spec/support/web-env.yml
CHANGED
@@ -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
|
data/spec/support/web-merged.yml
CHANGED
@@ -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
|
+
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
|
+
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:
|
157
|
+
version: 1.3.1
|
143
158
|
requirements: []
|
144
159
|
rubyforge_project: ky
|
145
|
-
rubygems_version: 2.
|
160
|
+
rubygems_version: 2.6.8
|
146
161
|
signing_key:
|
147
162
|
specification_version: 4
|
148
163
|
summary: Kubernetes Yaml utilities and lubricant
|