13

我想用一个值为秘密的 httpHeader 定义一个 livenessProbe。

此语法无效:

livenessProbe:
  httpGet:
    path: /healthz
    port: 8080
    httpHeaders:
      - name: X-Custom-Header
        valueFrom:
          secretKeyRef:
            name: my-secret-key
            value: secret

如果我将my-secret-keyvalue指定secret为名为 的环境变量MY_SECRET_KEY,则可以使用以下方法:

livenessProbe:
  exec:
    command:
      - curl
      - --fail
      - -H
      - "X-Custom-Header: $MY_SECRET_KEY"
      - 'http://localhost:8080/healthz'

不幸的是,这不是由于评估报价的方式。如果我curl --fail -H "X-Custom-Header: $MY_SECRET_KEY" http://localhost:8080/healthz直接在容器上键入命令,它就可以工作。

我还尝试了许多单引号组合和转义双引号。

有谁知道解决方法?

4

2 回答 2

2

这里有一些 curl 和 wget 的例子:

exec:
command:
  - /bin/sh
  - -c
  - "curl -H 'Authorization: Bearer $(AUTH_TOKEN)' 'http://example.com'"

exec:
  command:
  - /bin/sh
  - -c
  - "wget --spider --header \"Authorization: Bearer $AUTH_TOKEN\" http://some.api.com/spaces/${SPACE_ID}/entries"
于 2019-12-17T14:10:27.917 回答
1

我能想到的一种解决方法是创建一些 bash 脚本来运行此运行状况检查,并像往常一样将您的秘密数据放入环境中。

于 2017-01-22T12:08:08.833 回答