module HelmWrapper
Constants
- VERSION
Public Class Methods
create_directory(directory:, exists: true, purpose: nil)
click to toggle source
# File lib/helm-wrapper/common.rb, line 7 def self.create_directory(directory:, exists: true, purpose: nil) return exists if File.directory?(directory) result = false if not purpose.nil? and purpose.kind_of?(String) and not purpose.strip.empty? then @logger.info("Creating directory for: #{purpose}, path: #{directory}") else @logger.info("Creating directory: #{directory}") end FileUtils.mkdir_p(directory) result = File.directory?(directory) end
deployment_tasks(chart:, namespace:, release:, options: Hash.new)
click to toggle source
# File lib/helm-wrapper.rb, line 25 def self.deployment_tasks(chart:, namespace:, release:, options: Hash.new) @logger.info("Building deployment tasks for release: #{release}...") @logger.fatal("Options must be specified as a hash!") unless options.kind_of?(Hash) binary_options = Hash.new binary_options["base"] = options.key?("binary-base") ? options["binary-base"] : File.join(Dir.pwd, "vendor", "helm") binary_options["version"] = options.key?("binary-version") ? options["binary-version"] : Shared::Latest.instance.version chart_options = Hash.new chart_options["name"] = chart chart_options["path"] = nil chart_options["repos"] = options.key?("chart-repos") ? options["chart-repos"] : Array.new chart_options["version"] = options.key?("chart-version") ? options["chart-version"] : String.new config_options = Hash.new config_options["atomic"] = options.key?("config-atomic") ? options["config-atomic"] : false config_options["auth-azure"] = options.key?("config-auth-azure") ? options["config-auth-azure"] : false config_options["auth-azure-options"] = options.key?("config-auth-azure-options") ? options["config-auth-azure-options"] : Hash.new config_options["base"] = options.key?("config-base") ? options["config-base"] : File.join(Dir.pwd, "config") config_options["namespace"] = namespace config_options["release"] = release config_options["timeout"] = options.key?("config-timeout") ? options["config-timeout"] : "5m0s" config_options["wait"] = options.key?("config-wait") ? options["config-wait"] : true binary = HelmWrapper::Shared::Binary.new(options: binary_options) chart = HelmWrapper::Shared::Chart.new(options: chart_options) tasks = Array.new tasks << HelmWrapper::Tasks::Apply.new(binary: binary, chart: chart, options: config_options) tasks << HelmWrapper::Tasks::Binary.new(binary: binary) tasks << HelmWrapper::Tasks::Destroy.new(binary: binary, chart: chart, options: config_options) tasks << HelmWrapper::Tasks::Template.new(binary: binary, chart: chart, options: config_options) return tasks end
development_tasks(chart:, path:, oci: false, options: Hash.new)
click to toggle source
# File lib/helm-wrapper.rb, line 63 def self.development_tasks(chart:, path:, oci: false, options: Hash.new) @logger.info("Building development tasks for path: #{path}...") @logger.fatal("Options must be specified as a hash!") unless options.kind_of?(Hash) binary_options = Hash.new binary_options["base"] = options.key?("binary-base") ? options["binary-base"] : File.join(Dir.pwd, "vendor", "helm") binary_options["version"] = options.key?("binary-version") ? options["binary-version"] : Shared::Latest.instance.version chart_options = Hash.new chart_options["name"] = chart chart_options["path"] = path chart_options["repos"] = options.key?("chart-repos") ? options["chart-repos"] : Array.new chart_options["version"] = String.new binary = HelmWrapper::Shared::Binary.new(options: binary_options) chart = HelmWrapper::Shared::Chart.new(options: chart_options) tasks = Array.new tasks << HelmWrapper::Tasks::Binary.new(binary: binary) tasks << HelmWrapper::Tasks::Push.new(binary: binary, chart: chart) if oci tasks << HelmWrapper::Tasks::Validate.new(binary: binary, chart: chart) return tasks end
find(base:, name:, exts:, description: "File")
click to toggle source
# File lib/helm-wrapper/common.rb, line 25 def self.find(base:, name:, exts:, description: "File") exts.each do |ext| path = File.join(base, name + ext) return path if File.file?(path) end @logger.fatal("#{description} name: #{name} not found in location: #{base}!") end