Использовать относительные пути в конфигурации Kubernetes

Цель состоит в том, чтобы организовать как производственные, так и локальные среды разработки с использованием Kubernetes. Проблема в том, что hostPath не работает с относительными значениями пути. Это приводит к слегка отличающимся конфигурационным файлам на каждой машине разработчика, чтобы они соответствовали различным местоположениям проекта (например, "/my/absolute/path/to/the/project"):

apiVersion: v1
kind: Service
metadata:
  name: some-service
  labels:
    app: app
spec:
  type: LoadBalancer
  ports:
  - port: 80
  selector:
    app: app
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: some-deploy
spec:
  selector:
    matchLabels:
      app: app
  replicas: 1
  template:
    metadata:
      labels:
        app: app
    spec:
      containers:
      - name: app
        image: nginx:1.13.12-alpine
        ports:
        - containerPort: 80
        volumeMounts:
        - name: vol_example
          mountPath: /var/www/html
      volumes:
        - name: vol_example
          hostPath:
            path: "/my/absolute/path/to/the/project"
            type: Directory

Как относительные пути могут использоваться в конфигурационных файлах Kubernetes? Переменные замены (например, $(PWD)/project) были опробованы, но, похоже, не работали. Если переменные конфигурации могут работать с томами, это может помочь, но не знать, как этого добиться.

Ответ 1

Как уже упоминалось здесь kubectl никогда не будет поддерживать подстановку переменной.

Вы можете создать штурвал диаграмму для вашего приложения (YAML). Он поддерживает переменные шаблона yaml (среди других функций). Таким образом, вы сможете передать параметр hostPath на основе разработки или производства.