Class: Ruboty::Handlers::K8s

Inherits:
Base
  • Object
show all
Defined in:
lib/ruboty/handlers/k8s.rb

Instance Method Summary collapse

Instance Method Details

#deployment(m = {}) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
# 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 = {}) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
# 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) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# 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