Class: Kubectl
- Inherits:
-
Object
- Object
- Kubectl
- Defined in:
- lib/kuberun/kubectl.rb,
lib/kuberun/kubectl/exec.rb
Overview
Handles running kubectl
Defined Under Namespace
Classes: Exec
Constant Summary collapse
- CAT_MULTILINE =
'EOFCONFIG'
- KUBECTL_OPTIONS =
{ 'certificate-authority': {}, 'client-certificate': {}, 'client-key': {}, 'cluster': {}, 'context': {}, 'insecure-skip-tls-verify': {}, 'kubeconfig': {}, 'namespace': { aliases: :'-n' }, 'token': {}, 'v': { type: :numeric, default: 0, desc: 'Log level passed to kubectl' }, }.freeze
- SCRIPT_OPTIONS =
{ 'cluster-command': { type: 'string', default: '/bin/bash', desc: 'Command to run on cluster' }, 'use-first-pod': { type: 'boolean', default: false, desc: 'Should first existing pod be used automatically?' }, 'cleanup-pod': { type: 'boolean', default: false, desc: 'Should pod be removed after finishing?' }, 'perform-auth-check': { type: 'boolean', default: false, desc: 'Should auth check be performed?' }, 'pty': { type: 'boolean', default: false, desc: 'Should PTY be used?' }, }.freeze
- OPTIONS =
KUBECTL_OPTIONS.merge(SCRIPT_OPTIONS).freeze
Instance Method Summary collapse
- #auth_check(verb, resource:, resource_name: nil) ⇒ Object
- #create(configuration:, options: nil) ⇒ Object
- #delete(resource:, resource_name:) ⇒ Object
- #exec(pod, options = {}) ⇒ Object
- #get(resource:, resource_name: nil, options: nil) ⇒ Object
- #kubectl_base_command(verb, resource:, resource_name: nil, options: nil) ⇒ Object
- #load_options(options) ⇒ Object
Instance Method Details
#auth_check(verb, resource:, resource_name: nil) ⇒ Object
38 39 40 |
# File 'lib/kuberun/kubectl.rb', line 38 def auth_check(verb, resource:, resource_name: nil) cmd.run(kubectl_base_command("auth can-i #{verb}", resource: resource, resource_name: resource_name)) end |
#create(configuration:, options: nil) ⇒ Object
49 50 51 |
# File 'lib/kuberun/kubectl.rb', line 49 def create(configuration:, options: nil) cmd.run(kubectl_base_input_command('create', configuration: configuration, options: )) end |
#delete(resource:, resource_name:) ⇒ Object
57 58 59 |
# File 'lib/kuberun/kubectl.rb', line 57 def delete(resource:, resource_name:) cmd.run(kubectl_base_command('delete', resource: resource, resource_name: resource_name)) end |
#exec(pod, options = {}) ⇒ Object
53 54 55 |
# File 'lib/kuberun/kubectl.rb', line 53 def exec(pod, = {}) Kubectl::Exec.new(self).exec(pod, ) end |
#get(resource:, resource_name: nil, options: nil) ⇒ Object
42 43 44 45 46 47 |
# File 'lib/kuberun/kubectl.rb', line 42 def get(resource:, resource_name: nil, options: nil) = "#{} --output=json" parsed_json do cmd.run(kubectl_base_command('get', resource: resource, resource_name: resource_name, options: )).out end end |
#kubectl_base_command(verb, resource:, resource_name: nil, options: nil) ⇒ Object
61 62 63 64 65 |
# File 'lib/kuberun/kubectl.rb', line 61 def kubectl_base_command(verb, resource:, resource_name: nil, options: nil) base = "#{kubectl} #{} #{verb} #{resource}" base = "#{base}/#{resource_name}" if resource_name base end |
#load_options(options) ⇒ Object
33 34 35 36 |
# File 'lib/kuberun/kubectl.rb', line 33 def () self. = self. = () end |