Настройка Istio-ingressgateway во время установки

Мне нужно изменить «хосты» входного шлюза Istio (объект шлюза) со значения по умолчанию «*» на «что угодно» во время установки Istio. Мы используем IstioOperator для настройки нашей установки. Думаю, это нужно делать с помощью оверлеев k8s

...
   k8s:
         overlays:
            - kind: Gateway
              name: istio-ingressgateway
              patches:
                - path: spec.servers.??????
                  value: whatever
...

Каким должно быть выражение для атрибута пути?

Я нашел информацию на https://github.com/istio/istio/blob/master/operator/pkg/patch/patch.go, но дело обстоит не так.

Итак, объект шлюза istio-gateway в пространстве имен istio-system должен измениться с

spec:
  servers:
    - hosts:
        - '*'
      port:
        name: http
        number: 80
        protocol: HTTP

to

spec:
  servers:
    - hosts:
        - whatever
      port:
        name: http
        number: 80
        protocol: HTTP

Мы используем Istio 1.5.6

Спасибо !

ОБНОВЛЕНИЕ рабочим примером

Спасибо @Jakub за то, что указали мне правильное направление.

          overlays:
            - kind: Gateway
              name: istio-ingressgateway
              patches:
                - path: spec.servers[0]
                  value: 
                    hosts:
                      - whatever.dummy
                    port:
                      name: http
                      number: 80
                      protocol: HTTP

person Peter Claes    schedule 25.09.2020    source источник
comment
Вы пробовали с - path: spec.servers[0]? Есть похожий вопрос по этому поводу, взгляните. Сообщите мне, сработало ли это для вас.   -  person Jakub    schedule 25.09.2020
comment
@Jakub, работает! Спасибо ! Обновил вопрос рабочим примером.   -  person Peter Claes    schedule 25.09.2020
comment
С радостью помогу, я опубликовал ответ сообщества вики для большей наглядности. Если этот или любой другой ответ решил вашу проблему, отметьте его как принятый или проголосуйте за него.   -  person Jakub    schedule 25.09.2020


Ответы (1)


Я публикую это как ответ сообщества для большей наглядности.


По этому поводу есть аналогичный вопрос с ответом и примером кода, предоставленным @Jens Wurm.

Это часть наложения, которая добавит еще одну запись о сервере с некоторыми примерами спецификаций. Просто настройте его так, как вы хотите. Вы также можете переопределить свою первую запись сервера, указав путь spec.servers [0], а затем установить любое значение, которое вы хотите.

ingressGateways: 
  - enabled: true
    k8s:
      overlays:
      - apiVersion: networking.istio.io/v1alpha3
        kind: Gateway
        name: ingressgateway
        patches:
        - path: spec.servers[1]
          value:
            hosts:
              - '*.example.com'
            port:
              name: https
              number: 443
              protocol: HTTPS
            tls:
              credentialName: example-cert
              mode: SIMPLE
              privateKey: sds
              serverCertificate: sds

И есть рабочий пример, предоставленный @Peter Claes

  overlays:
    - kind: Gateway
      name: istio-ingressgateway
      patches:
        - path: spec.servers[0]
          value: 
            hosts:
              - whatever.dummy
            port:
              name: http
              number: 80
              protocol: HTTP
person Community    schedule 25.09.2020