Class: Kube::Cluster::Middleware::Labels
- Inherits:
-
Kube::Cluster::Middleware
- Object
- Kube::Cluster::Middleware
- Kube::Cluster::Middleware::Labels
- Defined in:
- lib/kube/cluster/middleware/labels.rb
Overview
Merges labels into metadata.labels on every resource. Existing labels are preserved; the supplied labels act as defaults that can be overridden per-resource.
stack do
use Middleware::Labels, app: "web-app", managed_by: "kube_cluster"
end
The keyword arguments are converted to standard label keys:
app: -> "app.kubernetes.io/name"
instance: -> "app.kubernetes.io/instance"
version: -> "app.kubernetes.io/version"
component: -> "app.kubernetes.io/component"
part_of: -> "app.kubernetes.io/part-of"
managed_by: -> "app.kubernetes.io/managed-by"
Any unrecognized keys are passed through as-is (string or symbol).
Constant Summary collapse
- STANDARD_KEYS =
{ app: :"app.kubernetes.io/name", instance: :"app.kubernetes.io/instance", version: :"app.kubernetes.io/version", component: :"app.kubernetes.io/component", part_of: :"app.kubernetes.io/part-of", managed_by: :"app.kubernetes.io/managed-by", }.freeze
Constants inherited from Kube::Cluster::Middleware
Instance Method Summary collapse
Methods inherited from Kube::Cluster::Middleware
Constructor Details
This class inherits a constructor from Kube::Cluster::Middleware
Instance Method Details
#call(manifest) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/kube/cluster/middleware/labels.rb', line 38 def call(manifest) labels = normalize(@opts) manifest.resources.map! do |resource| filter(resource) do h = resource.to_h h[:metadata] ||= {} h[:metadata][:labels] = labels.merge(h[:metadata][:labels] || {}) resource.rebuild(h) end end end |