class Ruboty::K8s::Deployment

Public Class Methods

new(config, client) click to toggle source
# File lib/ruboty/k8s/deployment.rb, line 2
def initialize(config, client)
  @config = config
  @client = client
end

Public Instance Methods

has_deployment?(deployment) click to toggle source
# File lib/ruboty/k8s/deployment.rb, line 7
def has_deployment?(deployment)
  @config.keys.include?(deployment)
end
patch_deployment(deployment, image) click to toggle source
# File lib/ruboty/k8s/deployment.rb, line 21
def patch_deployment(deployment, image)
  raise "Unknown deployment name: `#{deployment}`" unless has_deployment?(deployment)

  response = @client.v1beta1.patch_deployment(
    @config[deployment]['deployment_name'],
    patch_deployment_params(deployment, image),
    @config[deployment]['namespace']
  )

  response.code == 200
end
patch_deployment_params(deployment, image) click to toggle source
# File lib/ruboty/k8s/deployment.rb, line 33
def patch_deployment_params(deployment, image)
  {
    spec: {
      template: {
        spec: {
          containers: [
            {
              name: @config[deployment]['container_name'],
              image: image,
            }
          ]
        }
      }
    }
  }
end
rollback_deployment(deployment) click to toggle source
# File lib/ruboty/k8s/deployment.rb, line 11
def rollback_deployment(deployment)
  raise "Unknown deployment name: `#{deployment}`" unless has_deployment?(deployment)

  response = @client.v1beta1.rollback_deployment(
    @config[deployment]['deployment_name'], {}, @config[deployment]['namespace']
  )

  response.code == 201
end