Sha256: f966df18bd8601ef73c5181a27a0f0e0b5f2d373d90e6a2b3a7a25a64db0aae6

Contents?: true

Size: 1.05 KB

Versions: 15

Compression:

Stored size: 1.05 KB

Contents

#!/usr/bin/env ruby
# vim: set ft=ruby et sw=2 ts=2:

require 'betterlog'
require 'complex_config/rude'
require 'json'

LOG_ENV = ENV.fetch('LOG_ENV', 'production')

ENV['KUBECONFIG'] = File.join(
  ENV.fetch('HOME'),
  '.kube',
  "betterlog-#{LOG_ENV}"
)

@config = complex_config.log(LOG_ENV).sink

def authenticate
  return if File.exist?(ENV['KUBECONFIG'])
  context =  [
    'gke',
    @config.cluster.project,
    @config.cluster.zone,
    @config.cluster.name,
  ] * ?_
  system(%{
    gcloud --no-user-output-enabled container clusters get-credentials \
    #{@config.cluster.name.inspect} \
    --zone #{@config.cluster.zone.inspect} \
    --project #{@config.cluster.project.inspect}
  }) or fail "failed to authenticate for context #{context.inspect}"
end

authenticate

pods = JSON(
  %x{ kubectl -n #{@config.namespace} -ojson get pods },
  object_class: JSON::GenericObject
)

if pod = pods.items.find { |i| i.metadata.labels.app == @config.source }
  system %{
    kubectl logs -n #{@config.namespace} #{ARGV.join(' ')} #{pod.metadata.name}
  }
else
  exit 1
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
betterlog-0.12.2 bin/betterlog_sink
betterlog-0.12.1 bin/betterlog_sink
betterlog-0.12.0 bin/betterlog_sink
betterlog-0.11.0 bin/betterlog_sink
betterlog-0.10.0 bin/betterlog_sink
betterlog-0.9.0 bin/betterlog_sink
betterlog-0.8.1 bin/betterlog_sink
betterlog-0.8.0 bin/betterlog_sink
betterlog-0.7.2 bin/betterlog_sink
betterlog-0.7.1 bin/betterlog_sink
betterlog-0.7.0 bin/betterlog_sink
betterlog-0.6.1 bin/betterlog_sink
betterlog-0.5.0 bin/betterlog_sink
betterlog-0.4.0 bin/betterlog_sink
betterlog-0.3.0 bin/betterlog_sink