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