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, 
  :shell_launcher_sets_configration, :generator_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.



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

def initialize
  add_default_configs unless items.any?
end

Instance Method Details

#add_default_configsObject



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
63
64
65
# File 'lib/kuber_kit/configs.rb', line 37

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")
  set :shell_launcher_sets_configration, true
  set :generator_strategy,         :helm
end

#get(key) ⇒ Object



79
80
81
82
83
84
85
# File 'lib/kuber_kit/configs.rb', line 79

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

  items[key]
end

#itemsObject



67
68
69
# File 'lib/kuber_kit/configs.rb', line 67

def items
  @@items ||= {}
end

#reset!Object



87
88
89
# File 'lib/kuber_kit/configs.rb', line 87

def reset!
  @@items = {}
end

#set(key, value) ⇒ Object



71
72
73
74
75
76
77
# File 'lib/kuber_kit/configs.rb', line 71

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

  items[key] = value
end