Class: Metatron::Templates::ClusterRole

Inherits:
Metatron::Template show all
Includes:
Metatron::Templates::Concerns::Annotated
Defined in:
lib/metatron/templates/cluster_role.rb

Overview

Template for basic ClusterRole k8s resource

Instance Attribute Summary collapse

Attributes inherited from Metatron::Template

#additional_labels, #api_version, #kind, #label_namespace, #name

Instance Method Summary collapse

Methods included from Metatron::Templates::Concerns::Annotated

#annotated_initialize, #formatted_annotations, included

Methods inherited from Metatron::Template

#base_labels, initializer, initializers, metatron_template_class?, nearest_metatron_ancestor

Constructor Details

#initialize(name) ⇒ ClusterRole

Returns a new instance of ClusterRole.



13
14
15
16
17
# File 'lib/metatron/templates/cluster_role.rb', line 13

def initialize(name)
  super(name)
  @api_version = "rbac.authorization.k8s.io/v1"
  @rules = []
end

Instance Attribute Details

#aggregation_ruleObject Also known as: aggregationRule

Returns the value of attribute aggregation_rule.



9
10
11
# File 'lib/metatron/templates/cluster_role.rb', line 9

def aggregation_rule
  @aggregation_rule
end

#rulesObject

Returns the value of attribute rules.



9
10
11
# File 'lib/metatron/templates/cluster_role.rb', line 9

def rules
  @rules
end

Instance Method Details

#formatted_rulesObject



32
# File 'lib/metatron/templates/cluster_role.rb', line 32

def formatted_rules = rules.map { _1.respond_to?(:render) ? _1.render : _1 }

#renderObject



19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/metatron/templates/cluster_role.rb', line 19

def render
  {
    apiVersion:,
    kind:,
    metadata: {
      name:,
      labels: base_labels.merge(additional_labels)
    }.merge(formatted_annotations).compact,
    aggregationRule:,
    rules: formatted_rules
  }.compact
end