kube_cluster 1.8.0 → 1.9.1

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: 63bb454e7b06393a663b744754a36bbd4bf3e411a7b062e42f1a1db3cca08ec3
4
- data.tar.gz: 38f4c283662fc9aab31e22efb373188ec8c9b0cf7ae1fa46c1f49e8013599edc
3
+ metadata.gz: dc3333af0a836b40f716c65425aa368e06fedcf44bd7f928acaf6273cec97ecb
4
+ data.tar.gz: e7f8812a62a326590340348e0c267286ca6af89a269f4adb609aa901a6db8943
5
5
  SHA512:
6
- metadata.gz: 85b42c1eb2f29f6789af473465fbbfd45d4e21ea167a2bef10697b1d13f1801e4b88ac397523b20e1bc6dc672c439113609bdcc87fcb8d7af41df69c2bb2ca41
7
- data.tar.gz: 371b122e930400db8ec2400f138902ee6fe454427955bb547ad4db318b4c908ed3953c7b4be0e6ecf6f581a9b3c8c46641564a83a8080b49136cfb44de9f3b02
6
+ metadata.gz: 9b53f24653cdbea9b4f8b42e364e81ec63143a6dad262749f2b9aff5b339b559e54f9865cf61db7ba82bbe6f4166055e8d10edb957f7ee9fe25fd0b863a91a4d
7
+ data.tar.gz: c1bd574587131080153ae331e8800cc1afbfb240b1ba554994cc25dec26f651911f7c46edbe7e1b791172d0914193b57d65f54fdbfa02ac925b38218b9972b1d
data/CHANGELOG.md CHANGED
@@ -5,6 +5,34 @@ All notable changes to this project are documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.9.1] - 2026-09-28
9
+
10
+ ### Fixed
11
+ - `Chart#crds` no longer drops every CRD but the last for a chart shipping
12
+ several. `helm show crds` concatenates `crds/*.yaml` with no `---` between
13
+ them, so the stream parsed as a single document with duplicate top-level
14
+ keys. external-dns 1.22.0 hit this: `dnsendpoints` vanished and only
15
+ `dnsrecords` registered.
16
+
17
+ ## [1.9.0] - 2026-09-28
18
+
19
+ ### Added
20
+ - Ruby pattern matching for resources and manifests, inherited from
21
+ kube_schema 1.12.0 (`Resource#deconstruct_keys`, `Manifest#deconstruct`):
22
+
23
+ deployment => {metadata: {name:, namespace:}}
24
+
25
+ Deployment = Kube::Cluster["Deployment"]
26
+ manifest => [Deployment => dep, *rest]
27
+
28
+ `Kube::Cluster["Deployment"]` cannot be written inline in a pattern — Ruby
29
+ parses `Const[...]` as array-pattern syntax, not a method call. Assign the
30
+ class to a constant, or pin the expression:
31
+ `^(Kube::Cluster["Deployment"])`.
32
+
33
+ ### Changed
34
+ - Requires kube_schema `~> 1.12.0`.
35
+
8
36
  ## [1.8.0] - 2026-09-17
9
37
 
10
38
  ### Added
