Skip to content

Resource nubes_gitea · v2.0.0 · Service ID: 99 · Service Name: Gitea

Manual · Create params · Modify params · Output params · Operations · Example

Сервис Gitea (nubes_gitea). См. Create params для списка параметров.

Справка (MAN)

Инструкция по развертыванию 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. Пример:

    {"MAX_CONTENT_LENGTH": "524288000"}
    

  • Дополнительные annotations для Ingress (ingressExtraAnnotations): JSON-объект с дополнительными annotations для Ingress-контроллера. Пример:

    {"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.