TOOLS/ — generators + scripts + config + ARCHITECTURE.md ├── yaml-generator/ (code) ├── resource-generator/ (code) ├── docs-generator/ (code) ├── scripts/ (← devops/*.sh) ├── config/ (← devops/profiles/ + devops/config/) │ ├── test/ profile.env, services_list.txt, operation_timeouts.json │ ├── prod/ │ └── dev/ └── ARCHITECTURE.md (← devops/ARCHITECTURE.md) generated/ — pipeline output only (gitignored) ├── test/resources_yaml/, go/, docs/, provider_build/ ├── prod/ └── dev/ provider/ — code only, no generated files resources_yaml/ — DELETED (generated) internal/resources_gen/ — DELETED (generated) devops/ — removed (replaced by TOOLS/scripts + TOOLS/config + generated/) Generators now fail if NUBES_*_DIR not set (no defaults to provider/). Provider requires pipeline to populate resources_gen/ before build.
6.7 KiB
6.7 KiB
Resource nubes_gitea
Service ID: 99
Service Name: Gitea
Manual | Create params | Modify params | Output params | Operations | Example
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`. Пример:
```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.**
```bash
# Пример клонирования
https://<домен>/<пользователь>/<репозиторий>.git
```
### 3.2. Настройка git для передачи логина и пароля
Для работы с приватными репозиториями через HTTPS необходимо передать учётные данные. Рекомендуется использовать один из следующих способов:
**Встроить креды в URL remote**
```bash
git remote set-url origin https://<логин>:<пароль>@<домен>/<пользователь>/<репозиторий>.git
```
> **Важно:** Логин и пароль администратора создаются автоматически при развертывании и хранятся в Vault.
### 3.3. Работа с большими файлами
По умолчанию `MAX_CONTENT_LENGTH` установлен в **500 МБ**, а Ingress пропускает pack-файлы до **500 МБ**.
Если необходимо запушить файлы близкие к лимиту, увеличьте HTTP-буфер git на стороне клиента:
```bash
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`.
---
---
## 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.**
```bash
# Пример клонирования
https://<домен>/<пользователь>/<репозиторий>.git
```
### 3.2. Настройка git для передачи логина и пароля
Для работы с приватными репозиториями через HTTPS необходимо передать учётные данные. Рекомендуется использовать один из следующих способов:
**Встроить креды в URL remote**
```bash
git remote set-url origin https://<логин>:<пароль>@<домен>/<пользователь>/<репозиторий>.git
```
> **Важно:** Логин и пароль администратора создаются автоматически при развертывании и хранятся в Vault.
### 3.3. Работа с большими файлами
По умолчанию `MAX_CONTENT_LENGTH` установлен в **500 МБ**, а Ingress пропускает pack-файлы до **500 МБ**.
Если необходимо запушить файлы близкие к лимиту, увеличьте HTTP-буфер git на стороне клиента:
```bash
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`.
---