data/flake.lock CHANGED
@@ -1,23 +1,45 @@
1
1
  {
2
2
  "nodes": {
3
+ "mine": {
4
+ "inputs": {
5
+ "nixpkgs": [
6
+ "nixpkgs"
7
+ ],
8
+ "systems": "systems"
9
+ },
10
+ "locked": {
11
+ "lastModified": 1790610895,
12
+ "narHash": "sha256-sansiZlrb60MrGFzTXNCVVMTU5EsGM6KWvZkA/aNp14=",
13
+ "owner": "n-at-han-k",
14
+ "repo": "flake.nix",
15
+ "rev": "0f3388742debac3e78751796f4568f441c0dee57",
16
+ "type": "github"
17
+ },
18
+ "original": {
19
+ "owner": "n-at-han-k",
20
+ "repo": "flake.nix",
21
+ "type": "github"
22
+ }
23
+ },
3
24
  "nixpkgs": {
4
25
  "locked": {
5
- "lastModified": 1776169885,
6
- "narHash": "sha256-l/iNYDZ4bGOAFQY2q8y5OAfBBtrDAaPuRQqWaFHVRXM=",
26
+ "lastModified": 1780902259,
27
+ "narHash": "sha256-q8yYEC5f1mFlQO9RGna4LTc9QrcvWunX6FYp83munkQ=",
7
28
  "owner": "NixOS",
8
29
  "repo": "nixpkgs",
9
- "rev": "4bd9165a9165d7b5e33ae57f3eecbcb28fb231c9",
30
+ "rev": "bd0ff2d3eac24699c3664d5966b9ef36f388e2ca",
10
31
  "type": "github"
11
32
  },
12
33
  "original": {
13
34
  "owner": "NixOS",
14
- "ref": "nixos-unstable",
15
35
  "repo": "nixpkgs",
36
+ "rev": "bd0ff2d3eac24699c3664d5966b9ef36f388e2ca",
16
37
  "type": "github"
17
38
  }
18
39
  },
19
40
  "root": {
20
41
  "inputs": {
42
+ "mine": "mine",
21
43
  "nixpkgs": "nixpkgs",
22
44
  "utils": "utils"
23
45
  }
@@ -37,9 +59,24 @@
37
59
  "type": "github"
38
60
  }
39
61
  },
62
+ "systems_2": {
63
+ "locked": {
64
+ "lastModified": 1681028828,
65
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
66
+ "owner": "nix-systems",
67
+ "repo": "default",
68
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
69
+ "type": "github"
70
+ },
71
+ "original": {
72
+ "owner": "nix-systems",
73
+ "repo": "default",
74
+ "type": "github"
75
+ }
76
+ },
40
77
  "utils": {
41
78
  "inputs": {
42
- "systems": "systems"
79
+ "systems": "systems_2"
43
80
  },
44
81
  "locked": {
45
82
  "lastModified": 1731533236,
data/flake.nix CHANGED
@@ -2,44 +2,45 @@
2
2
  description = "Ruby gem flake";
3
3
 
4
4
  inputs = {
5
- nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
5
+ nixpkgs.url = "github:NixOS/nixpkgs/bd0ff2d3eac24699c3664d5966b9ef36f388e2ca"; # == this machine's system nixpkgs
6
6
  utils.url = "github:numtide/flake-utils";
7
+ mine.url = "github:n-at-han-k/flake.nix";
8
+ mine.inputs.nixpkgs.follows = "nixpkgs";
7
9
  };
8
- outputs = { self, nixpkgs, utils }:
10
+ outputs = { self, nixpkgs, utils, mine }:
9
11
  utils.lib.eachDefaultSystem (system:
10
12
  let
13
+ # No mine.overlays.default: it used to override pkg-config, which stdenv
14
+ # splices, so the overlay rebuilt stdenv and all of nixpkgs from source.
15
+ # mine.inputs.nixpkgs.follows makes it redundant anyway.
11
16
  pkgs = nixpkgs.legacyPackages.${system};
12
- ruby = pkgs.ruby_3_4; # Specify version
17
+ lib = mine.lib.${system};
18
+
19
+ gems = lib.buildGemset {
20
+ name = "kube_cluster";
21
+ src = ./.;
22
+ };
23
+
13
24
  kubectlWithKubeconfig = pkgs.writeShellScriptBin "kubectl" ''
14
25
  #!${pkgs.bash}/bin/bash
15
26
  KUBECONFIG="$PWD/kubeconfig.yaml" ${pkgs.kubectl}/bin/kubectl "$@"
16
27
  '';
17
28
  in
18
29
  {
19
- devShells.default = pkgs.mkShell {
20
- nativeBuildInputs = [
21
- pkgs.pkg-config # native extension discovery
22
- ];
23
-
30
+ # pkg-config, bundix, libyaml, openssl, overmind, tmux and `bundix -l`
31
+ # come from mkRubyShell.
32
+ devShells.default = lib.mkRubyShell {
24
33
  buildInputs = [
34
+ gems
35
+ gems.wrappedRuby
25
36
  pkgs.trufflehog
26
- ruby
27
- pkgs.libyaml # psych gem
28
- pkgs.openssl # openssl gem
29
37
  kubectlWithKubeconfig
30
38
  ];
31
39
 
32
40
  shellHook = ''
33
- export GEM_HOME="$HOME/.gem-${ruby.version}"
34
- export GEM_PATH="$GEM_HOME"
35
- export PATH="$GEM_HOME/bin:$PATH"
36
- export BUNDLE_PATH="$GEM_HOME"
37
- export BUNDLE_GEMFILE="$PWD/Gemfile"
38
- export BUNDLE_BIN="$GEM_HOME/bin"
39
41
  export KUBECONFIG="$PWD/kubeconfig.yaml"
40
42
  '';
41
43
  };
42
44
  }
43
45
  );
44
46
  }
45
-
data/gemset.nix ADDED
@@ -0,0 +1,1008 @@
1
+ {
2
+ activesupport = {
3
+ dependencies = ["base64" "bigdecimal" "concurrent-ruby" "connection_pool" "drb" "i18n" "json" "logger" "minitest" "securerandom" "tzinfo" "uri"];
4
+ groups = ["default"];
5
+ platforms = [];
6
+ source = {
7
+ remotes = ["https://rubygems.org"];
8
+ sha256 = "03m2vjhq3nmc8c3hpivxhvkjd8igg16nmv0p2fgdsgacppgy1991";
9
+ type = "gem";
10
+ };
11
+ version = "8.1.3";
12
+ };
13
+ async = {
14
+ dependencies = ["console" "fiber-annotation" "io-event" "metrics" "traces"];
15
+ groups = ["default" "maintenance"];
16
+ platforms = [];
17
+ source = {
18
+ remotes = ["https://rubygems.org"];
19
+ sha256 = "1ah038cvb5k7vr29z5jkjhdwqpinrchglz87i1bv9fzjfc07666z";
20
+ type = "gem";
21
+ };
22
+ version = "2.39.0";
23
+ };
24
+ async-container = {
25
+ dependencies = ["async"];
26
+ groups = ["default" "maintenance"];
27
+ platforms = [];
28
+ source = {
29
+ remotes = ["https://rubygems.org"];
30
+ sha256 = "1g9lcawa16wjgq131ngczx54vdy4qqda3lqlh8iijlncnh5rapch";
31
+ type = "gem";
32
+ };
33
+ version = "0.34.5";
34
+ };
35
+ async-http = {
36
+ dependencies = ["async" "async-pool" "io-endpoint" "io-stream" "metrics" "protocol-http" "protocol-http1" "protocol-http2" "protocol-url" "traces"];
37
+ groups = ["default" "maintenance"];
38
+ platforms = [];
39
+ source = {
40
+ remotes = ["https://rubygems.org"];
41
+ sha256 = "0v3q2kn9j5vfag7b4zv2vc1i4jkrqjz1pc109df6vh04q9cd8g8c";
42
+ type = "gem";
43
+ };
44
+ version = "0.95.1";
45
+ };
46
+ async-http-cache = {
47
+ dependencies = ["async-http"];
48
+ groups = ["default" "maintenance"];
49
+ platforms = [];
50
+ source = {
51
+ remotes = ["https://rubygems.org"];
52
+ sha256 = "1mnzzlq0bnya0hlzrz0bl66r7qw5a3173cjd1fsicbqqjgqd2f10";
53
+ type = "gem";
54
+ };
55
+ version = "0.4.6";
56
+ };
57
+ async-ollama = {
58
+ dependencies = ["async" "async-rest"];
59
+ groups = ["default" "maintenance"];
60
+ platforms = [];
61
+ source = {
62
+ remotes = ["https://rubygems.org"];
63
+ sha256 = "1myl413dynl0z0rwmf3sswly9yamz5ysk8nwb3wm2230ljdlqp0h";
64
+ type = "gem";
65
+ };
66
+ version = "0.10.3";
67
+ };
68
+ async-pool = {
69
+ dependencies = ["async"];
70
+ groups = ["default" "maintenance"];
71
+ platforms = [];
72
+ source = {
73
+ remotes = ["https://rubygems.org"];
74
+ sha256 = "1vg3lwb3yhq0rad3dm00vp35vrahkbxgl4kx3d2rqkdh09xs2hqa";
75
+ type = "gem";
76
+ };
77
+ version = "0.11.2";
78
+ };
79
+ async-rest = {
80
+ dependencies = ["async-http" "protocol-url"];
81
+ groups = ["default" "maintenance"];
82
+ platforms = [];
83
+ source = {
84
+ remotes = ["https://rubygems.org"];
85
+ sha256 = "1swmgq79knydk05ylkhv43x4l6yqyclbh4pwchxaasajyrkx9c3j";
86
+ type = "gem";
87
+ };
88
+ version = "0.20.0";
89
+ };
90
+ async-service = {
91
+ dependencies = ["async" "async-container" "string-format"];
92
+ groups = ["default" "maintenance"];
93
+ platforms = [];
94
+ source = {
95
+ remotes = ["https://rubygems.org"];
96
+ sha256 = "0q9vwq9iidm7426s23dz90as44cqygp9f82ck4px8m2n2j468qc4";
97
+ type = "gem";
98
+ };
99
+ version = "0.22.0";
100
+ };
101
+ async-utilization = {
102
+ dependencies = ["console"];
103
+ groups = ["default" "maintenance"];
104
+ platforms = [];
105
+ source = {
106
+ remotes = ["https://rubygems.org"];
107
+ sha256 = "1d7k3nrmzi3gwlv1z9g3pb72f3j2bszfr8019b0kzqlgjkh2f6i0";
108
+ type = "gem";
109
+ };
110
+ version = "0.3.2";
111
+ };
112
+ bake = {
113
+ dependencies = ["bigdecimal" "samovar"];
114
+ groups = ["default" "maintenance"];
115
+ platforms = [];
116
+ source = {
117
+ remotes = ["https://rubygems.org"];
118
+ sha256 = "1izlqnz0828mgdq04s1w291ky912w6jzcg5iwch7gc8l2pkcgylb";
119
+ type = "gem";
120
+ };
121
+ version = "0.24.1";
122
+ };
123
+ bake-gem = {
124
+ dependencies = ["console"];
125
+ groups = ["maintenance"];
126
+ platforms = [];
127
+ source = {
128
+ remotes = ["https://rubygems.org"];
129
+ sha256 = "14qvrxrcy1g6as6nbcs7di20kvzx46yw0bwczjaa3v6p8dil2p27";
130
+ type = "gem";
131
+ };
132
+ version = "0.13.1";
133
+ };
134
+ bake-modernize = {
135
+ dependencies = ["async-http" "async-ollama" "bake" "build-files" "markly" "rugged"];
136
+ groups = ["maintenance"];
137
+ platforms = [];
138
+ source = {
139
+ remotes = ["https://rubygems.org"];
140
+ sha256 = "1aygmnhri2zhxhgzisvv60q46fqbyakrjqx5290q2cg2qi7i49ij";
141
+ type = "gem";
142
+ };
143
+ version = "0.55.0";
144
+ };
145
+ bake-releases = {
146
+ dependencies = ["bake" "markly"];
147
+ groups = ["maintenance"];
148
+ platforms = [];
149
+ source = {
150
+ remotes = ["https://rubygems.org"];
151
+ sha256 = "1q1kwrxfv9z4l7c94kid52z15jiqvg1snmr9qdrh7p91l5qwm4pn";
152
+ type = "gem";
153
+ };
154
+ version = "0.5.4";
155
+ };
156
+ base64 = {
157
+ groups = ["default"];
158
+ platforms = [];
159
+ source = {
160
+ remotes = ["https://rubygems.org"];
161
+ sha256 = "0yx9yn47a8lkfcjmigk79fykxvr80r4m1i35q82sxzynpbm7lcr7";
162
+ type = "gem";
163
+ };
164
+ version = "0.3.0";
165
+ };
166
+ bigdecimal = {
167
+ groups = ["default" "maintenance"];
168
+ platforms = [];
169
+ source = {
170
+ remotes = ["https://rubygems.org"];
171
+ sha256 = "1g9zi8c4i7g8zz0c3hxrw6mblrjvgn7akys60clb9si7c1k1gljk";
172
+ type = "gem";
173
+ };
174
+ version = "4.1.2";
175
+ };
176
+ build-files = {
177
+ groups = ["default" "maintenance"];
178
+ platforms = [];
179
+ source = {
180
+ remotes = ["https://rubygems.org"];
181
+ sha256 = "1g9p6dhnycc2649fd2pi5jzklyqn2cjbvggccqkjqgalajf971hh";
182
+ type = "gem";
183
+ };
184
+ version = "1.10.2";
185
+ };
186
+ concurrent-ruby = {
187
+ groups = ["default" "maintenance"];
188
+ platforms = [];
189
+ source = {
190
+ remotes = ["https://rubygems.org"];
191
+ sha256 = "1aymcakhzl83k77g2f2krz07bg1cbafbcd2ghvwr4lky3rz86mkb";
192
+ type = "gem";
193
+ };
194
+ version = "1.3.6";
195
+ };
196
+ connection_pool = {
197
+ groups = ["default"];
198
+ platforms = [];
199
+ source = {
200
+ remotes = ["https://rubygems.org"];
201
+ sha256 = "02ifws3c4x7b54fv17sm4cca18d2pfw1saxpdji2lbd1f6xgbzrk";
202
+ type = "gem";
203
+ };
204
+ version = "3.0.2";
205
+ };
206
+ console = {
207
+ dependencies = ["fiber-annotation" "fiber-local" "json"];
208
+ groups = ["default" "maintenance"];
209
+ platforms = [];
210
+ source = {
211
+ remotes = ["https://rubygems.org"];
212
+ sha256 = "1k0dxi072mz8j72r32kkzpky825hn092hb8hdxh4rz3yd5sbv7w6";
213
+ type = "gem";
214
+ };
215
+ version = "1.34.3";
216
+ };
217
+ date = {
218
+ groups = ["default" "maintenance"];
219
+ platforms = [];
220
+ source = {
221
+ remotes = ["https://rubygems.org"];
222
+ sha256 = "1h0db8r2v5llxdbzkzyllkfniqw9gm092qn7cbaib73v9lw0c3bm";
223
+ type = "gem";
224
+ };
225
+ version = "3.5.1";
226
+ };
227
+ debug = {
228
+ dependencies = ["irb" "reline"];
229
+ groups = ["default"];
230
+ platforms = [];
231
+ source = {
232
+ remotes = ["https://rubygems.org"];
233
+ sha256 = "1djjx5332d1hdh9s782dyr0f9d4fr9rllzdcz2k0f8lz2730l2rf";
234
+ type = "gem";
235
+ };
236
+ version = "1.11.1";
237
+ };
238
+ decode = {
239
+ dependencies = ["prism" "rbs"];
240
+ groups = ["default" "maintenance"];
241
+ platforms = [];
242
+ source = {
243
+ remotes = ["https://rubygems.org"];
244
+ sha256 = "0mp1ha7sg6l6f5dqwidxwnpm7lj7my5vsxwz7nlnpg7lqsj0fnvb";
245
+ type = "gem";
246
+ };
247
+ version = "0.27.0";
248
+ };
249
+ drb = {
250
+ groups = ["default"];
251
+ platforms = [];
252
+ source = {
253
+ remotes = ["https://rubygems.org"];
254
+ sha256 = "0wrkl7yiix268s2md1h6wh91311w95ikd8fy8m5gx589npyxc00b";
255
+ type = "gem";
256
+ };
257
+ version = "2.2.3";
258
+ };
259
+ erb = {
260
+ groups = ["default" "maintenance"];
261
+ platforms = [];
262
+ source = {
263
+ remotes = ["https://rubygems.org"];
264
+ sha256 = "1ncmbdjf2bwmk0jf5cxywns9zbxyfiy4h4p3pzi7yddyjhv81qrq";
265
+ type = "gem";
266
+ };
267
+ version = "6.0.4";
268
+ };
269
+ falcon = {
270
+ dependencies = ["async" "async-container" "async-http" "async-http-cache" "async-service" "async-utilization" "localhost" "openssl" "protocol-http" "protocol-rack" "samovar"];
271
+ groups = ["default" "maintenance"];
272
+ platforms = [];
273
+ source = {
274
+ remotes = ["https://rubygems.org"];
275
+ sha256 = "0fwp7i3f9gvsg0qyn33i522fvj0gh1w25byq1plv4jsmwfnbv1q2";
276
+ type = "gem";
277
+ };
278
+ version = "0.55.3";
279
+ };
280
+ fiber-annotation = {
281
+ groups = ["default" "maintenance"];
282
+ platforms = [];
283
+ source = {
284
+ remotes = ["https://rubygems.org"];
285
+ sha256 = "00vcmynyvhny8n4p799rrhcx0m033hivy0s1gn30ix8rs7qsvgvs";
286
+ type = "gem";
287
+ };
288
+ version = "0.2.0";
289
+ };
290
+ fiber-local = {
291
+ dependencies = ["fiber-storage"];
292
+ groups = ["default" "maintenance"];
293
+ platforms = [];
294
+ source = {
295
+ remotes = ["https://rubygems.org"];
296
+ sha256 = "01lz929qf3xa90vra1ai1kh059kf2c8xarfy6xbv1f8g457zk1f8";
297
+ type = "gem";
298
+ };
299
+ version = "1.1.0";
300
+ };
301
+ fiber-storage = {
302
+ groups = ["default" "maintenance"];
303
+ platforms = [];
304
+ source = {
305
+ remotes = ["https://rubygems.org"];
306
+ sha256 = "1qa0j9qjwav9xb0n3isx0rbh0942xrfback392n6vs8bidnmp3pl";
307
+ type = "gem";
308
+ };
309
+ version = "1.0.1";
310
+ };
311
+ hana = {
312
+ groups = ["default"];
313
+ platforms = [];
314
+ source = {
315
+ remotes = ["https://rubygems.org"];
316
+ sha256 = "03cvrv2wl25j9n4n509hjvqnmwa60k92j741b64a1zjisr1dn9al";
317
+ type = "gem";
318
+ };
319
+ version = "1.3.7";
320
+ };
321
+ http-accept = {
322
+ groups = ["default" "maintenance"];
323
+ platforms = [];
324
+ source = {
325
+ remotes = ["https://rubygems.org"];
326
+ sha256 = "03shmn4nn1cwqwhjfii2ad7gz7s4481b5ipmalsy90pp43nisj7q";
327
+ type = "gem";
328
+ };
329
+ version = "2.2.1";
330
+ };
331
+ i18n = {
332
+ dependencies = ["concurrent-ruby"];
333
+ groups = ["default"];
334
+ platforms = [];
335
+ source = {
336
+ remotes = ["https://rubygems.org"];
337
+ sha256 = "1994i044vdmzzkyr76g8rpl1fq1532wf0sb21xg5r1ilj5iphmr8";
338
+ type = "gem";
339
+ };
340
+ version = "1.14.8";
341
+ };
342
+ io-console = {
343
+ groups = ["default" "maintenance"];
344
+ platforms = [];
345
+ source = {
346
+ remotes = ["https://rubygems.org"];
347
+ sha256 = "1k0lk3pwadm2myvpg893n8jshmrf2sigrd4ki15lymy7gixaxqyn";
348
+ type = "gem";
349
+ };
350
+ version = "0.8.2";
351
+ };
352
+ io-endpoint = {
353
+ groups = ["default" "maintenance"];
354
+ platforms = [];
355
+ source = {
356
+ remotes = ["https://rubygems.org"];
357
+ sha256 = "0f1kzf4d5qgqgfjh52a8pf3pii5dmav6ib0zq4wmicqnq5kggsiz";
358
+ type = "gem";
359
+ };
360
+ version = "0.17.2";
361
+ };
362
+ io-event = {
363
+ groups = ["default" "maintenance"];
364
+ platforms = [];
365
+ source = {
366
+ remotes = ["https://rubygems.org"];
367
+ sha256 = "143v7rhfq2kv10nadsq9fkhf2x0jf240jgq9wmvs9510pcyxjh9b";
368
+ type = "gem";
369
+ };
370
+ version = "1.16.0";
371
+ };
372
+ io-stream = {
373
+ groups = ["default" "maintenance"];
374
+ platforms = [];
375
+ source = {
376
+ remotes = ["https://rubygems.org"];
377
+ sha256 = "0dhnkjf59ayw5xi873a939i63d47lrlqcpphvv73xprb635vq96f";
378
+ type = "gem";
379
+ };
380
+ version = "0.13.0";
381
+ };
382
+ irb = {
383
+ dependencies = ["pp" "prism" "rdoc" "reline"];
384
+ groups = ["default" "maintenance"];
385
+ platforms = [];
386
+ source = {
387
+ remotes = ["https://rubygems.org"];
388
+ sha256 = "1qs8a9vprg7s8krgq4s0pygr91hclqqyz98ik15p0m1sf2h5956y";
389
+ type = "gem";
390
+ };
391
+ version = "1.18.0";
392
+ };
393
+ json = {
394
+ groups = ["default" "maintenance"];
395
+ platforms = [];
396
+ source = {
397
+ remotes = ["https://rubygems.org"];
398
+ sha256 = "0n9ch455pnvl9vxs2f3j77bpdmxg5g3mn3vyr9wxa0a87raii2i1";
399
+ type = "gem";
400
+ };
401
+ version = "2.19.5";
402
+ };
403
+ json_schemer = {
404
+ dependencies = ["bigdecimal" "hana" "regexp_parser" "simpleidn"];
405
+ groups = ["default"];
406
+ platforms = [];
407
+ source = {
408
+ remotes = ["https://rubygems.org"];
409
+ sha256 = "15p31bq932bfpsi1wgrkgwm71l7z1h1w53q6vl44w6kjrr6gn09g";
410
+ type = "gem";
411
+ };
412
+ version = "2.5.0";
413
+ };
414
+ kube_cluster = {
415
+ dependencies = ["activesupport" "kube_kubectl" "kube_schema"];
416
+ groups = ["default"];
417
+ platforms = [];
418
+ source = {
419
+ path = ./.;
420
+ type = "path";
421
+ };
422
+ version = "1.8.0";
423
+ };
424
+ kube_kubectl = {
425
+ dependencies = ["debug" "json_schemer" "rubyshell" "shellwords" "string_builder"];
426
+ groups = ["default"];
427
+ platforms = [];
428
+ source = {
429
+ remotes = ["https://rubygems.org"];
430
+ sha256 = "0nh84nr2021yig5s6zjhjmll8vkv6wd7gjxd51i1r34cgly59zlj";
431
+ type = "gem";
432
+ };
433
+ version = "2.0.9";
434
+ };
435
+ kube_schema = {
436
+ dependencies = ["json_schemer" "rubyshell"];
437
+ groups = ["default"];
438
+ platforms = [];
439
+ source = {
440
+ remotes = ["https://rubygems.org"];
441
+ sha256 = "1f8nazb6glzxkms0paqsn9x0zihmgj739l2shnwafhzaxgxcqy4z";
442
+ type = "gem";
443
+ };
444
+ version = "1.11.0";
445
+ };
446
+ lefthook = {
447
+ groups = ["development"];
448
+ platforms = [];
449
+ source = {
450
+ remotes = ["https://rubygems.org"];
451
+ sha256 = "0r8vwq96i3wfsb3c2q0qjl3nssadwmlrgavf06wfi2d6isyhd76c";
452
+ type = "gem";
453
+ };
454
+ version = "2.1.10";
455
+ };
456
+ localhost = {
457
+ dependencies = ["bake"];
458
+ groups = ["default" "maintenance"];
459
+ platforms = [];
460
+ source = {
461
+ remotes = ["https://rubygems.org"];
462
+ sha256 = "0097kdsp2fwkps57f8ypc12dqzf4dg4glzn1i32ljjgnnhjshznz";
463
+ type = "gem";
464
+ };
465
+ version = "1.8.0";
466
+ };
467
+ logger = {
468
+ groups = ["default" "maintenance"];
469
+ platforms = [];
470
+ source = {
471
+ remotes = ["https://rubygems.org"];
472
+ sha256 = "00q2zznygpbls8asz5knjvvj2brr3ghmqxgr83xnrdj4rk3xwvhr";
473
+ type = "gem";
474
+ };
475
+ version = "1.7.0";
476
+ };
477
+ mail = {
478
+ dependencies = ["logger" "mini_mime" "net-imap" "net-pop" "net-smtp"];
479
+ groups = ["default" "maintenance"];
480
+ platforms = [];
481
+ source = {
482
+ remotes = ["https://rubygems.org"];
483
+ sha256 = "0ha9sgkfqna62c1basc17dkx91yk7ppgjq32k4nhrikirlz6g9kg";
484
+ type = "gem";
485
+ };
486
+ version = "2.9.0";
487
+ };
488
+ mapping = {
489
+ groups = ["default" "maintenance"];
490
+ platforms = [];
491
+ source = {
492
+ remotes = ["https://rubygems.org"];
493
+ sha256 = "18jdbz3x6cvprhsw7jiv44xi6wklric0rq6iznm6xm7c40fr6x12";
494
+ type = "gem";
495
+ };
496
+ version = "1.1.3";
497
+ };
498
+ markly = {
499
+ groups = ["default" "maintenance"];
500
+ platforms = [];
501
+ source = {
502
+ remotes = ["https://rubygems.org"];
503
+ sha256 = "04ammhfwf91r7kh7iiz6kw1mjql250bchx0z2yggq7jv72gdfw3g";
504
+ type = "gem";
505
+ };
506
+ version = "0.16.0";
507
+ };
508
+ metrics = {
509
+ groups = ["default" "maintenance"];
510
+ platforms = [];
511
+ source = {
512
+ remotes = ["https://rubygems.org"];
513
+ sha256 = "0wlh0g4xmfqa41dsh4m3514q3jcvy6jx97mwn6ayj62ir6xdbpk1";
514
+ type = "gem";
515
+ };
516
+ version = "0.15.0";
517
+ };
518
+ mime-types = {
519
+ dependencies = ["logger" "mime-types-data"];
520
+ groups = ["default" "maintenance"];
521
+ platforms = [];
522
+ source = {
523
+ remotes = ["https://rubygems.org"];
524
+ sha256 = "0mjyxl7c0xzyqdqa8r45hqg7jcw2prp3hkp39mdf223g4hfgdsyw";
525
+ type = "gem";
526
+ };
527
+ version = "3.7.0";
528
+ };
529
+ mime-types-data = {
530
+ groups = ["default" "maintenance"];
531
+ platforms = [];
532
+ source = {
533
+ remotes = ["https://rubygems.org"];
534
+ sha256 = "1k28j6ww8rf43r5i8278jvm2cq3pnzsvqm7yqpb4p93kadjlq726";
535
+ type = "gem";
536
+ };
537
+ version = "3.2026.0414";
538
+ };
539
+ mini_mime = {
540
+ groups = ["default" "maintenance"];
541
+ platforms = [];
542
+ source = {
543
+ remotes = ["https://rubygems.org"];
544
+ sha256 = "1vycif7pjzkr29mfk4dlqv3disc5dn0va04lkwajlpr1wkibg0c6";
545
+ type = "gem";
546
+ };
547
+ version = "1.1.5";
548
+ };
549
+ minitest = {
550
+ dependencies = ["drb" "prism"];
551
+ groups = ["default"];
552
+ platforms = [];
553
+ source = {
554
+ remotes = ["https://rubygems.org"];
555
+ sha256 = "1wfnqyfayx9n9j7x871v2ars4hjhfisi1dl24fa64ylq3mns6ghm";
556
+ type = "gem";
557
+ };
558
+ version = "6.0.6";
559
+ };
560
+ msgpack = {
561
+ groups = ["default" "maintenance"];
562
+ platforms = [];
563
+ source = {
564
+ remotes = ["https://rubygems.org"];
565
+ sha256 = "0cnpnbn2yivj9gxkh8mjklbgnpx6nf7b8j2hky01dl0040hy0k76";
566
+ type = "gem";
567
+ };
568
+ version = "1.8.0";
569
+ };
570
+ net-imap = {
571
+ dependencies = ["date" "net-protocol"];
572
+ groups = ["default" "maintenance"];
573
+ platforms = [];
574
+ source = {
575
+ remotes = ["https://rubygems.org"];
576
+ sha256 = "0ax0f0r97jm83q462vsrcbdxprs894fyyc44v62c48ihgb39hmcs";
577
+ type = "gem";
578
+ };
579
+ version = "0.6.4";
580
+ };
581
+ net-pop = {
582
+ dependencies = ["net-protocol"];
583
+ groups = ["default" "maintenance"];
584
+ platforms = [];
585
+ source = {
586
+ remotes = ["https://rubygems.org"];
587
+ sha256 = "1wyz41jd4zpjn0v1xsf9j778qx1vfrl24yc20cpmph8k42c4x2w4";
588
+ type = "gem";
589
+ };
590
+ version = "0.1.2";
591
+ };
592
+ net-protocol = {
593
+ dependencies = ["timeout"];
594
+ groups = ["default" "maintenance"];
595
+ platforms = [];
596
+ source = {
597
+ remotes = ["https://rubygems.org"];
598
+ sha256 = "1a32l4x73hz200cm587bc29q8q9az278syw3x6fkc9d1lv5y0wxa";
599
+ type = "gem";
600
+ };
601
+ version = "0.2.2";
602
+ };
603
+ net-smtp = {
604
+ dependencies = ["net-protocol"];
605
+ groups = ["default" "maintenance"];
606
+ platforms = [];
607
+ source = {
608
+ remotes = ["https://rubygems.org"];
609
+ sha256 = "0dh7nzjp0fiaqq1jz90nv4nxhc2w359d7c199gmzq965cfps15pd";
610
+ type = "gem";
611
+ };
612
+ version = "0.5.1";
613
+ };
614
+ openssl = {
615
+ groups = ["default" "maintenance"];
616
+ platforms = [];
617
+ source = {
618
+ remotes = ["https://rubygems.org"];
619
+ sha256 = "1hj7wwp4r3jhvnyd8ik85wbs25cq1w61r28pv6ddyn5fd0lasdqh";
620
+ type = "gem";
621
+ };
622
+ version = "4.0.2";
623
+ };
624
+ pp = {
625
+ dependencies = ["prettyprint"];
626
+ groups = ["default" "maintenance"];
627
+ platforms = [];
628
+ source = {
629
+ remotes = ["https://rubygems.org"];
630
+ sha256 = "1xlxmg86k5kifci1xvlmgw56x88dmqf04zfzn7zcr4qb8ladal99";
631
+ type = "gem";
632
+ };
633
+ version = "0.6.3";
634
+ };
635
+ prettyprint = {
636
+ groups = ["default" "maintenance"];
637
+ platforms = [];
638
+ source = {
639
+ remotes = ["https://rubygems.org"];
640
+ sha256 = "14zicq3plqi217w6xahv7b8f7aj5kpxv1j1w98344ix9h5ay3j9b";
641
+ type = "gem";
642
+ };
643
+ version = "0.2.0";
644
+ };
645
+ prism = {
646
+ groups = ["default" "maintenance"];
647
+ platforms = [];
648
+ source = {
649
+ remotes = ["https://rubygems.org"];
650
+ sha256 = "11ggfikcs1lv17nhmhqyyp6z8nq5pkfcj6a904047hljkxm0qlvv";
651
+ type = "gem";
652
+ };
653
+ version = "1.9.0";
654
+ };
655
+ protocol-hpack = {
656
+ groups = ["default" "maintenance"];
657
+ platforms = [];
658
+ source = {
659
+ remotes = ["https://rubygems.org"];
660
+ sha256 = "14ddqg5mcs9ysd1hdzkm5pwil0660vrxcxsn576s3387p0wa5v3g";
661
+ type = "gem";
662
+ };
663
+ version = "1.5.1";
664
+ };
665
+ protocol-http = {
666
+ groups = ["default" "maintenance"];
667
+ platforms = [];
668
+ source = {
669
+ remotes = ["https://rubygems.org"];
670
+ sha256 = "0fvpza7nnbyd3nfxkn5gych6diwns386g2ib9s6azh99c3sz5hg1";
671
+ type = "gem";
672
+ };
673
+ version = "0.62.2";
674
+ };
675
+ protocol-http1 = {
676
+ dependencies = ["protocol-http"];
677
+ groups = ["default" "maintenance"];
678
+ platforms = [];
679
+ source = {
680
+ remotes = ["https://rubygems.org"];
681
+ sha256 = "1syqgaklsn9rf11xmll2s3ms7jvpd5zjng9jdb3r8pbgv963z6z4";
682
+ type = "gem";
683
+ };
684
+ version = "0.39.0";
685
+ };
686
+ protocol-http2 = {
687
+ dependencies = ["protocol-hpack" "protocol-http"];
688
+ groups = ["default" "maintenance"];
689
+ platforms = [];
690
+ source = {
691
+ remotes = ["https://rubygems.org"];
692
+ sha256 = "11kl6768hpzgvvvlpyvmr74v0jqf2vslcwngs3643cl2h3brrj5s";
693
+ type = "gem";
694
+ };
695
+ version = "0.26.0";
696
+ };
697
+ protocol-rack = {
698
+ dependencies = ["io-stream" "protocol-http" "rack"];
699
+ groups = ["default" "maintenance"];
700
+ platforms = [];
701
+ source = {
702
+ remotes = ["https://rubygems.org"];
703
+ sha256 = "1hwz5bb3wcx4lkprigsgfa4vqlx33jcxc01pc2d89ybyj92x518i";
704
+ type = "gem";
705
+ };
706
+ version = "0.22.1";
707
+ };
708
+ protocol-url = {
709
+ groups = ["default" "maintenance"];
710
+ platforms = [];
711
+ source = {
712
+ remotes = ["https://rubygems.org"];
713
+ sha256 = "1qd9vsn9sif58swfqsyj429aynqyv6hpgbzxqrd83baidcxw1m34";
714
+ type = "gem";
715
+ };
716
+ version = "0.4.0";
717
+ };
718
+ psych = {
719
+ dependencies = ["date" "stringio"];
720
+ groups = ["default" "maintenance"];
721
+ platforms = [];
722
+ source = {
723
+ remotes = ["https://rubygems.org"];
724
+ sha256 = "0x0r3gc66abv8i4dw0x0370b5hrshjfp6kpp7wbp178cy775fypb";
725
+ type = "gem";
726
+ };
727
+ version = "5.3.1";
728
+ };
729
+ rack = {
730
+ groups = ["default" "maintenance"];
731
+ platforms = [];
732
+ source = {
733
+ remotes = ["https://rubygems.org"];
734
+ sha256 = "1hhjy9gcp52dzij05gmidqac8g28ski5xm67prwmdqmjfcgqxmsy";
735
+ type = "gem";
736
+ };
737
+ version = "3.2.6";
738
+ };
739
+ rackula = {
740
+ dependencies = ["falcon" "samovar" "variant"];
741
+ groups = ["default" "maintenance"];
742
+ platforms = [];
743
+ source = {
744
+ remotes = ["https://rubygems.org"];
745
+ sha256 = "0qdv10k36c3qmfpv6321in5k7x9xgpm55h25d0q8hbb5ph74p0j6";
746
+ type = "gem";
747
+ };
748
+ version = "1.4.1";
749
+ };
750
+ rake = {
751
+ groups = ["development"];
752
+ platforms = [];
753
+ source = {
754
+ remotes = ["https://rubygems.org"];
755
+ sha256 = "009p524zl0p0kfa65nii8wdmaigkmawv9pbvlcffky7islmmp0nb";
756
+ type = "gem";
757
+ };
758
+ version = "13.4.2";
759
+ };
760
+ rbs = {
761
+ dependencies = ["logger" "prism" "tsort"];
762
+ groups = ["default" "maintenance"];
763
+ platforms = [];
764
+ source = {
765
+ remotes = ["https://rubygems.org"];
766
+ sha256 = "09ggg2zk0qrh0mc3fa23xjbn2gzqxd0jfqj6qm6460ydcqg6fxdg";
767
+ type = "gem";
768
+ };
769
+ version = "4.0.2";
770
+ };
771
+ rdoc = {
772
+ dependencies = ["erb" "psych" "tsort"];
773
+ groups = ["default" "maintenance"];
774
+ platforms = [];
775
+ source = {
776
+ remotes = ["https://rubygems.org"];
777
+ sha256 = "14iiyb4yi1chdzrynrk74xbhmikml3ixgdayjma3p700singfl46";
778
+ type = "gem";
779
+ };
780
+ version = "7.2.0";
781
+ };
782
+ regexp_parser = {
783
+ groups = ["default"];
784
+ platforms = [];
785
+ source = {
786
+ remotes = ["https://rubygems.org"];
787
+ sha256 = "1fwfw26a32rps78920nn29shqg2zmqv72i89j1fap41isshida9m";
788
+ type = "gem";
789
+ };
790
+ version = "2.12.0";
791
+ };
792
+ reline = {
793
+ dependencies = ["io-console"];
794
+ groups = ["default" "maintenance"];
795
+ platforms = [];
796
+ source = {
797
+ remotes = ["https://rubygems.org"];
798
+ sha256 = "0d8q5c4nh2g9pp758kizh8sfrvngynrjlm0i1zn3cnsnfd4v160i";
799
+ type = "gem";
800
+ };
801
+ version = "0.6.3";
802
+ };
803
+ rubyshell = {
804
+ groups = ["default"];
805
+ platforms = [];
806
+ source = {
807
+ remotes = ["https://rubygems.org"];
808
+ sha256 = "1dkaj6a038m23r2xph0k2jc03i6aq8xzqmf17qpjprb2b50jimgz";
809
+ type = "gem";
810
+ };
811
+ version = "1.5.0";
812
+ };
813
+ rugged = {
814
+ groups = ["default" "maintenance"];
815
+ platforms = [];
816
+ source = {
817
+ remotes = ["https://rubygems.org"];
818
+ sha256 = "1b7gcf6pxg4x607bica68dbz22b4kch33yi0ils6x3c8ql9akakz";
819
+ type = "gem";
820
+ };
821
+ version = "1.9.0";
822
+ };
823
+ samovar = {
824
+ dependencies = ["console" "mapping"];
825
+ groups = ["default" "maintenance"];
826
+ platforms = [];
827
+ source = {
828
+ remotes = ["https://rubygems.org"];
829
+ sha256 = "104y60zqn1mznv1smbzzvhljam193w8w2886c2yf6w87b381vff3";
830
+ type = "gem";
831
+ };
832
+ version = "2.4.1";
833
+ };
834
+ scampi = {
835
+ groups = ["development"];
836
+ platforms = [];
837
+ source = {
838
+ remotes = ["https://rubygems.org"];
839
+ sha256 = "04x366dnw081ajg6qbw24i6afisv7fsgyvvwnvlr000ah48k3d66";
840
+ type = "gem";
841
+ };
842
+ version = "1.0.0";
843
+ };
844
+ securerandom = {
845
+ groups = ["default"];
846
+ platforms = [];
847
+ source = {
848
+ remotes = ["https://rubygems.org"];
849
+ sha256 = "1cd0iriqfsf1z91qg271sm88xjnfd92b832z49p1nd542ka96lfc";
850
+ type = "gem";
851
+ };
852
+ version = "0.4.1";
853
+ };
854
+ shellwords = {
855
+ groups = ["default"];
856
+ platforms = [];
857
+ source = {
858
+ remotes = ["https://rubygems.org"];
859
+ sha256 = "151gsdn2ci3ykvwxhmbz2yj3ar9g6gsc7gasvrr19xz23mwmlsdq";
860
+ type = "gem";
861
+ };
862
+ version = "0.2.2";
863
+ };
864
+ simpleidn = {
865
+ groups = ["default"];
866
+ platforms = [];
867
+ source = {
868
+ remotes = ["https://rubygems.org"];
869
+ sha256 = "0a9c1mdy12y81ck7mcn9f9i2s2wwzjh1nr92ps354q517zq9dkh8";
870
+ type = "gem";
871
+ };
872
+ version = "0.2.3";
873
+ };
874
+ string-format = {
875
+ groups = ["default" "maintenance"];
876
+ platforms = [];
877
+ source = {
878
+ remotes = ["https://rubygems.org"];
879
+ sha256 = "1xlsg0m748bcb4vgvmjxlfsif6nnl8pz6ja52c91y1kb24a1r65w";
880
+ type = "gem";
881
+ };
882
+ version = "0.2.0";
883
+ };
884
+ string_builder = {
885
+ groups = ["default"];
886
+ platforms = [];
887
+ source = {
888
+ remotes = ["https://rubygems.org"];
889
+ sha256 = "14ck60j7zp1vbw8amzgbfzfb70qd5rjjz1lp8q557z0k4pmqhgii";
890
+ type = "gem";
891
+ };
892
+ version = "1.2.4";
893
+ };
894
+ stringio = {
895
+ groups = ["default" "maintenance"];
896
+ platforms = [];
897
+ source = {
898
+ remotes = ["https://rubygems.org"];
899
+ sha256 = "1q92y9627yisykyscv0bdsrrgyaajc2qr56dwlzx7ysgigjv4z63";
900
+ type = "gem";
901
+ };
902
+ version = "3.2.0";
903
+ };
904
+ thread-local = {
905
+ groups = ["default" "maintenance"];
906
+ platforms = [];
907
+ source = {
908
+ remotes = ["https://rubygems.org"];
909
+ sha256 = "1ryjgfwcsbkxph1l24x87p1yabnnbqy958s57w37iwhf3z9nid9g";
910
+ type = "gem";
911
+ };
912
+ version = "1.1.0";
913
+ };
914
+ timeout = {
915
+ groups = ["default" "maintenance"];
916
+ platforms = [];
917
+ source = {
918
+ remotes = ["https://rubygems.org"];
919
+ sha256 = "1jxcji88mh6xsqz0mfzwnxczpg7cyniph7wpavnavfz7lxl77xbq";
920
+ type = "gem";
921
+ };
922
+ version = "0.6.1";
923
+ };
924
+ traces = {
925
+ groups = ["default" "maintenance"];
926
+ platforms = [];
927
+ source = {
928
+ remotes = ["https://rubygems.org"];
929
+ sha256 = "05722prvh34n96irnxa762wz0yj2nyrz70ab2zby3b6snjf69wc0";
930
+ type = "gem";
931
+ };
932
+ version = "0.18.2";
933
+ };
934
+ tsort = {
935
+ groups = ["default" "maintenance"];
936
+ platforms = [];
937
+ source = {
938
+ remotes = ["https://rubygems.org"];
939
+ sha256 = "17q8h020dw73wjmql50lqw5ddsngg67jfw8ncjv476l5ys9sfl4n";
940
+ type = "gem";
941
+ };
942
+ version = "0.2.0";
943
+ };
944
+ tzinfo = {
945
+ dependencies = ["concurrent-ruby"];
946
+ groups = ["default"];
947
+ platforms = [];
948
+ source = {
949
+ remotes = ["https://rubygems.org"];
950
+ sha256 = "16w2g84dzaf3z13gxyzlzbf748kylk5bdgg3n1ipvkvvqy685bwd";
951
+ type = "gem";
952
+ };
953
+ version = "2.0.6";
954
+ };
955
+ uri = {
956
+ groups = ["default"];
957
+ platforms = [];
958
+ source = {
959
+ remotes = ["https://rubygems.org"];
960
+ sha256 = "1ijpbj7mdrq7rhpq2kb51yykhrs2s54wfs6sm9z3icgz4y6sb7rp";
961
+ type = "gem";
962
+ };
963
+ version = "1.1.1";
964
+ };
965
+ utopia = {
966
+ dependencies = ["bake" "concurrent-ruby" "console" "http-accept" "irb" "mail" "mime-types" "msgpack" "net-smtp" "protocol-url" "rack" "samovar" "traces" "variant" "xrb"];
967
+ groups = ["default" "maintenance"];
968
+ platforms = [];
969
+ source = {
970
+ remotes = ["https://rubygems.org"];
971
+ sha256 = "0d6njl2lw3j68nd34wm6szr7yk8h2xq6a15b1sv8r49rpcddi3l8";
972
+ type = "gem";
973
+ };
974
+ version = "2.32.1";
975
+ };
976
+ utopia-project = {
977
+ dependencies = ["decode" "falcon" "markly" "rackula" "thread-local" "utopia"];
978
+ groups = ["maintenance"];
979
+ platforms = [];
980
+ source = {
981
+ remotes = ["https://rubygems.org"];
982
+ sha256 = "0j4jq3b9y6mly85s16yy6alrlyydzinylh4zly9v7y2bwd2y5604";
983
+ type = "gem";
984
+ };
985
+ version = "0.40.0";
986
+ };
987
+ variant = {
988
+ dependencies = ["thread-local"];
989
+ groups = ["default" "maintenance"];
990
+ platforms = [];
991
+ source = {
992
+ remotes = ["https://rubygems.org"];
993
+ sha256 = "0mizrq6819baz3s0zqwb5qz2dx21k3d0kav6alrcn14kvkfqzssk";
994
+ type = "gem";
995
+ };
996
+ version = "0.1.1";
997
+ };
998
+ xrb = {
999
+ groups = ["default" "maintenance"];
1000
+ platforms = [];
1001
+ source = {
1002
+ remotes = ["https://rubygems.org"];
1003
+ sha256 = "0w08kwxw9yll1p2sn2fhczzwgnx6q79ybl1xvkivnn3vig6jls0y";
1004
+ type = "gem";
1005
+ };
1006
+ version = "0.11.2";
1007
+ };
1008
+ }
data/kube_cluster.gemspec CHANGED
@@ -32,7 +32,7 @@ Gem::Specification.new do |spec|
32
32
  spec.add_development_dependency "scampi", "~> 1.0"
33
33
  spec.add_development_dependency "lefthook", "~> 2.1"
34
34
 
35
- spec.add_dependency "kube_schema", "~> 1.11.0"
35
+ spec.add_dependency "kube_schema", "~> 1.12.0"
36
36
  spec.add_dependency "kube_kubectl", "~> 2.0"
37
37
  spec.add_dependency "activesupport", "~> 8.0"
38
38
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Kube
4
4
  module Cluster
5
- VERSION = "1.8.0"
5
+ VERSION = "1.9.1"
6
6
  end
7
7
  end
@@ -161,12 +161,23 @@ module Kube
161
161
  def parse_crds(yaml_output)
162
162
  return [] if yaml_output.nil? || yaml_output.strip.empty?
163
163
 
164
- docs = YAML.safe_load_stream(yaml_output, permitted_classes: [Symbol])
164
+ docs = YAML.safe_load_stream(split_documents(yaml_output), permitted_classes: [Symbol])
165
165
  docs.compact
166
166
  .select { |doc| doc.is_a?(Hash) && doc["kind"] == "CustomResourceDefinition" }
167
167
  .map { |doc| Kube::Cluster["CustomResourceDefinition"].new(doc) }
168
168
  end
169
169
 
170
+ # `helm show crds` concatenates the chart's crds/*.yaml WITHOUT a `---`
171
+ # between them, so a chart shipping several CRDs arrives as one document
172
+ # with duplicate top-level keys -- and every CRD but the last is lost
173
+ # silently. external-dns 1.22.0 ships dnsendpoints and dnsrecords that
174
+ # way, and only dnsrecords survived. Start a document at every top-level
175
+ # `apiVersion:`; a file that already carries its own `---` yields an
176
+ # empty document, which the caller compacts away.
177
+ def split_documents(yaml_output)
178
+ yaml_output.gsub(/\n(?=apiVersion:)/, "\n---\n")
179
+ end
180
+
170
181
  # The chart source for helm commands — either a local path or a remote ref.
171
182
  def source
172
183
  @path || @ref
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kube_cluster
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.0
4
+ version: 1.9.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan K
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 1980-01-01 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: rake
@@ -57,14 +57,14 @@ dependencies:
57
57
  requirements:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: 1.11.0
60
+ version: 1.12.0
61
61
  type: :runtime
62
62
  prerelease: false
63
63
  version_requirements: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: 1.11.0
67
+ version: 1.12.0
68
68
  - !ruby/object:Gem::Dependency
69
69
  name: kube_kubectl
70
70
  requirement: !ruby/object:Gem::Requirement
@@ -179,6 +179,7 @@ files:
179
179
  - examples/README.md
180
180
  - flake.lock
181
181
  - flake.nix
182
+ - gemset.nix
182
183
  - guides/crds/readme.md
183
184
  - guides/dirty-tracking/readme.md
184
185
  - guides/getting-started/readme.md