class KuberKit::ServiceDeployer::Deployer

Constants

StrategyNotFoundError

Public Class Methods

new(**injected_deps, &block) click to toggle source
Calls superclass method
# File lib/kuber_kit/service_deployer/deployer.rb, line 11
def initialize(**injected_deps, &block)
  super(**injected_deps)
  add_default_strategies
end

Public Instance Methods

deploy(shell, service, strategy_name) click to toggle source
# File lib/kuber_kit/service_deployer/deployer.rb, line 27
def deploy(shell, service, strategy_name)
  deployer = @@strategies[strategy_name]

  raise StrategyNotFoundError, "Can't find strategy with name #{strategy_name}" if deployer.nil?

  deployer.deploy(shell, service)
end
register_strategy(strategy_name, strategy) click to toggle source
# File lib/kuber_kit/service_deployer/deployer.rb, line 16
def register_strategy(strategy_name, strategy)
  @@strategies ||= {}

  if !strategy.is_a?(KuberKit::ServiceDeployer::Strategies::Abstract)
    raise ArgumentError.new("should be an instance of KuberKit::ServiceDeployer::Strategies::Abstract, got: #{strategy.inspect}")
  end

  @@strategies[strategy_name] = strategy
end
reset!() click to toggle source
# File lib/kuber_kit/service_deployer/deployer.rb, line 35
def reset!
  @@strategies = {}
end

Private Instance Methods

add_default_strategies() click to toggle source
# File lib/kuber_kit/service_deployer/deployer.rb, line 40
def add_default_strategies
  register_strategy(:kubernetes, kubernetes)
  register_strategy(:docker, docker)
  register_strategy(:docker_compose, docker_compose)
end