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
  deploy_namespace = KuberKit.current_configuration.deploy_namespace

  deployment_resource_name  = service.attribute(:deployment_resource_name, default: service.uri)
  deployment_resource_type  = service.attribute(:deployment_resource_type, default: "job")

  deployment_delete_enabled = service.attribute(:deployment_delete_enabled, default: true)
  if deployment_delete_enabled
    delete_resource_if_exists(shell, deployment_resource_type, deployment_resource_name, kubeconfig_path: kubeconfig_path, namespace: deploy_namespace)
  end

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