class Porkadot::Assets::Kubernetes

def initialize global_config

def initialize global_config
  @global_config = global_config
  @config = global_config.kubernetes
  @logger = global_config.logger
end

def prune_allowlist

def prune_allowlist
  return %w[
    apiextensions.k8s.io/v1/customresourcedefinition
    apps/v1/daemonset
    apps/v1/deployment
    core/v1/configmap
    core/v1/namespace
    core/v1/service
    core/v1/secret
    core/v1/serviceaccount
    policy/v1/poddisruptionbudget
    rbac.authorization.k8s.io/v1/clusterrole
    rbac.authorization.k8s.io/v1/clusterrolebinding
    rbac.authorization.k8s.io/v1/role
    rbac.authorization.k8s.io/v1/rolebinding
    admissionregistration.k8s.io/v1/validatingwebhookconfiguration
  ]
end

def render

def render
  logger.info "--> Rendering kubernetes manifests"
  render_erb 'manifests/porkadot.yaml'
  render_erb 'manifests/kubelet.yaml'
  render_erb "manifests/kube-apiserver.yaml"
  render_secrets_erb "manifests/kube-apiserver.secrets.yaml"
  render_erb "manifests/kube-proxy.yaml"
  render_erb "manifests/kube-scheduler.yaml"
  render_erb "manifests/kube-controller-manager.yaml"
  render_secrets_erb "manifests/kube-controller-manager.secrets.yaml"
  render_secrets_erb "kubeconfig.yaml"
  render_erb 'manifests/kustomization.yaml'
  render_erb 'kustomization.yaml', force: false
  render_erb 'install.sh', prune_allowlist: prune_allowlist
  render_secrets_erb 'install.secrets.sh'
  addons = Addons.new(global_config)
  addons.render
end