kube_clusterSourceKubeCluster

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