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