Я пытаюсь исправить podAntiAffinity для istio ingressgateway через манифест IstioOperator и k8s.overlays, но всегда получаю что-то вроде:
podAffinityTerm не является допустимым элементом пути ключ:значение Вот мой конфиг:
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
profile: default
values:
gateways:
istio-ingressgateway:
podAntiAffinityTermLabelSelector:
- key: app
operator: In
values: istio-ingressgateway
topologyKey: topology.kubernetes.io/zone
components:
ingressGateways:
- name: istio-ingressgateway
enabled: true
- name: istio-ingressgateway-private
enabled: true
k8s:
overlays:
- kind: Deployment
name: istio-ingressgateway-private
patches:
- path: metadata.labels.app
value: istio-ingressgateway-private
- path: spec.template.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.[podAffinityTerm.topologyKey:topology.kubernetes.io/zone].labelSelector.matchExpressions[0].values[0]
value: istio-ingressgateway-private
Точная ошибка:
Ошибка: путь spec.template.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.[podAffinityTerm.topologyKey:"topology.kubernetes.io/zone"].labelSelector.matchExpressions.[0].values.[0]: [podAffinityTerm не является допустимым элементом пути ключ:значение, путь spec.template.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.[podAffinityTerm.topologyKey:"topology.kubernetes.io/zone"].labelSelector.matchExpressions.[0].values.[ 0]: [podAffinityTerm не является допустимым ключом: элемент пути значения
Кроме того, он отлично работает, если я использую индекс вместо пары ключ/значение.
Спасибо за любые советы.
P.S. Версия Istio 1.10.3