kube_cluster 0.4.6 → 0.4.8
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/Gemfile.lock +1 -1
- data/lib/kube/cluster/connection.rb +3 -0
- data/lib/kube/cluster/instance.rb +3 -0
- data/lib/kube/cluster/resource/extensions/README.md +11 -0
- data/lib/kube/cluster/resource/extensions/custom_resource_definition.rb +3 -0
- data/lib/kube/cluster/resource/persistence.rb +3 -0
- data/lib/kube/cluster/resource.rb +45 -4
- data/lib/kube/cluster/version.rb +1 -1
- data/lib/kube/cluster.rb +7 -10
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 29f0b89bcad5669b18075612872b4eac39dc145c4060ae8418b34efddd4cef01
|
|
4
|
+
data.tar.gz: 2ed4d546d9c9f20509df93da3ed33f6f0bf685e63d62cb094bf9c31056de5cc7
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1ccbed1543964bc51b2d0c875d5b97ecb04a4f921ac00b1f94a2b4122a01f37a0770d2b98ce1925d1f1761240a12a42e3a89ca3cca7e583ccabbf75a74096daa
|
|
7
|
+
data.tar.gz: b213f6b313d9d7ca45282913e1de6aad5459f6adb06640fe864d50b277a0a4c860d38b50658d615e8fda7739c665f3a397152bb5f598c7ad2a295230279c87a7
|
data/Gemfile.lock
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
|
|
3
|
+
Mate... I have no idea what the fuck this file is..... or who made it....
|
|
4
|
+
I really can't be arsed to read it either....
|
|
5
|
+
|
|
6
|
+
Someone please read it and let me know what the fuck it is...
|
|
7
|
+
|
|
8
|
+
-- Nathan K. 2026-05-01
|
|
9
|
+
|
|
10
|
+
-->
|
|
11
|
+
|
|
1
12
|
# Resource Extensions
|
|
2
13
|
|
|
3
14
|
Modules in this directory are dynamically mixed into `Kube::Cluster::Resource` instances at initialization time (via `extend`).
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require_relative "resource/dirty_tracking"
|
|
4
|
-
require_relative "resource/persistence"
|
|
5
|
-
require_relative "resource/extensions/custom_resource_definition"
|
|
3
|
+
#require_relative "resource/dirty_tracking"
|
|
4
|
+
#require_relative "resource/persistence"
|
|
5
|
+
#require_relative "resource/extensions/custom_resource_definition"
|
|
6
|
+
require "bundler/setup"
|
|
7
|
+
require "kube/cluster"
|
|
6
8
|
|
|
7
9
|
module Kube
|
|
8
10
|
module Cluster
|
|
@@ -52,7 +54,24 @@ module Kube
|
|
|
52
54
|
|
|
53
55
|
# Build a new resource of the same schema subclass from a hash.
|
|
54
56
|
def rebuild(hash = {})
|
|
55
|
-
self.class.new(**hash)
|
|
57
|
+
# self.class.new(**hash) would throw an error if you do something like this:
|
|
58
|
+
#
|
|
59
|
+
# class ExampleServiceSubclass < Kube::Cluster["Service"]
|
|
60
|
+
# def initialize(name:, port:, **options, &block)
|
|
61
|
+
# super() {
|
|
62
|
+
# metadata.name = name
|
|
63
|
+
# metadata.labels = { "app" => name }
|
|
64
|
+
# spec.selector = { "app" => name }
|
|
65
|
+
# spec.ports = [{ port: port, targetPort: port, protocol: "TCP" }]
|
|
66
|
+
# instance_exec(&block) if block_given?
|
|
67
|
+
# }
|
|
68
|
+
# end
|
|
69
|
+
# end
|
|
70
|
+
#
|
|
71
|
+
# Therefore we must make sure that we're rebuilding from the
|
|
72
|
+
# initial Kube::Cluster object instead... NOT Kube::Schema...
|
|
73
|
+
#
|
|
74
|
+
Kube::Cluster[hash.delete(:kind).to_s].new(**hash)
|
|
56
75
|
end
|
|
57
76
|
|
|
58
77
|
# Read a label value from the resource.
|
|
@@ -106,3 +125,25 @@ module Kube
|
|
|
106
125
|
end
|
|
107
126
|
end
|
|
108
127
|
end
|
|
128
|
+
|
|
129
|
+
test do
|
|
130
|
+
class ExampleServiceSubclass < Kube::Cluster["Service"]
|
|
131
|
+
def initialize(name:, port:, **options, &block)
|
|
132
|
+
super() {
|
|
133
|
+
metadata.name = name
|
|
134
|
+
metadata.labels = { "app" => name }
|
|
135
|
+
spec.selector = { "app" => name }
|
|
136
|
+
spec.ports = [{ port: port, targetPort: port, protocol: "TCP" }]
|
|
137
|
+
|
|
138
|
+
instance_exec(&block) if block_given?
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
end
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
it "rebuilds properly" do
|
|
145
|
+
ExampleServiceSubclass.new(name: "example-service", port: 3000).tap do |service|
|
|
146
|
+
lambda{ service.rebuild(**service.to_h) }.should.not.raise
|
|
147
|
+
end
|
|
148
|
+
end
|
|
149
|
+
end
|
data/lib/kube/cluster/version.rb
CHANGED
data/lib/kube/cluster.rb
CHANGED
|
@@ -3,12 +3,6 @@
|
|
|
3
3
|
require "kube/schema"
|
|
4
4
|
require_relative "../kube/errors"
|
|
5
5
|
require_relative "cluster/version"
|
|
6
|
-
require_relative "cluster/connection"
|
|
7
|
-
require_relative "cluster/instance"
|
|
8
|
-
require_relative "cluster/resource"
|
|
9
|
-
require_relative "cluster/container"
|
|
10
|
-
require_relative "cluster/middleware"
|
|
11
|
-
require_relative "cluster/manifest"
|
|
12
6
|
require 'kube/ctl'
|
|
13
7
|
require_relative 'helm/repo'
|
|
14
8
|
|
|
@@ -46,8 +40,11 @@ module Kube
|
|
|
46
40
|
end
|
|
47
41
|
end
|
|
48
42
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
43
|
+
require "kube/cluster/middleware"
|
|
44
|
+
require "kube/cluster/resource/dirty_tracking"
|
|
45
|
+
require "kube/cluster/resource/persistence"
|
|
46
|
+
|
|
47
|
+
Dir.glob("#{__dir__}/cluster/**/*.rb").sort.each do |path|
|
|
48
|
+
require path
|
|
53
49
|
end
|
|
50
|
+
|