Class: KubeDeployTools::Kubectl

Inherits:
Object
  • Object
show all
Defined in:
lib/kube_deploy_tools/kubectl.rb

Instance Method Summary collapse

Constructor Details

#initialize(context:, kubeconfig:) ⇒ Kubectl

Returns a new instance of Kubectl.

Raises:

  • (ArgumentError)


6
7
8
9
10
11
12
13
# File 'lib/kube_deploy_tools/kubectl.rb', line 6

def initialize(
  context:,
  kubeconfig:)
  @context = context
  @kubeconfig = kubeconfig

  raise ArgumentError, "context is required" if context.empty?
end

Instance Method Details

#run(*args, print_cmd: true, timeout: nil) ⇒ Object



15
16
17
18
19
20
21
22
# File 'lib/kube_deploy_tools/kubectl.rb', line 15

def run(*args, print_cmd: true, timeout: nil)
  args = args.unshift("kubectl")
  args.push("--context=#{@context}")
  args.push("--kubeconfig=#{@kubeconfig}") if @kubeconfig.present?
  args.push("--request-timeout=#{timeout}") if timeout.present?

  Shellrunner.run_call(*args, print_cmd: print_cmd)
end