class Kubeclient::GCPCommandCredentials

Generates a bearer token for Google Cloud Platform.

Public Class Methods

token(config) click to toggle source
# File lib/kubeclient/gcp_command_credentials.rb, line 7
def token(config)
  require 'open3'
  require 'shellwords'
  require 'json'
  require 'jsonpath'

  cmd = config['cmd-path']
  args = config['cmd-args']
  token_key = config['token-key']

  out, err, st = Open3.capture3(cmd, *args.split(' '))

  raise "exec command failed: #{err}" unless st.success?

  extract_token(out, token_key)
end

Private Class Methods

extract_token(output, token_key) click to toggle source
# File lib/kubeclient/gcp_command_credentials.rb, line 26
def extract_token(output, token_key)
  JsonPath.on(output, token_key.gsub(/^{|}$/, '')).first
end