Оператор istio: передавать входящие сертификаты mTLS через файлы

Я пытаюсь передать сертификаты mTLS на входной шлюз istio через файлы, а не через секреты. Контейнер инициализации Vault будет хранить сертификаты по адресу

/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

Но это не работает. Док говорит: «Для удаления значение не должно быть установлено».

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

Команда генерации istioctl manifest по-прежнему включает секретный раздел. Я также попытался установить значение unset, но (как предполагалось) в конечном итоге использовал unset в качестве буквального значения для секретного имени. Любые указатели приветствуются.


person Sameer Naik    schedule 05.11.2020    source источник


Ответы (1)


Использовал это, чтобы удалить его, поскольку приставка хранилища установит его.

- 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
person Sameer Naik    schedule 06.11.2020