1

我正在尝试通过文件而不是通过秘密将 mTLS 证书传递给 istio 入口网关。Vault init-container 将证书存储在

/etc/istio/ingressgateway-certs/tls.key
/etc/istio/ingressgateway-certs/tls.cert
/etc/istio/ingressgateway-ca-certs/ca-chain.cert.pem

所以我试图通过这样的补丁删除秘密元素

      - path: spec.template.spec.volumes[name:ingressgateway-ca-certs].emptyDir
        value: {}
      - path: spec.template.spec.volumes[name:ingressgateway-certs].emptyDir
        value: {}
      - path: spec.template.spec.volumes[name:ingressgateway-certs].secret
      - path: spec.template.spec.volumes[name:ingressgateway-certs].secret.secretName
      - path: spec.template.spec.volumes[name:ingressgateway-ca-certs].secret.secretName
      - path: spec.template.spec.volumes[name:ingressgateway-ca-certs].secret

但它不工作。Doc 说,“对于删除,应该取消设置值。”

https://istio.io/latest/docs/reference/config/istio.operator.v1alpha1/#K8sObjectOverlay-PathValue

istioctl manifest generate 命令仍然包含秘密部分。我还尝试将值设置为“未设置”,但(如预期的那样)最终使用未设置作为秘密名称的文字值。任何指针表示赞赏。

4

1 回答 1

2

使用它来删除它,因为 Vault Sidecar 将安装它。

- path: spec.template.spec.volumes[name:ingressgateway-ca-certs]         
- path: spec.template.spec.volumes[name:ingressgateway-certs]

但在最终解决方案中,在不同的路径中配置和呈现证书以避免与默认路径冲突。例如

/etc/istio/ingressgateway/certs/tls.key
/etc/istio/ingressgateway/certs/tls.cert
/etc/istio/ingressgateway/ca-certs/ca-chain.cert.pem
于 2020-11-06T21:51:45.477 回答