I am trying to enable Readiness probe on my deployment yaml file as below but I am getting Readiness probe failed: HTTP probe failed with statuscode: 401
, I verified by decoding the secret and my authorization code is correct.
spec:
containers:
- name: mycontainer
image: myimage
env:
- name: MY_SECRET
valueFrom:
secretKeyRef:
name: actuator-token
key: token
livenessProbe:
httpGet:
path: test/actuator/health
port: 9001
httpHeaders:
- name: Authorization
value: $MY_SECRET
If I hardcode the token in value field.. it works fine.
Any help is highly appreciated.
The secret is only accessible inside the container, so the usual liveness probe (which is run from within a k8s internal container) can't resolve this, read up here.
One workaround is to run your livenessProbe as a command in the pod itself:
livenessProbe:
exec:
command:
- bash
- "-c"
- |
curl http://localhost:9001/test/actuator/health --header "Authorization: $MY_TOKEN"
you may need to mess around with the curl syntax to get it working properly