# We deploy several resources that rely on "custom resource definitions". # We must first import these resources definitions, before deploying resources that depend on them. { kubenix, nixhelm, system, ... }: { imports = [ kubenix.modules.k8s kubenix.modules.helm ]; config = { kubenix.project = "home"; kubernetes = { kubeconfig = "~/.kube/config"; # TODO: These were copied from https://github.com/cert-manager/cert-manager/releases/download/v1.14.4/cert-manager.crds.yaml # See https://cert-manager.io/docs/installation/helm/ # Seems kubenix cannot import a list of resources, but only individual resources. # Might be good to create a PR for this. imports = [ ./cert-manager-manifests/certificaterequest.yaml ./cert-manager-manifests/certificate.yaml ./cert-manager-manifests/challenge.yaml ./cert-manager-manifests/clusterissuer.yaml ./cert-manager-manifests/issuer.yaml ./cert-manager-manifests/order.yaml ]; helm.releases = { metallb = { chart = nixhelm.chartsDerivations.${system}.metallb.metallb; includeCRDs = true; }; cert-manager = { chart = nixhelm.chartsDerivations.${system}.jetstack.cert-manager; includeCRDs = false; }; argo-workflows = { chart = nixhelm.chartsDerivations.${system}.argoproj.argo-workflows; includeCRDs = true; }; }; }; }; }