kube_cluster 0.4.5 → 0.4.7
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 +46 -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: b3ae1df20de1bad959340b6e45abd4eeeaf39c1f3aee0c2880782f6181b1d2c2
|
|
4
|
+
data.tar.gz: 66652d284391230c060b508ea205fea8c0faee1a0a1438143836b47f52f21a01
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 80dbc3f35777b53fa93efcf28201604e85707f73c8cbd6f1b455d0c59f504b481afa3f7e7ee36037ee57044c782722d142a7142de7691b5083c81f9501d5b839
|
|
7
|
+
data.tar.gz: 29d3237e925940b312f09935eba58f6f22cd9e3b6f2fcc7a4fa1e422e352aa925ec80a7c10c91a61516e8169c4323cf498c0f53061fccd78a8b3dc988e1f0405
|
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,25 @@ 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 schema object instead...
|
|
73
|
+
#
|
|
74
|
+
Kube::Schema[hash.delete(:kind).to_s].new(**hash)
|
|
75
|
+
#self.class.new(**hash)
|
|
56
76
|
end
|
|
57
77
|
|
|
58
78
|
# Read a label value from the resource.
|
|
@@ -106,3 +126,25 @@ module Kube
|
|
|
106
126
|
end
|
|
107
127
|
end
|
|
108
128
|
end
|
|
129
|
+
|
|
130
|
+
test do
|
|
131
|
+
class ExampleServiceSubclass < Kube::Cluster["Service"]
|
|
132
|
+
def initialize(name:, port:, **options, &block)
|
|
133
|
+
super() {
|
|
134
|
+
metadata.name = name
|
|
135
|
+
metadata.labels = { "app" => name }
|
|
136
|
+
spec.selector = { "app" => name }
|
|
137
|
+
spec.ports = [{ port: port, targetPort: port, protocol: "TCP" }]
|
|
138
|
+
|
|
139
|
+
instance_exec(&block) if block_given?
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
end
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
it "rebuilds properly" do
|
|
146
|
+
ExampleServiceSubclass.new(name: "example-service", port: 3000).tap do |service|
|
|
147
|
+
lambda{ service.rebuild(**service.to_h) }.should.not.raise
|
|
148
|
+
end
|
|
149
|
+
end
|
|
150
|
+
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
|
+
|