Class: Metatron::Templates::PersistentVolumeClaim
- Inherits:
-
Metatron::Template
- Object
- Metatron::Template
- Metatron::Templates::PersistentVolumeClaim
- Includes:
- Concerns::Annotated, Concerns::Namespaced
- Defined in:
- lib/metatron/templates/persistent_volume_claim.rb
Overview
The PersistentVolumeClaim Kubernetes resource
Instance Attribute Summary collapse
-
#access_modes ⇒ Object
(also: #accessModes)
Returns the value of attribute access_modes.
-
#additional_labels ⇒ Object
Returns the value of attribute additional_labels.
-
#data_source ⇒ Object
(also: #dataSource)
Returns the value of attribute data_source.
-
#data_source_ref ⇒ Object
(also: #dataSourceRef)
Returns the value of attribute data_source_ref.
-
#storage ⇒ Object
Returns the value of attribute storage.
-
#storage_class ⇒ Object
(also: #storageClassName)
Returns the value of attribute storage_class.
Attributes inherited from Metatron::Template
#api_version, #base_labels, #kind, #name
Instance Method Summary collapse
- #formatted_data_source ⇒ Object
- #formatted_data_source_ref ⇒ Object
-
#initialize(name, storage_class:, storage:, access_modes: ["ReadWriteOnce"]) ⇒ PersistentVolumeClaim
constructor
A new instance of PersistentVolumeClaim.
- #render ⇒ Object
Methods included from Concerns::Namespaced
#formatted_namespace, included, #namespaced_initialize
Methods included from Concerns::Annotated
#annotated_initialize, #formatted_annotations, included
Methods inherited from Metatron::Template
initializer, initializers, metatron_template_class?, nearest_metatron_ancestor
Constructor Details
#initialize(name, storage_class:, storage:, access_modes: ["ReadWriteOnce"]) ⇒ PersistentVolumeClaim
Returns a new instance of PersistentVolumeClaim.
18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/metatron/templates/persistent_volume_claim.rb', line 18 def initialize( name, storage_class:, storage:, access_modes: ["ReadWriteOnce"] ) super(name) @storage_class = storage_class @access_modes = access_modes @storage = storage @data_source = {} @additional_labels = {} end |
Instance Attribute Details
#access_modes ⇒ Object Also known as: accessModes
Returns the value of attribute access_modes.
10 11 12 |
# File 'lib/metatron/templates/persistent_volume_claim.rb', line 10 def access_modes @access_modes end |
#additional_labels ⇒ Object
Returns the value of attribute additional_labels.
10 11 12 |
# File 'lib/metatron/templates/persistent_volume_claim.rb', line 10 def additional_labels @additional_labels end |
#data_source ⇒ Object Also known as: dataSource
Returns the value of attribute data_source.
10 11 12 |
# File 'lib/metatron/templates/persistent_volume_claim.rb', line 10 def data_source @data_source end |
#data_source_ref ⇒ Object Also known as: dataSourceRef
Returns the value of attribute data_source_ref.
10 11 12 |
# File 'lib/metatron/templates/persistent_volume_claim.rb', line 10 def data_source_ref @data_source_ref end |
#storage ⇒ Object
Returns the value of attribute storage.
10 11 12 |
# File 'lib/metatron/templates/persistent_volume_claim.rb', line 10 def storage @storage end |
#storage_class ⇒ Object Also known as: storageClassName
Returns the value of attribute storage_class.
10 11 12 |
# File 'lib/metatron/templates/persistent_volume_claim.rb', line 10 def storage_class @storage_class end |
Instance Method Details
#formatted_data_source ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/metatron/templates/persistent_volume_claim.rb', line 52 def formatted_data_source return {} unless data_source && !data_source.empty? raise "dataSource must be a Hash" unless data_source.is_a?(Hash) valid_keys = %i[apiGroup kind name] unless data_source.keys.all? { valid_keys.include?(_1.to_sym) } raise "dataSource may contain only the keys: #{valid_keys.join(", ")}" end { dataSource: data_source.transform_keys(&:to_sym) } end |
#formatted_data_source_ref ⇒ Object
64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/metatron/templates/persistent_volume_claim.rb', line 64 def formatted_data_source_ref return {} unless data_source_ref && !data_source_ref.empty? raise "dataSourceRef must be a Hash" unless data_source_ref.is_a?(Hash) valid_keys = %i[apiGroup kind name namespace] unless data_source_ref.keys.all? { valid_keys.include?(_1.to_sym) } raise "dataSourceRef may contain only the keys: #{valid_keys.join(", ")}" end { dataSourceRef: data_source_ref.transform_keys(&:to_sym) } end |
#render ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/metatron/templates/persistent_volume_claim.rb', line 32 def render { apiVersion:, kind:, metadata: { name:, labels: base_labels.merge(additional_labels) }.merge(formatted_annotations).merge(formatted_namespace), spec: { accessModes:, storageClassName:, resources: { requests: { storage: } } }.merge(formatted_data_source).merge(formatted_data_source_ref) } end |