Sha256: e3209e7bf5c9d4700013878f33402815226618debb48a48c57a3ab90d3b7681e
Contents?: true
Size: 1.17 KB
Versions: 4
Compression:
Stored size: 1.17 KB
Contents
# frozen_string_literal: true module KubernetesDeploy class Kubectl def initialize(namespace:, context:, logger:, log_failure_by_default:, default_timeout: '30s') @namespace = namespace @context = context @logger = logger @log_failure_by_default = log_failure_by_default @default_timeout = default_timeout raise ArgumentError, "namespace is required" if namespace.blank? raise ArgumentError, "context is required" if context.blank? end 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 args.push("--request-timeout=#{@default_timeout}") if @default_timeout @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 end end
Version data entries
4 entries across 4 versions & 1 rubygems