Class: KuberKit::ServiceDeployer::Strategies::KubernetesRunner

Inherits:
Abstract
  • Object
show all
Defined in:
lib/kuber_kit/service_deployer/strategies/kubernetes_runner.rb

Instance Method Summary collapse

Instance Method Details

#deploy(shell, service) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/kuber_kit/service_deployer/strategies/kubernetes_runner.rb', line 9

def deploy(shell, service)
  service_config = reader.read(shell, service)
  config_path    = "#{configs.service_config_dir}/#{service.name}.yml"
  shell.write(config_path, service_config)

  kubeconfig_path  = KuberKit.current_configuration.kubeconfig_path
  deployer_namespace = KuberKit.current_configuration.deployer_namespace

  deployer_resource_name  = service.attribute(:deployer_resource_name, default: service.uri)
  deployer_resource_type  = service.attribute(:deployer_resource_type, default: "job")

  deployer_delete_enabled = service.attribute(:deployer_delete_enabled, default: true)
  if deployer_delete_enabled
    delete_resource_if_exists(shell, deployer_resource_type, deployer_resource_name, kubeconfig_path: kubeconfig_path, namespace: deployer_namespace)
  end

  kubectl_commands.apply_file(shell, config_path, kubeconfig_path: kubeconfig_path, namespace: deployer_namespace)
end