diff --git a/lib/postal/helm_config_exporter.rb b/lib/postal/helm_config_exporter.rb new file mode 100644 index 0000000..818d6bf --- /dev/null +++ b/lib/postal/helm_config_exporter.rb @@ -0,0 +1,28 @@ +# frozen_string_literal: true + +require "konfig/exporters/abstract" + +module Postal + class HelmConfigExporter < Konfig::Exporters::Abstract + + def export + contents = [] + + path = [] + + @schema.groups.each do |group_name, group| + path << group_name + group.attributes.each do |name, attr| + env_var = Konfig::Sources::Environment.path_to_env_var(path + [name]) + contents << <<~VAR.strip + {{ include "app.envVar" (dict "name" "#{env_var}" "spec" .Values.postal.#{path.join('.')}.#{name} "root" . ) }} + VAR + end + path.pop + end + + contents.join("\n") + end + + end +end diff --git a/lib/tasks/postal.rake b/lib/tasks/postal.rake index d0bfe4b..4b19805 100644 --- a/lib/tasks/postal.rake +++ b/lib/tasks/postal.rake @@ -22,6 +22,11 @@ namespace :postal do output = Postal::YamlConfigExporter.new(Postal::ConfigSchema).export File.write("doc/config/yaml.yml", output) end + + desc "Generate Helm Environment Variables" + task generate_helm_env_vars: :environment do + puts Postal::HelmConfigExporter.new(Postal::ConfigSchema).export + end end Rake::Task["db:migrate"].enhance do