Reputation: 384
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.
Upvotes: 1
Views: 16888
Reputation: 7067
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
Upvotes: 1