Как добавить 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 к развертыванию, чтобы модули действительно использовали его?)
Общая информация
Используем GitLab EE 13.12.11
Для автоматического развертывания образа (который предоставляет диаграмму руля, о которой я говорю) мы используем версию 1.0.7.
Заранее спасибо и хорошего дня!
1 ответ
кажется, что добавление постоянства теперь поддерживается в диаграмме руля по умолчанию.
Проверьте pvc.yaml и deployment.yaml .
Учитывая это, должно быть достаточно редактировать значения в
.gitlab/auto-deploy-values.yaml
для удовлетворения ваших потребностей. Проверьте значения по умолчанию в values.yaml для получения дополнительной информации.