Class: KuberKit::Actions::KubectlAttacher

Inherits:
Object
  • Object
show all
Defined in:
lib/kuber_kit/actions/kubectl_attacher.rb

Instance Method Summary collapse

Instance Method Details

#call(pod_name, options) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/kuber_kit/actions/kubectl_attacher.rb', line 9

def call(pod_name, options)
  kubeconfig_path = KuberKit.current_configuration.kubeconfig_path
  deployer_namespace = KuberKit.current_configuration.deployer_namespace

  if !pod_name 
    resources = kubectl_commands.get_resources(local_shell, "deployments", jsonpath: ".items[*].metadata.name")
    options   = resources.split(" ").map{|d| "deploy/#{d}" }
    pod_name  = ui.prompt("Please select deployment to attach", options)
  end

  kubectl_commands.exec(
    local_shell, pod_name, "bash", args: "-it", 
    kubeconfig_path: kubeconfig_path, 
    interactive: true,
    namespace: deployer_namespace
  )

  true
rescue KuberKit::Error => e
  ui.print_error("Error", e.message)
  
  false
end