Class: PicsolveDockerBuilder::Composer::Requirements::Base

Inherits:
Object
  • Object
show all
Includes:
Base
Defined in:
lib/picsolve_docker_builder/composer/requirements/base.rb

Overview

Base class for requirements

Direct Known Subclasses

Postgres

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Base

#base_dir, #config_file, #config_path, #config_paths, #create_logger, #default_config, #log, #read_config, #validate_config

Constructor Details

#initialize(name, config, context) ⇒ Base

Returns a new instance of Base.



10
11
12
13
14
# File 'lib/picsolve_docker_builder/composer/requirements/base.rb', line 10

def initialize(name, config, context)
  @name = name
  @config = config
  @context = context
end

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config.



9
10
11
# File 'lib/picsolve_docker_builder/composer/requirements/base.rb', line 9

def config
  @config
end

#nameObject (readonly)

Returns the value of attribute name.



9
10
11
# File 'lib/picsolve_docker_builder/composer/requirements/base.rb', line 9

def name
  @name
end

Instance Method Details

#containerObject



32
33
34
# File 'lib/picsolve_docker_builder/composer/requirements/base.rb', line 32

def container
  @context.container
end

#create_secret(name, obj) ⇒ Object



44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/picsolve_docker_builder/composer/requirements/base.rb', line 44

def create_secret(name, obj)
  secret = Kubeclient::Secret.new
  secret. = {
    name: name,
    namespace: namespace
  }
  secret.data = {}
  obj.each do |key, value|
    secret.data[key.to_sym] = Base64.encode64(value).delete("\n")
  end
  kubernetes.client.create_secret secret
end

#delete_secret(name) ⇒ Object



40
41
42
# File 'lib/picsolve_docker_builder/composer/requirements/base.rb', line 40

def delete_secret(name)
  kubernetes.client.delete_secret name, namespace
end

#environment(_kubernetes) ⇒ Object



16
17
18
# File 'lib/picsolve_docker_builder/composer/requirements/base.rb', line 16

def environment(_kubernetes)
  []
end

#gen_password(length = 16) ⇒ Object



36
37
38
# File 'lib/picsolve_docker_builder/composer/requirements/base.rb', line 36

def gen_password(length = 16)
  SecureRandom.urlsafe_base64(length)
end

#get_secret(name) ⇒ Object



57
58
59
60
61
62
63
64
# File 'lib/picsolve_docker_builder/composer/requirements/base.rb', line 57

def get_secret(name)
  obj = kubernetes.client.get_secret(name, namespace)
  hash = {}
  obj.data.to_hash.each do |key, value|
    hash[key.to_s] = Base64.decode64(value)
  end
  hash
end

#kubernetesObject



24
25
26
# File 'lib/picsolve_docker_builder/composer/requirements/base.rb', line 24

def kubernetes
  @context.kubernetes
end

#namespaceObject



28
29
30
# File 'lib/picsolve_docker_builder/composer/requirements/base.rb', line 28

def namespace
  @context.namespace
end

#stageObject



20
21
22
# File 'lib/picsolve_docker_builder/composer/requirements/base.rb', line 20

def stage
  @context.kubernetes.stage
end