class Ruboty::Handlers::K8s

Public Instance Methods

deployment(m = {}) click to toggle source
# File lib/ruboty/handlers/k8s.rb, line 14
def deployment(m = {})
  @deployments = setup(m)
  return false unless @deployments

  res = @deployments.patch_deployment(m[:deployment_name], m[:container_image])

  if res
    m.reply("Patched: #{m[:deployment_name]}(#{m[:cluster_name]}) -> #{m[:container_image]}")
  else
    m.reply("Failed :cry:")
  end
end
rollback(m = {}) click to toggle source
# File lib/ruboty/handlers/k8s.rb, line 27
def rollback(m = {})
  @deployments = setup(m)
  return false unless @deployments

  res = @deployments.rollback_deployment(m[:deployment_name])

  if res
    m.reply("Rollbacked: #{m[:deployment_name]}(#{m[:cluster_name]})")
  else
    m.reply("Failed :cry:")
  end
end
setup(m) click to toggle source
# File lib/ruboty/handlers/k8s.rb, line 40
def setup(m)
  cluster_name = m[:cluster_name]

  unless Ruboty::K8s::Config.has_cluster?(cluster_name)
    m.reply("ERROR: Unknown cluster name: `#{cluster_name}` :sob:")
    return false
  end

  client_config = Ruboty::K8s::Config.client(cluster_name)
  deployment_config = Ruboty::K8s::Config.deployments(cluster_name)
  client = Ruboty::K8s::Client.new(client_config)
  @deployments = Ruboty::K8s::Deployment.new(deployment_config, client)

  unless @deployments.has_deployment?(m[:deployment_name])
    m.reply("ERROR: Unknown deployment name: `#{m[:deployment_name]}` :sob:")
    return false
  end

  return @deployments
end