Class: Hippo::ObjectDefinition

Inherits:
Object
  • Object
show all
Defined in:
lib/hippo/object_definition.rb

Instance Method Summary collapse

Constructor Details

#initialize(object, stage, clean: false) ⇒ ObjectDefinition

Returns a new instance of ObjectDefinition.



7
8
9
10
11
12
13
14
15
# File 'lib/hippo/object_definition.rb', line 7

def initialize(object, stage, clean: false)
  @object = object
  @stage = stage

  unless clean
    insert_namespace!
    insert_default_labels!
  end
end

Instance Method Details

#[](name) ⇒ Object



17
18
19
# File 'lib/hippo/object_definition.rb', line 17

def [](name)
  @object[name]
end

#dig(*args) ⇒ Object



21
22
23
# File 'lib/hippo/object_definition.rb', line 21

def dig(*args)
  @object.dig(*args)
end

#insert_default_labels!Object



45
46
47
48
49
50
# File 'lib/hippo/object_definition.rb', line 45

def insert_default_labels!
  ['labels'] ||= {}
  ['labels']['app.kubernetes.io/name'] = @stage.manifest.name
  ['labels']['app.kubernetes.io/instance'] = @stage.name
  ['labels']['app.kubernetes.io/managed-by'] = 'hippo'
end

#insert_deployment_id!(deployment_id) ⇒ Object



52
53
54
55
56
57
58
59
60
61
# File 'lib/hippo/object_definition.rb', line 52

def insert_deployment_id!(deployment_id)
  ['labels'] ||= {}
  ['labels']['hippo.adam.ac/deployID'] = deployment_id

  # For deployments, insert the ID on the template too for deployments.
  if kind == 'Deployment' &&  = @object.dig('spec', 'template', 'metadata')
    ['labels'] ||= {}
    ['labels']['hippo.adam.ac/deployID'] = deployment_id
  end
end

#insert_namespace!Object



41
42
43
# File 'lib/hippo/object_definition.rb', line 41

def insert_namespace!
  ['namespace'] = @stage.namespace
end

#kindObject



33
34
35
# File 'lib/hippo/object_definition.rb', line 33

def kind
  @object['kind']
end

#metadataObject



29
30
31
# File 'lib/hippo/object_definition.rb', line 29

def 
  @object['metadata'] ||= {}
end

#nameObject



25
26
27
# File 'lib/hippo/object_definition.rb', line 25

def name
  ['name']
end

#yamlObject



37
38
39
# File 'lib/hippo/object_definition.rb', line 37

def yaml
  @object.to_yaml
end