Module: Dapp::Kube::Dapp::Command::Common

Included in:
Dapp
Defined in:
lib/dapp/kube/dapp/command/common.rb

Instance Method Summary collapse

Instance Method Details

#kube_chart_path(*path) ⇒ Object



54
55
56
# File 'lib/dapp/kube/dapp/command/common.rb', line 54

def kube_chart_path(*path)
  self.path('.helm', *path).expand_path
end

#kube_chart_secret_dir_nameObject



50
51
52
# File 'lib/dapp/kube/dapp/command/common.rb', line 50

def kube_chart_secret_dir_name
  'secret'
end

#kube_chart_secret_path(*path) ⇒ Object



46
47
48
# File 'lib/dapp/kube/dapp/command/common.rb', line 46

def kube_chart_secret_path(*path)
  kube_chart_path(kube_chart_secret_dir_name, *path).expand_path
end

#kube_check_helm!Object

Raises:



6
7
8
# File 'lib/dapp/kube/dapp/command/common.rb', line 6

def kube_check_helm!
  raise Error::Command, code: :helm_not_found if shellout('which helm').exitstatus == 1
end

#kube_namespaceObject



14
15
16
# File 'lib/dapp/kube/dapp/command/common.rb', line 14

def kube_namespace
  kubernetes.namespace
end

#kube_release_nameObject



10
11
12
# File 'lib/dapp/kube/dapp/command/common.rb', line 10

def kube_release_name
  "#{name}-#{kube_namespace}".slugify
end

#kube_secret_file_validate!(file_path) ⇒ Object

Raises:



34
35
36
37
# File 'lib/dapp/kube/dapp/command/common.rb', line 34

def kube_secret_file_validate!(file_path)
  raise Error::Command, code: :secret_file_not_found, data: { path: File.expand_path(file_path) } unless File.exist?(file_path)
  raise Error::Command, code: :secret_file_empty, data: { path: File.expand_path(file_path) } if File.read(file_path).strip.empty?
end

#kube_tmp_chart_path(*path) ⇒ Object



64
65
66
67
# File 'lib/dapp/kube/dapp/command/common.rb', line 64

def kube_tmp_chart_path(*path)
  @kube_tmp_path ||= Dir.mktmpdir('dapp-helm-chart-', tmp_base_dir)
  make_path(@kube_tmp_path, *path).expand_path.tap { |p| p.parent.mkpath }
end

#kubernetesObject



94
95
96
97
98
99
# File 'lib/dapp/kube/dapp/command/common.rb', line 94

def kubernetes
  @kubernetes ||= begin
    namespace = options[:namespace].nil? ? nil : options[:namespace].tr('_', '-')
    Kubernetes::Client.new(namespace: namespace)
  end
end

#secretObject



69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# File 'lib/dapp/kube/dapp/command/common.rb', line 69

def secret
  @secret ||= begin
    unless (secret_key = ENV['DAPP_SECRET_KEY'])
      secret_key_not_found_in << '`DAPP_SECRET_KEY`'

      if dappfile_exists?
        file_path = path('.dapp_secret_key')
        if file_path.file?
          secret_key = path('.dapp_secret_key').read.chomp
        else
          secret_key_not_found_in << "`#{file_path}`"
        end
      else
        log_warning(desc: { code: :secret_key_dappfile_not_found })
      end
    end

    Secret.new(secret_key) if secret_key
  end
end

#secret_key_not_found_inObject



90
91
92
# File 'lib/dapp/kube/dapp/command/common.rb', line 90

def secret_key_not_found_in
  @secret_key_not_found_in ||= []
end

#secret_key_should_exist!Object

Raises:



39
40
41
42
43
44
# File 'lib/dapp/kube/dapp/command/common.rb', line 39

def secret_key_should_exist!
  raise(Error::Command,
    code: :secret_key_not_found,
    data: {not_found_in: secret_key_not_found_in.join(', ')}
  ) if secret.nil?
end

#with_kube_tmp_chart_dirObject



58
59
60
61
62
# File 'lib/dapp/kube/dapp/command/common.rb', line 58

def with_kube_tmp_chart_dir
  yield if block_given?
ensure
  FileUtils.rm_rf(kube_tmp_chart_path)
end