magic
magic

Reputation: 384

Readiness probe failed with statuscode: 401

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

UPDATES

If I hardcode the token in value field.. it works fine.

Any help is highly appreciated.

Upvotes: 1

Views: 16888

Answers (1)

stringy05
stringy05

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

Related Questions