Как добавить PersistentVolumeClaim к развертыванию с GitLab AutoDevops?

Чего я пытаюсь достичь?

Мы используем автономный экземпляр GitLab и используем GitLab AutoDevops для развертывания наших проектов в кластере Kubernetes. На момент написания мы использовали только один узел в кластере. Для одного из наших проектов важно, чтобы созданное приложение (то есть модуль (модули)) имел доступ (только для чтения) к файлам, хранящимся на самом узле кластера Kubernetes.

Что я пробовал?

  • Создал (hostPath) PersistentVolume (PV) в нашем кластере
  • Создал PersistentVolumeClaim (PVC) в нашем кластере (названный "test-api-Claim")

Теперь GitLab AutoDevops использует диаграмму управления по умолчанию для развертывания приложений. Чтобы изменить его поведение, я добавил эту диаграмму в репозиторий проекта (GitLab AutoDevops автоматически использует диаграмму в каталоге проекта ./chart, если она найдена). Поэтому я решил изменить диаграмму так, чтобы развернутые модули использовали PV и PVC, которые я создал вручную в кластере.

Поэтому я изменил файл deployment.yaml, который можно найти здесь . Как вы можете видеть в следующем фрагменте кода, я добавил ключи volumeMounts и volume (которых нет в исходном файле / файле по умолчанию). Прокрутите фрагмент до конца, чтобы увидеть добавленные ключи.

В чем проблема?

Теперь, когда я запускаю конвейер для развертывания приложения (используя AutoDevops с моей модифицированной диаграммой управления), я получаю следующую ошибку:

      Error: YAML parse error on auto-deploy-app/templates/deployment.yaml: error converting YAML to JSON: yaml: line 71: did not find expected key

Строка 71 сценария относится к значению valueFrom.secretKeyRef.name в yaml:

          - name: POSTGRES_HOST
      valueFrom:
        secretKeyRef:
          name: app-postgres
          key: privateIP

Странно то, что когда я удаляю ключи volume и volumeMounts, он работает, как ожидалось (а valueFrom.secretKeyRef.name по-прежнему отображается и не вызывает никаких проблем ..). Я не использую вкладки в файле yaml и дважды проверил отступ.

Два вопроса

  • Может быть что-то не так с моим ямлом?
  • Кто-нибудь знает другое решение для достижения моего желаемого поведения? (добавление PVC к развертыванию, чтобы модули действительно использовали его?)

Общая информация

Заранее спасибо и хорошего дня!

1 ответ

кажется, что добавление постоянства теперь поддерживается в диаграмме руля по умолчанию.

Проверьте pvc.yaml и deployment.yaml .
Учитывая это, должно быть достаточно редактировать значения в .gitlab/auto-deploy-values.yamlдля удовлетворения ваших потребностей. Проверьте значения по умолчанию в values.yaml для получения дополнительной информации.