Перед началом работы выполните проверки из раздела Требования. Шаги ниже разворачивают Deckhouse Code с минимальным набором значений, необходимым для любой установки.
Получение чарта
Добавьте репозиторий чарта и обновите его:
helm repo add deckhouse-code <CHART_REGISTRY>
helm repo updateПодготовка файла values.yaml
Создайте файл values.yaml с доменом, классом Ingress, Secret с TLS-сертификатом, StorageClass для хранения Git-репозиториев и подключениями к внешним PostgreSQL, Redis и объектному хранилищу:
global:
hosts:
domain: code.example.com
ingress:
class: <INGRESS_CLASS_NAME>
tls:
secretName: <TLS_SECRET_NAME>
psql:
host: <POSTGRESQL_HOST>
port: 5432
database: <POSTGRESQL_DATABASE>
username: <POSTGRESQL_USERNAME>
password:
secretName: <POSTGRESQL_PASSWORD_SECRET>
key: password
redis:
host: <REDIS_HOST>
port: 6379
password:
secretName: <REDIS_PASSWORD_SECRET>
key: password
appConfig:
object_store:
enabled: true
connection:
secretName: <OBJECT_STORE_CONNECTION_SECRET>
gitaly:
persistence:
size: <VALUE>
storageClass: <STORAGE_CLASS_NAME>Замените каждый плейсхолдер реальными именами класса, Secret и серверов. Раздел Настройка называет каждое из этих значений и поясняет, что оно настраивает.
Установка релиза
helm upgrade --install code deckhouse-code \
-n code --create-namespace \
-f values.yamlКоманда создаёт пространство имён code, если его ещё нет, и устанавливает релиз с именем code.
Настройка DNS-записи на Ingress
Получите адрес, который Ingress-контроллер присвоил объектам Ingress релиза:
d8 k -n code get ingressНастройте DNS-имя из global.hosts.domain на адрес из колонки ADDRESS — в виде записи A, AAAA или CNAME, в зависимости от того, какой адрес вернул Ingress-контроллер.
Ожидание готовности релиза
Перед запуском подов, которые зависят от схемы базы данных, один раз выполняется задача миграций. Дождитесь, пока все поды перейдут в состояние Running:
d8 k -n code get podsПервый вход в систему
Чарт создаёт Secret с начальным паролем учётной записи root, названный по имени релиза (code-initial-root-password, по принятому в чарте соглашению об именовании). Получите пароль:
d8 k -n code get secret code-initial-root-password -o jsonpath='{.data.password}' | base64 -dОткройте https://code.example.com (домен из global.hosts.domain) и войдите под именем root с этим паролем.
Проверка установки
Убедитесь, что страница входа открывается по HTTPS с сертификатом из global.ingress.tls.secretName, и что все поды и задача миграций находятся в исправном состоянии:
d8 k -n code get pods,jobs