Class: Kube::Cluster::Middleware
- Inherits:
-
Object
- Object
- Kube::Cluster::Middleware
- Defined in:
- 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/middleware/annotations.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
Overview
Base class for manifest middleware.
Middleware receives the full manifest and mutates it in place. Each middleware is responsible for iterating resources as needed.
Transform example:
class AddTeamLabel < Middleware
def call(manifest)
manifest.resources.map! do |resource|
h = resource.to_h
h[:metadata][:labels][:"app.kubernetes.io/team"] = "platform"
resource.rebuild(h)
end
end
end
Generative example:
class ServiceForDeployment < Middleware
def call(manifest)
generated = []
manifest.resources.each do |resource|
next unless resource.pod_bearing?
generated << build_service_from(resource)
end
manifest.resources.concat(generated)
end
end
Direct Known Subclasses
Annotations, HPAForDeployment, IngressForService, Labels, Namespace, PodAntiAffinity, ResourcePreset, SecurityContext, ServiceForDeployment
Defined Under Namespace
Classes: Annotations, HPAForDeployment, IngressForService, Labels, Namespace, PodAntiAffinity, ResourcePreset, SecurityContext, ServiceForDeployment, Stack
Instance Method Summary collapse
-
#call(manifest) ⇒ Object
Override in subclasses.
-
#initialize(**opts) ⇒ Middleware
constructor
A new instance of Middleware.
Constructor Details
#initialize(**opts) ⇒ Middleware
Returns a new instance of Middleware.
47 48 49 |
# File 'lib/kube/cluster/middleware.rb', line 47 def initialize(**opts) @opts = opts end |
Instance Method Details
#call(manifest) ⇒ Object
Override in subclasses. Receives the full manifest, mutates it in place.
53 54 |
# File 'lib/kube/cluster/middleware.rb', line 53 def call(manifest) end |