Class: KubernetesDeploy::Kubectl
- Inherits:
-
Object
- Object
- KubernetesDeploy::Kubectl
- Defined in:
- lib/kubernetes-deploy/kubectl.rb
Instance Method Summary collapse
-
#initialize(namespace:, context:, logger:, log_failure_by_default:) ⇒ Kubectl
constructor
A new instance of Kubectl.
- #run(*args, log_failure: nil, use_context: true, use_namespace: true) ⇒ Object
Constructor Details
#initialize(namespace:, context:, logger:, log_failure_by_default:) ⇒ Kubectl
Returns a new instance of Kubectl.
5 6 7 8 9 10 11 12 13 |
# File 'lib/kubernetes-deploy/kubectl.rb', line 5 def initialize(namespace:, context:, logger:, log_failure_by_default:) @namespace = namespace @context = context @logger = logger @log_failure_by_default = log_failure_by_default raise ArgumentError, "namespace is required" if namespace.blank? raise ArgumentError, "context is required" if context.blank? end |
Instance Method Details
#run(*args, log_failure: nil, use_context: true, use_namespace: true) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/kubernetes-deploy/kubectl.rb', line 15 def run(*args, log_failure: nil, use_context: true, use_namespace: true) log_failure = @log_failure_by_default if log_failure.nil? args = args.unshift("kubectl") args.push("--namespace=#{@namespace}") if use_namespace args.push("--context=#{@context}") if use_context @logger.debug Shellwords.join(args) out, err, st = Open3.capture3(*args) @logger.debug(out.shellescape) if !st.success? && log_failure @logger.warn("The following command failed: #{Shellwords.join(args)}") @logger.warn(err) end [out.chomp, err.chomp, st] end |