kube_clusterSourceKubeClusterMiddlewareStack

class Stack

An ordered pipeline of middleware that processes a manifest. Each middleware receives the manifest and mutates it in place.

stack = Kube::Cluster::Middleware::Stack.new do use Middleware::ServiceForDeployment use Middleware::Labels, app: "web" use Middleware::Namespace, "production" end

stack.call(manifest)

Definitions

def use(klass, *args, **kwargs)

Register a middleware class with optional positional and keyword arguments.

Implementation

def use(klass, *args, **kwargs)
  @middleware << [klass, args, kwargs]
end

def call(manifest)

Run the manifest through every middleware in order. Each middleware mutates the manifest in place.

Implementation

def call(manifest)
  @middleware.each do |klass, args, kwargs|
    klass.new(*args, **kwargs).call(manifest)
  end
end

def empty?

True when no middleware has been registered.

Implementation

def empty?
  @middleware.empty?
end