kube_cluster 0.9.1 → 0.9.2

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: 612bfaf35673ef4d8eafca1a4c08760d2561b0f68d105fc845cfaaef9a08b649
4
- data.tar.gz: dd784e188cf30368c95827b988e00d2b2673fff6935986d1ccc9d8afc6bc2aff
3
+ metadata.gz: d5e65a20c48045695bd8ad8cbf3d6155ce91bc70114e690a857e177fc5cf80ea
4
+ data.tar.gz: b85d541cbdbd2cd2c94dedd73aba981ef4a7d8459a0665c9a026a37163a3a50d
5
5
  SHA512:
6
- metadata.gz: 8efb5ae223fa5a51d729e96a0c0dc33fa030ee0cb200562d7abafc90e4acf5e306c5629ef6cc0b6dde0e14afe093a43261a017e47638b7a1410165b679fd3061
7
- data.tar.gz: 0ee4ec3a3dd13793fb4b5c9771e27f8d42de3401eed42c85f1682017d6d9b1c175871b51a00d4c9064742e1a5e4d82b6a70a3e4f9bdf1574d014d146f3cd0051
6
+ metadata.gz: 171115e1a12579e22ca8b488ccf2d30f3c02fb8f068d43b7b97e01a11dd4698b2010bab9f526c099446885e09353e12afe84c30b278305a00ca160679fb67a0a
7
+ data.tar.gz: e96944f59f2a9d186f87868725f2d0f5ee30a79809e9779c2703d9e303589d573e723773d449e343e1aef23e1baf854cb9e9a2178d3d2d24237bfe01ceee4d64
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- kube_cluster (0.9.1)
4
+ kube_cluster (0.9.2)
5
5
  activesupport (~> 8.0)
6
6
  kube_kubectl (~> 2.0)
7
7
  kube_schema (~> 1.5)
@@ -7,6 +7,8 @@ module Kube
7
7
  module Cluster
8
8
  module Standard
9
9
  class Secret < Kube::Cluster["Secret"]
10
+ KeyRef = Struct.new(:secret, :key_name)
11
+
10
12
  def initialize(name:, **data, &block)
11
13
  super() {
12
14
  metadata.name = name
@@ -14,6 +16,14 @@ module Kube
14
16
  instance_exec(&block) if block_given?
15
17
  }
16
18
  end
19
+
20
+ def secret_name
21
+ to_h.dig(:metadata, :name)
22
+ end
23
+
24
+ def key(key_name)
25
+ KeyRef.new(self, key_name)
26
+ end
17
27
  end
18
28
  end
19
29
  end
@@ -25,6 +25,26 @@ module Kube
25
25
 
26
26
  input.each do |mount_path, source|
27
27
  case source
28
+ when Secret::KeyRef
29
+ secret_name = source.secret.secret_name
30
+ key = source.key_name
31
+ # Unique, DNS-1123-safe volume name per key so multiple keys from
32
+ # the same secret don't collide on the volume name.
33
+ vol = "#{secret_name}-#{key.tr('._', '--')}"
34
+ volumes << {
35
+ name: vol,
36
+ secret: {
37
+ secretName: secret_name,
38
+ items: [{ key: key, path: key }]
39
+ }
40
+ }
41
+ mounts << {
42
+ name: vol,
43
+ mountPath: mount_path,
44
+ subPath: key,
45
+ readOnly: true
46
+ }
47
+
28
48
  when ESO::ExternalSecret::KeyRef
29
49
  name = source.secret.secret_name
30
50
  key = source.key_name
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Kube
4
4
  module Cluster
5
- VERSION = "0.9.1"
5
+ VERSION = "0.9.2"
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.9.1
4
+ version: 0.9.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan K