# Cert-manager jupyterhub in Kubernetes

**URL:** <https://discourse.jupyter.org/t/cert-manager-jupyterhub-in-kubernetes/25801>\
**Category:** JupyterHub\
**Created:** [May 20, 2024, 11:02am UTC](https://discourse.jupyter.org/t/cert-manager-jupyterhub-in-kubernetes/25801 "2024-05-20T11:02:05Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![xil](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.jupyter.org/xil/32/13449_2.png) [@xil](https://discourse.jupyter.org/u/xil)\
**Post date:** [May 20, 2024, 11:02am UTC](https://discourse.jupyter.org/t/cert-manager-jupyterhub-in-kubernetes/25801/1 "2024-05-20T11:02:05Z")

</div>

I have installed JupyterHub in a Kubernetes instance using the helm chart. Everything is working except the automatic provisioning of a certificate with cert-manager and letsencrypt.

I have configured the proxy as ClusterIp, and the ingress configuration is as follows:

```auto

ingress:
  enabled: true
  annotations: # {}
    kubernetes.io/ingress.class: nginx
    cert-manager.io/cluster-issuer: letsencrypt-prod
    kubernetes.io/tls-acme: "true"
  hosts:
    - myhost.domain.name
  pathSuffix:
  pathType: Prefix
  tls:
    - hosts:
      - myhost.domain.name
      secretName: jupyter-secret

```

Nevertheless, the validation of the domain from letsencrypt doesn’t work. Reviewing the logs, the HTTP-01 challenge request reaches the Jupyterhub proxy instead of the “cm-acme-http-solver” pod.

This is the list of pods:

```auto
# kubectl get pods -o wide -n jupyter-gti
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
cm-acme-http-solver-w4rg7 1/1 Running 0 2d12h 10.85.5.37 esx05 <none>
<none>
continuous-image-puller-bjg9n 1/1 Running 0 30d 10.85.7.45 dell01 <none>
<none>
continuous-image-puller-gc5wx 1/1 Running 0 30d 10.85.1.138 esx01 <none>
<none>
continuous-image-puller-jqw4s 1/1 Running 0 30d 10.85.3.63 esx03 <none>
<none>
continuous-image-puller-l98nd 1/1 Running 0 30d 10.85.6.109 dell02 <none>
<none>
continuous-image-puller-n2zqm 1/1 Running 0 30d 10.85.2.195 esx02 <none>
<none>
continuous-image-puller-r5jr2 1/1 Running 0 30d 10.85.8.41 asus <none>
<none>
continuous-image-puller-wg6pc 1/1 Running 0 30d 10.85.4.120 esx04 <none>
<none>
continuous-image-puller-xj2qg 1/1 Running 0 30d 10.85.5.240 esx05 <none>
<none>
hub-86c9577799-4kkvt 1/1 Running 0 2d12h 10.85.5.38 esx05 <none>
<none>
proxy-56854f57bb-l7ndw 1/1 Running 0 2d12h 10.85.5.36 esx05 <none>
<none>
user-scheduler-668fbd59d7-56v85 1/1 Running 0 30d 10.85.3.64 esx03 <none>
<none>
user-scheduler-668fbd59d7-s5gpz 1/1 Running 0 30d 10.85.5.242 esx05 <none>
<none>

```

The logs of the “hub” pod include the HTTP-01 challenge request:

```auto
[I 2024-05-20 10:59:33.066 JupyterHub log:191] 302 GET /.well-known/acme-challenge/YT1tH6ewlD9-SyAY_7ouADpSG8fEOoA_VK_jSgPc9vY -> /hub/.well-known/acme-challenge/YT1tH6ewlD9-SyAY_7ouADpSG8fEOoA_VK_jSgPc9vY (@10.85.2.0) 0.95ms
[W 2024-05-20 10:59:33.110 JupyterHub log:191] 404 GET /hub/.well-known/acme-challenge/YT1tH6ewlD9-SyAY_7ouADpSG8fEOoA_VK_jSgPc9vY (@10.85.2.0) 1.23ms

```

Am I missing something in the configuration?

Thanks!
