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