# Развертывание одним чартом Вы можете развернуть кластер Системы Global из одного чарта, поместив в него и простраснтво имен gs-ctk, и конфигурационный ресурс. Для этого: 1. Создайте чарт при помощи команды `helm create`. 2. Добавьте в папку `charts` наш чарт gs-ctk из дистрибутива nsctl 3. Очистите папку `templates` и добавьте ваш конфигурационный файл. Вы можете шаблонизировать его, например, выделив параметры комплекта приложений для удобства или для автоматической их подстановки [вашим CI/CD-скриптом](./070_upgrade.md#обновление-комплекта-приложения-без-nscli). 4. Добавьте в values.yaml [параметры развертывания gs-ctk](./020_install.md#шаг-2-установите-оператор), например: ```yaml gs-ctk: imageRepository: "docker-register.net" imagePullSecret: "docker-secret" systemVolume: nfs: server: "10.10.0.1" path: /export(venv) ``` У вас должен получиться следующий чарт: ```text my-chart ├── charts │ └── gs-ctk │ ├── Chart.yaml │ └── ... ├── Chart.yaml ├── templates │ └── globalconfigurations.yaml └── values.yaml ``` 5. Создайте и разверните секреты в вашем кластере, или воспользуйтесь одним из решений [ниже](#управление-секретами). 6. Разверните его при помощи команды: ```bash helm --install upgrade my-release . ``` Весь кластер развернут из одного чарта при помощи одной команды Helm! ## Управление секретами Созданный нами чарт сейчас не разворачивает секреты автоматически. Этот вопрос умышленно выведен из рассмотрения в инструкции выше, поскольку вопрос хранения секретов сложный. Есть несколько способов автоматизировать развертывание секретов: 1. Сделать шаблоны секретов и передавать значения через Helm. Это допустимый вариант, если секреты внедряются в надежном месте (то есть, например, не хранятся в values.yaml открыто). 2. Использовать [helm-secrets](https://github.com/jkroepke/helm-secrets) и [sops](https://github.com/getsops/sops) для хранения и подстановки секретов. 3. Использовать [Sealed Secrets](https://github.com/bitnami-labs/sealed-secrets), [External Secrets](https://github.com/external-secrets/external-secrets) или другой оператор для Kubernetes, который забирает на себя задачу непосредственного развертывания секретов. Напоминаем, что хранение секретов в открытом виде вместе с самим чартом крайне опасно.