Sha256: 56c21a19d0a9663b2b8425a1bb7c8427aa37f61521e474ecec70b9fff819135d

Contents?: true

Size: 864 Bytes

Versions: 1

Compression:

Stored size: 864 Bytes

Contents

module K8sKit
  class Pod
    attr_reader :context, :name

    def initialize(context, name)
      @context = context
      @name = name
    end

    def logs(container: nil, stream: false)
      command = "logs #{name}"
      command += " -c #{container}" if container
      command += " -f" if stream

      context.run(command, silent: false)
    end

    def wait_until_ready(timeout: '5m')
      context.run("wait pod/#{name} --for=condition=Ready --timeout=#{timeout}")
    end

    def wait_until_complete(timeout: '5m')
      context.run("wait pod/#{name} --for=condition=Completed")
    end

    def exit_code(container:)
      json_path = "{ .status.containerStatuses[?(@.name == '#{container}')].state.terminated.exitCode }"
      Integer(context.run("get pod #{name} -o jsonpath=\"#{json_path}\""))
    rescue StandardError
      nil
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
k9s_kit-0.0.7.pre.pre7 lib/k8s_kit/pod.rb