When installing in the Kubernetes cluster I created for this lab, I get:
% kubectl apply --validate=false -f https://raw.githubusercontent.com/jetstack/cert-manager/release-0.14/deploy/manifests/00-crds.yaml
resource mapping not found for name: "certificaterequests.cert-manager.io" namespace: "" from "https://raw.githubusercontent.com/jetstack/cert-manager/release-0.14/deploy/manifests/00-crds.yaml": no matches for kind "CustomResourceDefinition" in version "apiextensions.k8s.io/v1beta1"
ensure CRDs are installed first
This is in a Kubernetes 1.22 cluster.
This issue can also be seen at https://docs.microsoft.com/en-us/answers/questions/898689/getting-error-while-installing-cert-manager.html, and the cause given is that cert-manager was using extention APIs that have since been deprecated and removed.
According to https://cert-manager.io/docs/installation/supported-releases/, cert-manager release 0.18 should be used for new installations, supporting Kubernetes version 1.19 through 1.24
As such, the CRDs should be installed using the following command:
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.8.2/cert-manager.crds.yaml
And installing cert-manager should be
helm install \
cert-manager jetstack/cert-manager \
--namespace cert-manager \
--create-namespace \
--version v1.8.2
The YAML that creates the ClusterIssuer will need updated in accordance with
https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.ClusterIssuer
The significant change is just to the apiVersion
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: letsencrypt
spec:
acme:
server: https://acme-v02.api.letsencrypt.org/directory
email: "[email protected]"
privateKeySecretRef:
name: letsencrypt
solvers:
- http01:
ingress:
class: nginx
No other changes appear to be required.
Cheers,
Cameron