Развертывание одним чартом#
Вы можете развернуть кластер Системы Global из одного чарта, поместив в него и пространство имен gs-ctk, и конфигурационный ресурс. Для этого:
Создайте чарт при помощи команды
helm create.Добавьте в папку
chartsнаш чартgs-ctkиз дистрибутиваnsctl.Очистите папку
templatesи добавьте ваш конфигурационный файл. Шаблонизируйте файл, например, выделив параметры комплекта приложений для удобства или для автоматической их подстановки вашим CI/CD-скриптом.Добавьте в
values.yamlпараметры развертывания gs-ctk, например:gs-ctk: imageRepository: "docker-register.net" imagePullSecret: "docker-secret" systemVolume: nfs: server: "10.10.0.1" path: /export(venv)
У вас должен получиться следующий чарт:
my-chart ├── charts │ └── gs-ctk │ ├── Chart.yaml │ └── ... ├── Chart.yaml ├── templates │ └── globalconfigurations.yaml └── values.yaml
Создайте и разверните секреты в вашем кластере, или воспользуйтесь одним из решений ниже.
Разверните его при помощи команды:
helm --install upgrade my-release
Весь кластер развернут из одного чарта при помощи одной команды Helm!
Управление секретами#
Созданный нами чарт сейчас не разворачивает секреты автоматически. Этот вопрос умышленно выведен из рассмотрения в инструкции выше, поскольку вопрос хранения секретов сложный.
Есть несколько способов автоматизировать развертывание секретов:
Сделать шаблоны секретов и передавать значения через Helm. Это допустимый вариант, если секреты внедряются в надежном месте (то есть например, не хранятся в
values.yamlоткрыто).Использовать helm-secrets и sops для хранения и подстановки секретов.
Использовать Sealed Secrets, External Secrets или другой оператор для Kubernetes, который забирает на себя задачу непосредственного развертывания секретов.
Предупреждение
Напоминаем, что хранение секретов в открытом виде вместе с самим чартом крайне опасно.