Можем ли мы динамически настраивать nginx.org/server-snippets с помощью kustomize

Я хотел бы иметь такую ​​конфигурацию входящего трафика Kubernetes:

  • Среда DEV
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: shop-page-ingress
  annotations:
    nginx.org/server-snippets: |
      location / {
        proxy_pass          https://luz-shop:8443/shop.php?env=SHOP-DEV
        proxy_redirect      https://luz-shop:8443/ https://$host;
      }
  • Тестовая среда
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: shop-page-ingress
  annotations:
    nginx.org/server-snippets: |
      location / {
        proxy_pass          https://luz-shop:8443/shop.php?env=SHOP-TEST
        proxy_redirect      https://luz-shop:8443/ https://$host;
      }

Единственное отличие - это параметр запроса между двумя средами: env=SHOP-DEV. Вопрос в том, что я бы организовал эти оверлеи с помощью kustomize, но я не знаю, возможно это или нет? Могу ли я использовать конфигурацию BASE с переменной ${ENV_NAME}, как показано ниже, и указать значение в настройках наложения yaml?

  • БАЗОВЫЙ ЯМЛ:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: shop-page-ingress
  annotations:
    nginx.org/server-snippets: |
      location / {
        proxy_pass          https://luz-shop:8443/shop.php?env=${ENV_NAME}
        proxy_redirect      https://luz-shop:8443/ https://$host;
      }

person bkl    schedule 08.05.2021    source источник


Ответы (1)


Не прямо. Kustomize не поддерживает неструктурированную замену. Однако он расширяется с помощью системы плагинов, и это может быть произвольный код либо на bash, либо на Go (или более новый материал KRM от kpt). Один из примеров плагинов использует sed для запуска произвольных замен https://github.com/kubernetes-sigs/kustomize/blob/master/plugin/someteam.example.com/v1/sedtransformer/SedTransformer

Другой вариант - использовать конвейер типа kustomize build | envsubst.

person coderanger    schedule 08.05.2021
comment
Спасибо. С вашим комментарием Kustomize не обрабатывает неструктурированную замену. Я думаю, что мои ожидания не могут быть достигнуты с помощью оригинального kustomize. - person bkl; 08.05.2021