Class: KuberKit::Configs

Inherits:
Object show all
Defined in:
lib/kuber_kit/configs.rb

Constant Summary collapse

AVAILABLE_CONFIGS =
[
  :image_dockerfile_name, :image_build_context_dir, :image_tag, :docker_ignore_list, :image_compile_dir, :remote_image_compile_dir,
  :kuber_kit_dirname, :kuber_kit_min_version, :images_dirname, :services_dirname, :infra_dirname, :configurations_dirname,
  :artifact_clone_dir, :service_config_dir, :deployer_strategy, :compile_simultaneous_limit, :deploy_simultaneous_limit,
  :additional_images_paths, :deprecation_warnings_disabled, :log_file_path, :env_file_compile_dir, :shell_launcher_strategy
]
DOCKER_IGNORE_LIST =
[
  'Dockerfile',
  '.DS_Store',
  '**/.DS_Store',
  '**/*.log',
  'node_modules',
  '.vagrant',
  '.vscode',
  'tmp',
  'logs'
]

Instance Method Summary collapse

Constructor Details

#initializeConfigs

Returns a new instance of Configs.



32
33
34
# File 'lib/kuber_kit/configs.rb', line 32

def initialize
  add_default_configs unless items.any?
end

Instance Method Details

#add_default_configsObject



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/kuber_kit/configs.rb', line 36

def add_default_configs
  home_kuber_kit_path = File.join("~", ".kuber_kit")
  absolute_kuber_kit_path = File.expand_path(home_kuber_kit_path)
  
  set :image_dockerfile_name,   "Dockerfile"
  set :image_build_context_dir, "build_context"
  set :image_tag,               'latest'
  set :image_compile_dir,         File.join(absolute_kuber_kit_path, "image_builds")
  set :remote_image_compile_dir,  File.join("/tmp", "kuber_kit", "image_builds")
  set :docker_ignore_list,      DOCKER_IGNORE_LIST
  set :kuber_kit_dirname,       "kuber_kit"
  set :kuber_kit_min_version,   KuberKit::VERSION
  set :images_dirname,          "images"
  set :services_dirname,        "services"
  set :infra_dirname,           "infrastructure"
  set :configurations_dirname,  "configurations"
  set :artifact_clone_dir,      File.join(absolute_kuber_kit_path, "artifacts")
  set :service_config_dir,      File.join(absolute_kuber_kit_path, "services")
  set :deployer_strategy,         :kubernetes
  set :shell_launcher_strategy,   :kubernetes
  set :compile_simultaneous_limit, 5
  set :deploy_simultaneous_limit,  5
  set :additional_images_paths, []
  set :deprecation_warnings_disabled, false
  set :log_file_path,           File.join(absolute_kuber_kit_path, "deploy.log")
  set :env_file_compile_dir,    File.join(absolute_kuber_kit_path, "env_files")
end

#get(key) ⇒ Object



76
77
78
79
80
81
82
# File 'lib/kuber_kit/configs.rb', line 76

def get(key)
  unless AVAILABLE_CONFIGS.include?(key)
    raise ArgumentError, "#{key} is not a valid configuration key"
  end

  items[key]
end

#itemsObject



64
65
66
# File 'lib/kuber_kit/configs.rb', line 64

def items
  @@items ||= {}
end

#reset!Object



84
85
86
# File 'lib/kuber_kit/configs.rb', line 84

def reset!
  @@items = {}
end

#set(key, value) ⇒ Object



68
69
70
71
72
73
74
# File 'lib/kuber_kit/configs.rb', line 68

def set(key, value)
  unless AVAILABLE_CONFIGS.include?(key)
    raise ArgumentError, "#{key} is not a valid configuration key"
  end

  items[key] = value
end