kube_cluster 0.17.1 → 0.18.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 928086733f7475611aa69193643f88719d926b70bb4aa3ed9d8a1c8f27efdec7
4
- data.tar.gz: 3cc456aa515c6ca51fd87f26d35b2fcc740d984f8d907385a9f4b46bfc273a1c
3
+ metadata.gz: 3cd66af1d3d09305e45ea32c0eef681e1d46c5d18d75b4afdb2cca0d9426e21e
4
+ data.tar.gz: 9ad4f37dc3c7a55a6dc4a07841f860503bbcf31c163393b234d69cfbcef17c41
5
5
  SHA512:
6
- metadata.gz: 9fb588b0b214cad46930473827384993fb0577d9997ae1a60a2a5e808eb23a792697d95e877d31e959661322b7adf1c2c31ecaf41cc7a910e132ad728f31bab4
7
- data.tar.gz: 240eb7a87911cb284cd6fc2526608f843dadfee100f25b7b9611e6a27531d440604ae9c7b1d8586b26b5b926292c01f98ffd97e64c51659c0bad983629322e41
6
+ metadata.gz: fac17bb8169f4cd4262f17a364e081fe20681a1789fb7e4a0a709ad0255da03cbb9c34b64f8228dc07acf14872c379d9465839d5a22324b59bbda82e9d382c78
7
+ data.tar.gz: a6fb81dd871c504e9d49103f952e93f7f46951ee5f8691384496452bd584fc8ae24a0f56e6174021719f857ee05a4b7c2a2ce74bae66d04faaad010cd736e857
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- kube_cluster (0.17.1)
4
+ kube_cluster (0.18.0)
5
5
  activesupport (~> 8.0)
6
6
  kube_kubectl (~> 2.0)
7
7
  kube_schema (~> 1.7)
@@ -17,6 +17,11 @@ module Kube
17
17
  # "FOO" => secret.template("{{ .bar }}")
18
18
  # => { name: "FOO", valueFrom: { secretKeyRef: { name: "secret-name", key: "FOO" } } }
19
19
  #
20
+ # Secret::KeyRef values reference an existing secret's key directly
21
+ # (the same Secret.new(name:).key(...) form used by volume_mounts):
22
+ # "FOO" => Secret.new(name: "creds").key("bar")
23
+ # => { name: "FOO", valueFrom: { secretKeyRef: { name: "creds", key: "bar" } } }
24
+ #
20
25
  def self.process(env)
21
26
  return env if env.is_a?(Array)
22
27
  return [] if env.nil?
@@ -24,9 +29,12 @@ module Kube
24
29
  env.map do |key, value|
25
30
  key = key.to_s
26
31
 
27
- if value.is_a?(ESO::ExternalSecret::TemplateRef)
32
+ case value
33
+ when ESO::ExternalSecret::TemplateRef
28
34
  value.secret.register_template!(key, value.template_value)
29
35
  { name: key, valueFrom: { secretKeyRef: { name: value.secret.secret_name, key: key } } }
36
+ when Kube::Cluster::Standard::Secret::KeyRef
37
+ { name: key, valueFrom: { secretKeyRef: { name: value.secret.secret_name, key: value.key_name } } }
30
38
  else
31
39
  { name: key, value: value.to_s }
32
40
  end
@@ -38,5 +46,21 @@ module Kube
38
46
  end
39
47
 
40
48
  test do
41
- # no op
49
+ describe "EnvProcessing" do
50
+ it "maps a Secret::KeyRef to a secretKeyRef env var" do
51
+ secret = Kube::Cluster::Standard::Secret.new(name: "passbolt-db-creds")
52
+
53
+ Kube::Cluster::Standard::EnvProcessing
54
+ .process("DB_PASSWORD" => secret.key("password"))
55
+ .should == [
56
+ { name: "DB_PASSWORD", valueFrom: { secretKeyRef: { name: "passbolt-db-creds", key: "password" } } }
57
+ ]
58
+ end
59
+
60
+ it "still maps plain string values to value env vars" do
61
+ Kube::Cluster::Standard::EnvProcessing
62
+ .process("FOO" => "bar")
63
+ .should == [{ name: "FOO", value: "bar" }]
64
+ end
65
+ end
42
66
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Kube
4
4
  module Cluster
5
- VERSION = "0.17.1"
5
+ VERSION = "0.18.0"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kube_cluster
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.17.1
4
+ version: 0.18.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan K