class Porkadot::Assets::Addons
def self.register_manifests name, manifests, secrets: [], crds: []
def self.register_manifests name, manifests, secrets: [], crds: [] @@manifests ||= {} @@manifests[name] = manifests @@secrets_manifests ||= {} @@secrets_manifests[name] = secrets @@crds ||= {} @@crds[name] = crds end
def copy_crds file
def copy_crds file logger.info "----> #{file}" crd_path = File.join(config.target_crd_dir_path, file) crd_dir = File.dirname(crd_path) FileUtils.mkdir_p(crd_dir) unless File.directory?(crd_dir) FileUtils.copy(File.join(TEMPLATE_DIR, file), crd_path) end
def initialize global_config
def initialize global_config @global_config = global_config @config = global_config.addons @logger = global_config.logger end
def render
def render logger.info "--> Rendering kubernetes addons" render_erb "kustomization.yaml" self.config.enabled.each do |name| manifests = @@manifests[name] manifests.each do |m| render_erb(m) end secrets = @@secrets_manifests[name] secrets.each do |m| render_secrets_erb(m) end crds = @@crds[name] crds.each do |m| copy_crds(m) end end end