Как заменить HTTPRoute/backendRefs.name на Kustomize

Поскольку varsустарела из Kustomize 5.0.0, я начинаю переход на replacements, следуя официальной рекомендации.
Но я не могу понять, как заменить HTTPRoute/backendRefs.name на replacements.

Мой код следующий. Эти 2 ямла находятся в одном каталоге.

main.yaml

apiVersion: v1
kind: Service
metadata:
  labels:
    app: foooooooooooooooo
  name: service
---
apiVersion: gateway.networking.k8s.io/v1beta1
kind: HTTPRoute
metadata:
  labels:
    app: WANT_TO_REPLACE_THIS
  name: route
spec:
  hostnames:
    - "*"
  rules:
    - backendRefs:
        - name: WANT_TO_REPLACE_THIS
          port: 3000
      matches:
        - path:
            type: PathPrefix
            value: /path

настройка.yaml

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
  - main.yaml
replacements:
  - source:
      kind: Service
      name: service
      fieldPath: metadata.labels.app
    targets:
      - select:
          kind: HTTPRoute
          name: route
        fieldPaths:
          - metadata.labels.app
          - spec.rules.[backendRefs.name=WANT_TO_REPLACE_THIS].backendRefs.[name=WANT_TO_REPLACE_THIS].name

Затем запустите команду kustomize build, и результат будет следующим.

apiVersion: v1
kind: Service
metadata:
  labels:
    app: foooooooooooooooo
  name: service
---
apiVersion: gateway.networking.k8s.io/v1beta1
kind: HTTPRoute
metadata:
  labels:
    app: foooooooooooooooo
  name: route
spec:
  hostnames:
  - '*'
  rules:
  - backendRefs:
    - name: WANT_TO_REPLACE_THIS
      port: 3000
    matches:
    - path:
        type: PathPrefix
        value: /path

medtadata.labels.app заменяется, а spec.rules.backendRefs.name нет. Есть ли способ заменить spec.rules.backendRefs.name?

Вы можете проверить эту ссылку[1]. Было показано, что вы можете использовать патч для этого. [1]stackoverflow.com/questions/66568194/…

Yvan G. 12.04.2023 19:41

Спасибо за ваш ответ, он кажется очень полезным! Я получил ответ от официальной проблемы github, поэтому я опубликую ее и отмечу как решенную.

akrsum 13.04.2023 10:37
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
1
2
65
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Из официального выпуска GitLab я получил ответ по этому поводу.

Чтобы заменить его, я должен заменить

spec.rules.[backendRefs.name=WANT_TO_REPLACE_THIS].backendRefs.[name=WANT_TO_REPLACE_THIS].name

к

spec.rules.*.backendRefs.[name=WANT_TO_REPLACE_THIS].name

Другие вопросы по теме