lib/vidar/config.rb in vidar-0.4.4 vs lib/vidar/config.rb in vidar-0.5.0
- old
+ new
@@ -1,31 +1,16 @@
module Vidar
class Config
DEFAULT_MANIFEST_FILE = "vidar.yml".freeze
DEFAULT_OPTIONS = {
- compose_file: -> { "docker-compose.ci.yml" },
- default_branch: -> { "master" },
- current_branch: -> { `git rev-parse --abbrev-ref HEAD`.strip.tr("/", "-") },
- revision: -> { `git rev-parse HEAD`.strip },
- revision_name: -> { `git show --pretty=format:"%s (%h)" -s HEAD`.strip },
- cluster_name: -> {
- cluster_names = get(:cluster_names).to_s
- current_context = `kubectl config current-context`.strip
-
- if cluster_names.empty?
- current_context
- else
- names_in_context = current_context.scan(Regexp.new(cluster_names))
- names_in_context.flatten.first || current_context
- end
- },
- cluster_label: -> {
- labels = get(:cluster_labels) || {}
- name = get(:cluster_name)
- labels[name] || name
- }
+ compose_file: -> { "docker-compose.ci.yml" },
+ default_branch: -> { "master" },
+ current_branch: -> { `git rev-parse --abbrev-ref HEAD`.strip.tr("/", "-") },
+ revision: -> { `git rev-parse HEAD`.strip },
+ revision_name: -> { `git show --pretty=format:"%s (%h)" -s HEAD`.strip },
+ kubectl_context: -> { `kubectl config current-context`.strip },
}.freeze
class << self
attr_reader :data
attr_writer :manifest_file
@@ -53,9 +38,21 @@
end
def get!(key)
load unless loaded?
get(key) || fail(MissingConfigError, key)
+ end
+
+ def deploy_config
+ deployments = get(:deployments) || {}
+
+ return nil unless deployments.is_a?(Hash)
+
+ deployment = deployments[get!(:kubectl_context)]
+
+ return nil unless deployment
+
+ DeployConfig.new(deployment.transform_keys!(&:to_sym))
end
end
end
end