Istio можно развернуть с помощью IstioOperator .
. Вы можете исправлять все, что создано определенным компонентом, с помощью K8sObjectOverlay , который занимает PathValue . Я не могу понять, как обеспечить сложные значения PathValues.
Вот несколько примеров патчей Я нашел (поищите "patches:" на этих страниц), если это поможет.
Патч, который я пытаюсь применить, изменяет ingressGateway по умолчанию, который создается из:
...
spec:
profile: default
components:
ingressGateways:
- namespace: istio-system
name: istio-ingressgateway
enabled: true
Я могу просмотреть входящий шлюз по умолчанию, который создается с kubectl edit gateway/ingressgateway -n istio-system
и посмотрите этот фрагмент:
spec:
servers:
- hosts:
- '*'
port:
name: http
number: 80
protocol: HTTP
Моя цель изменить его на это:
spec:
selector:
istio: ingressgateway # use istio default controller
servers:
- port:
number: 80
name: http
protocol: HTTP
hosts:
- "*"
tls:
httpsRedirect: true # sends 301 redirect for http requests
- port:
number: 443
name: https-443
protocol: HTTPS
hosts:
- "*"
tls:
mode: SIMPLE # enables HTTPS on this port
serverCertificate: /etc/istio/ingressgateway-certs/tls.crt
privateKey: /etc/istio/ingressgateway-certs/tls.key
Я считаю, что ObjectOverlay, который я должен добавить в первый блок YAML выше должно начинаться примерно так:
k8s:
overlays:
- apiVersion: networking.istio.io/v1beta1
Kind: Gateway
name: ingressgateway
patches:
- path: spec.servers.
, но я не знаю, как указать, что я хочу добавить tls.httpsRedirect: true
к первому элементу списка, или как создать элемент списка с относительно сложные значения выше.
Документы PathValue , которые я связал выше, мне не понятны. Сам Istio просто ссылается на StackOverflow с тегом [Istio] , поэтому я думаю, что именно сюда я и обращаюсь за помощью.