class Services::Kube

Public Class Methods

config_download(force = nil) click to toggle source
# File lib/busbar_cli/services/kube.rb, line 61
def config_download(force = nil)
  puts 'Config file up-to-date and no force option specified...' unless \
    Helpers::Kube.config_outdated? || force
  puts 'Nothing to do.' unless Helpers::Kube.config_outdated? || force
  return unless Helpers::Kube.config_outdated? || force

  puts 'Updating kubeconfig...'
  old_version = Helpers::Kube.config_local_version
  Helpers::Kube.config_download_file
  Helpers::Kube.config_update_local_version
  puts "Kubeconfig file update from version #{old_version} to #{Helpers::Kube.config_local_version}."
rescue SocketError
  Helpers::Kube.config_exit_with_no_connection_error
end
configure_temporary_profile(profile = nil) click to toggle source
# File lib/busbar_cli/services/kube.rb, line 29
def configure_temporary_profile(profile = nil)
  setup
  return if profile.nil?
  validate_profile(profile)
  @current_profile = profile
end
contexts() click to toggle source
# File lib/busbar_cli/services/kube.rb, line 23
def contexts
  setup
  `grep 'name:' #{KUBECTL_CONFIG_FILE} | grep -v '\\- name' |
  grep -v 'username' | sort | uniq | sed "s/name\://g; s/ //g"`.split("\n")
end
current_profile() click to toggle source
# File lib/busbar_cli/services/kube.rb, line 36
def current_profile
  setup
  @current_profile || BUSBAR_PROFILE
end
public_address_info_for(environment:) click to toggle source
# File lib/busbar_cli/services/kube.rb, line 41
def public_address_info_for(environment:)
  setup
  service = JSON.parse(`#{Helpers::Kube.public_info_command_for(environment)}`)
  {
    address: service['status']['loadBalancer']['ingress'][0]['hostname'],
    port: service['spec']['ports'][0]['port']
  }
end
setup() click to toggle source
# File lib/busbar_cli/services/kube.rb, line 10
def setup
  return if File.exist?(KUBECTL) && File.exist?(KUBECTL_CONFIG_FILE) && \
            File.exist?(KUBECTL_CONFIG_VERSION_FILE)
  puts
  puts 'Running kubectl setup...'
  puts
  FileUtils.mkdir_p(KUBECTL_LOCAL_FOLDER) unless File.exist?(KUBECTL_LOCAL_FOLDER)
  FileUtils.mkdir_p(KUBECTL_LOCAL_BIN_FOLDER) unless File.exist?(KUBECTL_LOCAL_BIN_FOLDER)
  Helpers::Kube.install
  Helpers::Kube.config_download_file
  Helpers::Kube.config_update_local_version
end
validate_profile(profile) click to toggle source
# File lib/busbar_cli/services/kube.rb, line 50
def validate_profile(profile)
  setup
  puts profile
  return true if contexts.include?(profile)
  puts
  puts 'Validation Error!'
  puts "Profile must be one of the following:\n#{contexts.to_yaml}"
  puts
  exit(1)
end