Module: Kube::Cluster

Defined in:
lib/kube/cluster.rb,
lib/kube/cluster/version.rb,
lib/kube/cluster/instance.rb,
lib/kube/cluster/manifest.rb,
lib/kube/cluster/resource.rb,
lib/kube/cluster/connection.rb,
lib/kube/cluster/middleware.rb,
lib/kube/cluster/middleware/stack.rb,
lib/kube/cluster/middleware/labels.rb,
lib/kube/cluster/middleware/namespace.rb,
lib/kube/cluster/resource/persistence.rb,
lib/kube/cluster/middleware/annotations.rb,
lib/kube/cluster/resource/dirty_tracking.rb,
lib/kube/cluster/middleware/resource_preset.rb,
lib/kube/cluster/middleware/security_context.rb,
lib/kube/cluster/middleware/pod_anti_affinity.rb,
lib/kube/cluster/middleware/hpa_for_deployment.rb,
lib/kube/cluster/middleware/ingress_for_service.rb,
lib/kube/cluster/middleware/service_for_deployment.rb

Defined Under Namespace

Classes: Connection, Instance, Manifest, Middleware, Resource

Constant Summary collapse

VERSION =
"0.3.2"

Class Method Summary collapse

Class Method Details

.[](kind) ⇒ Object

Returns an anonymous subclass of Kube::Cluster::Resource for the given Kubernetes kind, mirroring Kube::Schema but with dirty tracking, persistence, and resource helper methods.

Kube::Cluster["Deployment"].new { .name = "web" }


29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/kube/cluster.rb', line 29

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

      def self.schema   = @schema   || superclass.schema
      def self.defaults = @defaults || superclass.defaults
    end
  end
end

.connect(kubeconfig:) ⇒ Object



19
20
21
# File 'lib/kube/cluster.rb', line 19

def self.connect(kubeconfig:)
  Instance.new(kubeconfig: kubeconfig)
end