module Cluster
Nested
Definitions
def self.[](kind)
Returns an anonymous subclass of Kube::Cluster::Resource for the given Kubernetes kind, mirroring Kube::Schema[kind] but with dirty tracking, persistence, and resource helper methods.
Kube::Cluster["Deployment"].new metadata.name = "web"
Implementation
def self.[](kind)
@resource_classes ||= {}
@resource_classes[kind] ||= begin
schema_class = Kube::Schema[kind]
Class.new(Resource) do
@schema = schema_class.schema
@defaults = schema_class.defaults
@schema_properties = schema_class.schema_properties
def self.schema = @schema || superclass.schema
def self.defaults = @defaults || superclass.defaults
def self.schema_properties = @schema_properties || superclass.schema_properties
end
end
end