Перед началом работы выполните проверки из раздела Требования. Шаги ниже разворачивают 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