Skip to content

Инструкция из личного кабинета Это руководство по сервису из личного кабинета Nubes (ЛК). Текст приведён без изменений, «как есть».

Инструкция по развертыванию Gitea через платформу


1. Общая информация

Gitea — это лёгкий, быстрый и самодостаточный сервис хостинга Git-репозиториев с веб-интерфейсом. Позволяет создавать и управлять репозиториями, организациями, командами, а также настраивать CI/CD через интеграции. Развёртывание полностью автоматизировано платформой.

Доступные операции

  • create — Создание сервиса Gitea
  • delete — Удаление сервиса Gitea
  • modify — Модификация сервиса Gitea
  • suspend — Остановка сервиса Gitea
  • resume — Запуск сервиса Gitea

2. Параметры развертывания

Ниже перечислены параметры, которые необходимо указать при создании ресурса Gitea:

  • Платформа для развертывания: Платформа для развертывания (среда, в которой будет развёрнут сервис). Пример: k8s-3.ext.nubes.ru.

  • Количество узлов в сети: Количество реплик подов Gitea. Пример: 1

  • Квота (megabyte) памяти пода: Квота памяти пода в мегабайтах. Пример: 1024

  • Квота (millicore) ядра пода: Квота CPU пода в миликорах (1000 mCPU = 1 vCPU). Пример: 500

  • Размер (gigabyte) диска для базы данных: Размер PVC для хранения репозиториев и данных Gitea в гигабайтах. Пример: 10

  • FQDN / Домен: Доменное имя, по которому будет доступен сервис. Пример: git.example.com

  • Инстанс услуги PostgreSQL: UUID услуги k8sPgsql, в которой будет создана база данных gitea и пользователь techgitea.

  • Дополнительные параметры сервера (iniServerParams): JSON-объект с дополнительными параметрами секции [server] в app.ini. Пример: json {"MAX_CONTENT_LENGTH": "524288000"}

  • Дополнительные annotations для Ingress (ingressExtraAnnotations): JSON-объект с дополнительными annotations для Ingress-контроллера. Пример: json {"nginx.ingress.kubernetes.io/proxy-body-size": "500m"}


3. Особенности подключения и работы с репозиториями

3.1. Доступ только по HTTPS

Сервис развёртывается с rootless-образом Gitea. SSH-сервер внутри и он доступен только внутри кластера Kubernetes.

Внешний доступ к репозиториям осуществляется исключительно по HTTPS через Ingress.

# Пример клонирования
https://<домен>/<пользователь>/<репозиторий>.git

3.2. Настройка git для передачи логина и пароля

Для работы с приватными репозиториями через HTTPS необходимо передать учётные данные. Рекомендуется использовать один из следующих способов:

Встроить креды в URL remote

git remote set-url origin https://<логин>:<пароль>@<домен>/<пользователь>/<репозиторий>.git

Важно: Логин и пароль администратора создаются автоматически при развертывании и хранятся в Vault.

3.3. Работа с большими файлами

По умолчанию MAX_CONTENT_LENGTH установлен в 500 МБ, а Ingress пропускает pack-файлы до 500 МБ.

Если необходимо запушить файлы близкие к лимиту, увеличьте HTTP-буфер git на стороне клиента:

git config http.postBuffer 524288000

Для файлов более 500 МБ рекомендуется использовать Git LFS.


4. Выходные параметры

После успешного развертывания ресурса Gitea платформа возвращает ряд параметров.

Ключевым из них является:

connectionUrl Это внешний URL для доступа к веб-интерфейсу и Git-репозиториям по HTTPS. Пример:

https://git.example.com

internalConnect Внутренний эндпоинт для подключения к PostgreSQL из других сервисов внутри кластера.


5. Дополнительная информация

  • База данных gitea и пользователь techgitea создаются автоматически в указанной услуге PostgreSQL.
  • DNS-запись и TLS-сертификат (Let's Encrypt) настраиваются автоматически на основе указанного домена.
  • Для изменения параметров сервера Gitea (app.ini) используйте операцию modify с полем iniServerParams.
  • Для добавления дополнительных Ingress-annotations используйте операцию modify с полем ingressExtraAnnotations.