<p>I am trying to enable Readiness probe on my deployment yaml file as below but I am getting Readiness probe failed: <code>HTTP probe failed with statuscode: 401</code>, I verified by decoding the secret and my authorization code is correct.</p>

<pre><code>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
</code></pre>

<h3>UPDATES</h3>

<p>If I hardcode the token in value field.. it works fine. </p>

<p>Any help is highly appreciated.</p>

<p>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 <a href="https://github.com/kubernetes/kubernetes/issues/40846" rel="nofollow noreferrer">here</a>. </p>

<p>One workaround is to run your livenessProbe as a command in the pod itself:</p>

<pre><code> livenessProbe:
    exec:
      command:
      - bash 
      - "-c" 
      - | 
        curl http://localhost:9001/test/actuator/health --header "Authorization: $MY_TOKEN"

</code></pre>

<p>you may need to mess around with the curl syntax to get it working properly</p>
